Оптовому клиенту на сайте нужен не магазин, а рабочее место: своя цена по договору, актуальный остаток, история заказов и документы для бухгалтерии. Разбираем, из чего собирается такой кабинет, с чего начать и на какой ошибке чаще всего спотыкаются.
Вопрос обычно возникает на стыке двух ситуаций. Либо менеджеры тонут в звонках и одинаковых прайсах в Excel с одним и тем же вопросом: какая цена и что есть на складе. Либо в компании уже есть интернет-магазин для розницы, и кому-то кажется логичным открыть его же оптовикам. Второй путь почти всегда заканчивается переделкой: оптовая продажа устроена по другим правилам, и розничный движок под них не рассчитан.
Что должно быть в кабинете, чтобы в нём реально работали
Набор функций у оптового кабинета почти всегда один и тот же, меняется только глубина проработки.
Персональные цены по договору. У каждого клиента своя скидка или ценовая категория из договора. Без авторизации прайс не показывается вовсе или виден в урезанном, розничном виде.
Остатки на складах. Число по каждому складу, а не галочка "в наличии". Причём обновляется оно из учётной системы, руками этим никто не занимается.
История заказов и повтор в один клик. Оптовик обычно заказывает одно и то же с небольшими изменениями, и кнопка "повторить заказ" экономит время заметнее, чем любой другой элемент кабинета.
Отгрузочные документы. Счета, накладные, УПД по каждой отгрузке доступны для скачивания без запроса у менеджера.
Взаиморасчёты и дебиторка. Клиент видит остаток задолженности и историю платежей - это снимает часть звонков в бухгалтерию и ускоряет оплату.
Заявка на возврат или претензию. Форма с привязкой к конкретной отгрузке и номенклатуре, а не голое "напишите нам".
Первые три пункта дают основной эффект, остальное можно достраивать по мере роста кабинета. Общую логику раздела мы разбирали в статье про личный кабинет на сайте.
Чем это отличается от розничного магазина под капотом
Внешне B2B-кабинет и интернет-магазин похожи: каталог, карточка товара, корзина, оформление заказа. Разница в деталях, которые розничный движок обычно не предусматривает.
Публичных цен нет вообще, либо они видны только незарегистрированным посетителям как ориентир. У каждого юрлица своя цена: отдельный прайс, который может пересчитываться по объёму закупки за период. Это не промокод и не процентная скидка.
За каждым клиентом закреплён менеджер, и часть решений кабинет не принимает сам, а передаёт человеку: изменить дату отгрузки, согласовать нестандартный объём, дать отсрочку сверх лимита.
Отсрочка платежа - это условие из договора, а не рассрочка для физлица через банк: клиент заказывает в долг до определённой суммы или срока, и кабинет должен это учитывать при оформлении заказа.
Кратность упаковки не даёт заказать товар поштучно, если он продаётся коробками по 24 штуки или паллетами. Розничная корзина про такое ограничение обычно не знает, и без доработки клиент закажет 25 штук вместо 24.
Минимальная версия, с которой есть смысл стартовать
Делать сразу всё описанное выше дорого и долго, а часть функций окупается только при большом числе клиентов. Разумный старт: авторизация с привязкой к договору, персональные цены, актуальные остатки, история заказов и повтор заказа в один клик.
Документооборот, раздел с дебиторкой и форма возврата обычно добавляются вторым этапом, когда понятно, какие запросы клиенты реально присылают в кабинет, а какие предпочитают решать с менеджером по телефону.
Без обмена с учётной системой кабинет не взлетает
Это главная техническая зависимость, о которой часто забывают на старте. Цены, остатки и статус заказа живут не на сайте, а в 1С или другой учётной системе. Если кабинет не забирает их автоматически, кто-то переносит данные руками, и через месяц они расходятся с реальностью.
Из учётной системы обычно тянут четыре вещи: персональные цены, остатки по складам, статус заказа и данные по дебиторке. Мы разбирали варианты такого обмена в статье про интеграцию сайта с 1С: выгрузка файлом по расписанию подходит для небольшого каталога, а прямой обмен через API нужен, когда остатки и цены меняются в течение дня.
Без такой интеграции кабинет превращается в витрину, за актуальностью которой всё равно приходится следить руками. Смысл кабинета как экономии времени менеджера теряется.
Регистрация по ИНН и привязка к договору
Обычная регистрация по email с паролем оптовику не подходит: сайт должен понимать, какая компания к нему обращается и на каких условиях с ней работать.
Рабочая схема: посетитель вводит ИНН, система подтягивает название организации, и заявка уходит на модерацию. Менеджер сверяет заявителя с базой договоров и либо привязывает аккаунт к клиенту с его ценами, либо запускает оформление нового договора, а доступ открывает после подписания.
Модерация занимает от нескольких часов до суток. Она защищает сразу от двух проблем: доступа постороннего к чужим ценам и появления в базе клиентов без договора, с которых потом не с кого спросить за неоплату.
Загрузка заказа файлом и быстрый ввод по артикулам
Оптовик редко выбирает товар кликами по каталогу, как розничный покупатель. У него уже есть список: свой файл заказа, который он ведёт из раза в раз, или таблица с артикулами поставщика, скопированная из прошлого счёта.
Кабинету стоит принимать заказ в привычном клиенту виде: файл с колонками "артикул - количество", быстрый ввод списком артикулов и проверка на позиции, которых нет в прайсе, с понятной подсказкой.
Без этой функции клиент с заказом на 40-60 позиций будет собирать их кликами полчаса. Или вернётся к заказу по почте, а кабинетом так и не начнёт пользоваться.
Типичная ошибка: собрать B2B на движке розничного магазина
Соблазн понятен: движок уже куплен, каталог наполнен, разработчики с ним знакомы. Кажется, что достаточно добавить роль "оптовик" и скрыть цены для остальных.
Не выходит: движки интернет-магазинов рассчитаны на одну публичную цену и на заказ, который клиент оформляет сам от начала до конца. Персональные прайсы, кратность упаковки, привязка к менеджеру и модерация по ИНН в них либо отсутствуют, либо реализуются доработками поверх чужой логики. Мы сравнивали платформы под интернет-магазин в статье CMS для интернет-магазина - там видно, у каких систем изначально сильнее B2B-модуль, а у каких его придётся собирать с нуля.
Самая частая находка при аудите такого кабинета - публичные цены, которые остались доступны без авторизации, просто их не показали в меню. Страница товара физически открывается по прямой ссылке, и конкурент найдёт её так же легко, как поисковик. Нужен обычный магазин для розницы, а не оптовый кабинет? Это отдельная история, и у нас есть страница про разработку интернет-магазинов.
Порядок запуска: сроки и бюджет
Ориентир по деньгам и времени зависит от числа клиентов, товарных позиций и сложности учётной системы на другом конце интеграции. Минимальная версия с ценами, остатками и историей заказов у нас укладывается в диапазон 250 000-500 000 рублей и 6-10 недель. Полный кабинет с документооборотом, взаиморасчётами и загрузкой заказа файлом обычно растягивается на 3-5 месяцев поэтапного запуска, а не одного релиза.
Порядок действий, который снижает риск переделки:
- Собрать список реальных сценариев: что клиенты делают по телефону и что перенести в кабинет первым.
- Проверить, что можно забрать из учётной системы, и обсудить это с её ответственным до старта разработки.
- Запустить минимальную версию на нескольких лояльных клиентах, а не сразу на всей базе.
- Через месяц собрать обратную связь и решить, какой из необязательных модулей делать вторым.
- Расширять кабинет по тому, что клиенты реально просят, а не по списку "на всякий случай" из первого брифа.
Похожий путь мы проходили с производителем упаковки: сначала запустили цены и остатки, а к документообороту пришли только через полгода. Подробности - в кейсе про онлайн-кабинет для 1200 клиентов.
Что в кабинете меняется для отдела продаж
B2B-кабинет не заменяет менеджера целиком. Он освобождает его от повторяющихся вопросов: какая цена, что на складе, где накладная за прошлую неделю. Освободившееся время уходит на новых клиентов и нестандартные заказы, которые кабинет сам не решает.
Клиент выигрывает так же: не нужно ждать ответа на письмо, чтобы узнать остаток или повторить старый заказ. Эффект заметен не сразу, а через месяц-два, когда клиенты привыкают заходить в кабинет вместо звонка.
Если у вас уже есть интернет-магазин и вопрос в том, дорабатывать его или собирать кабинет отдельно, разумно начать с разбора текущей нагрузки на менеджеров и списка функций, которые действительно нужны. Мы делаем такой разбор в рамках поддержки сайтов: смотрим, что есть, и предлагаем, с чего начать первую версию.

