WordPress · 6 мин чтения

B2B интернет-магазин с оптовыми ценами: особенности разработки

Когда беру в работу b2b интернет-магазин с оптовыми ценами, в первую очередь уточняю у заказчика логику ценообразования, а не дизайн или платформу: сколько уровней цен нужно, как считается скидка за объём и видит ли розничный покупатель те же товары, что оптовик. От этого зависит архитектура каталога, корзины и личного кабинета - обычный магазин собирается на коробочном решении за пару недель, а проект с разными ценами для розницы, мелкого опта и дистрибьюторов почти всегда требует кастомной логики.

Чем оптовый интернет-магазин отличается от розничного

Розничный магазин продаёт одному сегменту покупателей по одной цене. В b2b-проекте цена и сама возможность оформить заказ зависят от того, кто зашёл на сайт. На практике встречаю такой набор требований:

  • Цена скрыта до авторизации или показывается «по запросу», пока менеджер не подтвердит статус клиента
  • Для разных групп покупателей - розница, мелкий опт, дистрибьютор - разные прайсы на одни и те же товары
  • Минимальная партия для заказа, например кратно упаковке или паллете
  • Оплата не всегда онлайн: юрлица часто заказывают по счёту с отсрочкой 7-30 дней
  • За клиентом закреплён менеджер, который видит историю заказов и может вручную скорректировать цену
  • Нужен экспорт прайса в Excel или CSV - часть b2b-покупателей заказывает не через корзину, а присылает список артикулов

Личный кабинет и сегментация покупателей

Ролевая система - основа b2b-магазина. Обычно завожу три-четыре роли: розница, мелкий опт, крупный опт, дистрибьютор - и к каждой привязываю свою наценку или скидку от базовой цены. В WooCommerce это решается плагином вроде B2B for WooCommerce или кастомным полем в профиле пользователя с хуком на цену товара; для проекта на WordPress закладываю такую доработку в стоимость сайта - от 60 000 ₽ за сайт на WordPress, если логика ролей простая, и отдельной задачей, если ролей больше трёх и цены различаются нелинейно.

С Tilda сложнее: она не умеет показывать разные цены разным пользователям из коробки. Делаю это скриптом - после авторизации через отдельный бэкенд токен кладётся в localStorage, скрипт на странице каталога подменяет цену и кнопку «в корзину» под роль клиента. Простая доработка такого рода стоит от 3 000 ₽, но если нужна полноценная интеграция с CRM и подтверждением статуса контрагента, это уже комплексная работа от 40 000 ₽.

Отдельно ставлю уведомления менеджеру: как только оптовый клиент оформляет заказ выше порога, скажем от 50 000 ₽, бот на aiogram присылает сообщение в рабочий чат с составом заказа и контактами - так менеджер не пропускает крупную заявку среди розничных. Такой бот отдельной задачей обычно укладывается от 30 000 ₽.

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Оптовые цены: уровни скидок и минимальные партии

Рабочая схема оптовых цен почти всегда строится на уровнях по количеству, а не на фиксированной оптовой цене для всех, кто её попросил. Пример из практики - для клиента с товаром средней стоимости 1000 ₽ настроили такую сетку:

Объём заказа Скидка Цена за единицу
1-9 шт - 1000 ₽
10-49 шт 5% 950 ₽
50-199 шт 12% 880 ₽
от 200 шт 20% 800 ₽

Логика на фронтенде простая - функция принимает количество и базовую цену и возвращает цену конкретного уровня:

function getTierPrice(basePrice, qty) {
  const tiers = [
    { min: 200, discount: 0.20 },
    { min: 50, discount: 0.12 },
    { min: 10, discount: 0.05 },
  ];
  const tier = tiers.find(t => qty >= t.min);
  const discount = tier ? tier.discount : 0;
  return Math.round(basePrice * (1 - discount));
}

Отдельно закладываю округление, обычно до рубля, и разделение цены с НДС и без - юрлица в заявке часто просят прайс без налога, а физлица видят цену с ним. Если у бизнеса больше 4-5 уровней или скидка зависит не только от количества, но и от суммы всех прошлых заказов клиента за квартал, логику переношу на бэкенд и завязываю на историю заказов, а не считаю на клиенте.

Интеграция с 1С, CRM и складом

Оптовый магазин без синхронизации остатков с 1С - риск продать позицию, которой физически нет на складе, сразу на крупную сумму. Обмен настраиваю двумя способами: через штатный CommerceML-обмен 1С с сайтом на WordPress, либо через n8n, если у клиента 1С в облаке или доступен только веб-сервис - n8n забирает остатки и цены по расписанию и обновляет карточки товаров в CMS. Такая автоматизация обычно от 25 000 ₽, для более сложного сценария, когда нужен двусторонний обмен и создание заказов в 1С из сайта, закладываю отдельный бэкенд - от 40 000 ₽.

Из CRM для b2b чаще вижу Bitrix24 и amoCRM: при оформлении заказа сайт создаёт сделку через вебхук, менеджер продолжает работу там, а не в админке магазина. Готовые скрипты для типовых интеграций и синхронизации каталогов я собираю в библиотеке готовых скриптов - часть задач закрывается доработкой готового решения, а не разработкой с нуля.

Оплата и доставка для оптовых заказов

Для розничных и мелкооптовых заказов подключаю обычный онлайн-эквайринг, чаще всего T‑Bank: для WooCommerce есть официальный плагин, для Tilda эквайринг встроен в саму платформу. А вот для крупных сделок с юрлицами оплата картой на сайте почти не встречается: клиент получает счёт, платит по безналу, часто с отсрочкой 7-14, иногда 30 дней - это уже не функция магазина, а процесс, завязанный на 1С-Бухгалтерию и ручную работу менеджера.

С доставкой похожая история: для штучных заказов считаю стоимость через API СДЭК прямо в корзине, по индексу и весу. Для палетных партий и сборных грузов автоматический расчёт не имеет смысла, обычно ставлю форму «рассчитать индивидуально», и менеджер уже сам договаривается с транспортной компанией.

Какую платформу выбрать под оптовый интернет-магазин

Платформа Гибкость ролевых цен Когда подходит Цена от меня
Tilda Только через скрипты поверх готового сайта 1-2 роли, простая скидка сайт от 30 000 ₽, скрипт от 3 000 ₽
WordPress + WooCommerce Плагины закрывают большинство сценариев 3-5 ролей, стандартные интеграции от 60 000 ₽
Кастомная разработка (SaaS) Полный контроль над логикой индивидуальные прайсы, сложные интеграции от 300 000 ₽

Если у бизнеса два-три уровня цен и несложная логика, беру WordPress с WooCommerce: экосистема плагинов закрывает большую часть типовых задач, и это дешевле кастома. Когда у клиента индивидуальные прайсы под каждого дистрибьютора, сложные условия отсрочки и нужна интеграция с внутренними системами, которых на рынке ещё не существует в готовом виде, ухожу в кастомную разработку - такую SaaS-логику веду от 30000 ₽. На рынке похожий проект под ключ в студиях обычно стоит от 200 000 до 500 000 ₽, разброс сильно зависит от глубины интеграций.

Интернет-магазин под ключ

Интернет-магазин

от 80 000 ₽

Подробнее →

Частые вопросы

Сколько стоит разработка b2b интернет-магазина с оптовыми ценами?

Зависит от платформы и сложности ролевой системы. Магазин под ключ с базовой логикой оптовых цен оцениваю от 80 000 ₽, для проекта с несколькими уровнями скидок, интеграцией с 1С и CRM - от 300 000 ₽. Точная цифра появляется после того, как разберём количество ролей, способов оплаты и внешних систем, с которыми магазин должен обмениваться данными.

Можно ли сделать оптовые цены на Tilda?

Можно, но с оговорками. Сама Tilda не умеет показывать разные цены разным пользователям - эту логику добавляю отдельным скриптом поверх готового сайта: авторизация, определение роли клиента и подмена цены на странице каталога. Для одной-двух ролей хватает доработки от 3 000 ₽, для полноценной интеграции с CRM и подтверждением статуса контрагента цена ближе к 40 000 ₽.

Как синхронизировать остатки и цены с 1С без ручного ввода?

Чаще всего через n8n - он забирает данные из 1С по расписанию, через веб-сервис или выгрузку CommerceML, и обновляет карточки товаров на сайте без участия человека в процессе. Для WordPress-проектов иногда хватает штатного механизма обмена, если движок это поддерживает.

Нужна ли отдельная CRM для оптового магазина?

Если заказов больше десятка в день и с клиентами работает не один менеджер - да, иначе заявки теряются в почте и мессенджерах. CRM не обязательно покупать отдельно: обычно хватает вебхука из магазина в Bitrix24 или amoCRM при оформлении заказа, дальше менеджер ведёт сделку уже там.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Самозанятый Калинкин Н. А. · работаю с физлицами и юрлицами

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно