Оптовая компания обычно живёт на связке «менеджер плюс Excel». Утром рассылка прайса, днём приём заказов в почте и WhatsApp, вечером перенос позиций в 1С руками. Схема рабочая, пока клиентов сотня. На тысяче она превращается в узкое горло: больше заявок - больше людей в штате, и каждый новый человек добавляет ещё и ошибок в счетах. Личный кабинет для оптовых клиентов появляется в планах ровно на этом месте.

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

Сколько часов уходит на рутину: считаем на отделе из шести менеджеров

Считать выручку тут бессмысленно: никто честно не скажет, вырастут ли продажи после запуска. Часы считаются точно, и цифру вы проверите на своём отделе за день, попросив менеджеров отмечать операции. Возьмём типичную картину: 40-50 активных клиентов на менеджера, каждый делает 2-3 заказа в месяц, ассортимент повторяется от заказа к заказу на 70-80%.

Операция Раз в месяц на менеджера Минут за раз Часов в месяц
Приём и оформление повторного заказа из почты или мессенджера 120 20 40
Ответ на вопрос про остаток и срок поставки 150 4 10
Пересборка и отправка прайса под конкретного клиента 24 15 6
Ответ на «где мой заказ», статус отгрузки 90 3 4,5
Повторная отправка счёта, УПД, акта сверки 40 6 4
Итого на одного менеджера 424 операции 64,5

Шестьдесят четыре с половиной часа при норме примерно 160 рабочих часов в месяц. То есть 40% времени менеджера уходит на операции, где он работает переносчиком данных. На отделе из шести человек набегает 387 часов, почти две с половиной ставки, занятые копированием строк из письма в 1С.

Сразу скажем честно: кабинет не снимет все 387 часов. Часть клиентов останется в WhatsApp навсегда, снабженцу так привычнее. По опыту в первый год через кабинет проходит от трети до половины повторных заказов, дальше доля растёт, если менеджеры сами перестают принимать заявки по почте. Даже треть от 387 часов - это около 130 часов в месяц, примерно 0,8 ставки, которую вы не добавляете в штат.

Прайсы посчитайте отдельной строкой. Собранный вручную файл рано или поздно уезжает клиенту с забытой позицией или вчерашней ценой, и стоит это либо скидки задним числом, либо испорченных отношений. Прайс в кабинете один и всегда актуальный.

Второй мотив: база перестаёт быть личной

Про этот мотив собственники говорят реже, но именно он чаще всего запускает проект. Пока история отношений с клиентом лежит в личной почте менеджера и его переписке в мессенджере, база остаётся его личным активом. Он уходит и уносит контакты снабженцев, договорённости по ценам, знание о том, что клиент берёт раз в квартал. Замену вы посадите, но новый человек полгода будет восстанавливать то, что лежало в чужом телефоне, а клиент за это время попробует конкурента.

Кабинет меняет схему владения. Заказы, цены, лимиты, история отгрузок и документы лежат в системе компании и привязаны к юрлицу клиента. Люди с обеих сторон меняются, данные остаются. Уход менеджера превращается в передачу списка контрагентов, без раскопок по чужим перепискам. Побочный эффект: руководитель видит, кто из клиентов снизил частоту закупок, без запроса отчёта у самого менеджера.

Из чего состоит личный кабинет: четыре слоя

Кабинет раскладывается на четыре слоя разной сложности и ценности. Запускать их можно по очереди.

Закрытые цены под договор. Клиент входит по логину и видит свой прайс: свою ценовую категорию, свои индивидуальные позиции, свою валюту расчётов. Никаких «цена по запросу» и публичных оптовых цен, которые конкурент выкачает парсером за пять минут.

Остатки и сроки поставки. То, ради чего снабженец вообще заходит на сайт: можно ли отгрузить сегодня, сколько лежит на ближайшем складе, когда приедет то, чего нет. Точную цифру показывать стоит не всегда, часто разумнее градация «много / мало / под заказ, срок 14 дней», особенно если склад общий с розницей.

История заказов с повтором в один клик. Самая недооценённая функция и при этом самая рабочая. Снабженец открывает прошлый заказ, жмёт «повторить», правит количества, оформляет. Двадцать минут переписки превращаются в две. Сюда же сохранённые списки закупки и шаблоны под объекты клиента.

Документы и закрывашки. Счёт, УПД, накладная, акт сверки, спецификация к договору. Бухгалтерия клиента ходит за ними к менеджеру, менеджер идёт к своей бухгалтерии, письмо теряется. ЭДО кабинет не отменяет, но остаётся местом, где документ находится по номеру заказа за десять секунд.

Как устроены персональные цены

Правила ценообразования у каждой оптовой компании свои, и это главный источник сюрпризов в смете. По сути вы строите оптовый интернет-магазин с индивидуальными ценами, где у каждого контрагента своя витрина.

Основа - ценовые категории. В 1С это типы цен: «Опт», «Дилер», «Дистрибьютор», «Сеть». Контрагент привязан к типу, и весь его прайс считается от него. Поверх ложатся условия договора: категория «Дилер», но по группе товаров минус 7%, а по одному бренду цена зафиксирована в спецификации. Третий уровень - акции и объёмные скидки, которые пересчитываются в корзине.

Правило простое: цена должна считаться в одном месте. Когда часть логики живёт в 1С, а часть дописана на сайте, расхождение между счётом и корзиной гарантировано, и разбирать его будет менеджер. Мы стараемся забирать готовую цену из учётной системы и оставлять на сайте только пересчёт по количеству. Механику товарного обмена разбирали отдельно, в статье про интеграцию интернет-магазина с 1С.

Ещё одна просьба звучит почти от всех: не показывать скидку в процентах. Клиент видит свою цену без пояснения «розница 1000, ваша цена 720, скидка 28%». Процент - повод торговаться дальше и подсказка о структуре наценки.

Личный кабинет дилера: кто что видит внутри компании клиента

У клиента не один пользователь, а несколько, и видеть им нужно разное.

Кто со стороны клиента Видит цены Оформляет заказ Видит финансы Скачивает документы
Снабженец Да Да, в пределах лимита Только остаток лимита, без суммы долга Нет
Кладовщик, приёмка Нет Нет Нет Расходные накладные без цен, по своим отгрузкам
Бухгалтер клиента Да, в счетах и УПД Нет Да: долг, просрочка, сверка Да
Руководитель или собственник Да Да Да Да

Схема не абстрактная. Закупщик в торговой сети не должен видеть цены по всем позициям, если его зона - три категории. Кладовщику цены не нужны совсем, на приёмку уходит расходная накладная без сумм. Бухгалтер, наоборот, видит их по определению: счёт и УПД без сумм ему бесполезны. Снабженцу показываем остаток лимита без общей суммы долга: собрать заказ он должен, а расчёты компании с поставщиком остаются зоной руководителя и бухгалтерии. С вашей стороны роли тоже нужны: менеджер видит кабинет своего клиента как есть, может собрать заказ за него и смотрит ровно тот экран, про который клиент говорит по телефону.

Отсрочка, кредитный лимит и дебиторка

Оптовая торговля почти всегда идёт с отсрочкой, и кабинет обязан с ней работать, иначе он остаётся витриной. Вопрос в том, сколько финансовых данных показывать наружу и кому именно.

Бухгалтеру и руководителю со стороны клиента показываем четыре вещи: текущую задолженность, остаток кредитного лимита, ближайшую дату платежа и просрочку, если она есть. Плюс акт сверки на скачивание. Этого хватает, чтобы бухгалтер клиента перестал звонить вашему.

Закрывать стоит всё остальное: внутреннюю категорию риска, комментарии финансового отдела, историю пересмотра лимита, резервы. Формулировки в учёте бывают жёсткими, и клиенту их видеть не надо. Список полей, которые уходят наружу, держите белым: в чёрный список исключений после обновления конфигурации легко не попадёт новое поле.

Блокировка при превышении лимита работает в трёх режимах, и выбирать надо осознанно.

  • Предупреждение. Кабинет пишет, что лимит исчерпан, но заказ оформляется. Дальше решает менеджер. Подходит для лояльной базы с длинной историей.
  • Согласование. Заказ создаётся, уходит в статус «на согласовании» и не попадает на склад, пока менеджер или финансист не подтвердит. Самый частый вариант.
  • Запрет. Кнопка оформления недоступна. Снабженец видит сообщение о превышении лимита, а сумму к оплате и реквизиты показываем ролям с доступом к финансам. Жёстко, но при массовой просрочке иногда это единственный рабочий вариант.

Есть техническая ловушка, о которой вспоминают уже после запуска. Данные о взаиморасчётах приходят из учёта с задержкой: клиент заплатил в 11 утра, обмен пройдёт ночью, а заказ он хочет оформить сейчас. Решите заранее, что делать в этом окне: держать буфер к лимиту, учитывать заказы после последнего обмена или запускать внеочередную синхронизацию по кнопке менеджера. Мы обычно делаем и буфер, и запуск по событию.

И ещё: сумма заказа должна уменьшать доступный лимит сразу при оформлении, до проведения реализации в учёте. Иначе клиент за час наберёт три заказа по полному лимиту.

Обмен с учётной системой: что придётся мониторить

Кабинет - тонкая надстройка над учётной системой. Всё, что он показывает, приходит из 1С или МойСклад, поэтому качество кабинета равно качеству обмена, и около трети бюджета проекта уходит именно сюда. Как настраивается товарная часть, от номенклатуры и характеристик до остатков по складам, мы разобрали в статье про интеграцию с 1С. Ниже только то, что добавляет кабинет.

Данные Направление Периодичность
Типы цен и персональные скидки по договорам Из учёта на сайт 1-4 раза в сутки, срочные по событию
Заказы С сайта в учёт сразу при оформлении
Статусы заказов и отгрузок Из учёта на сайт каждые 10-30 минут
Взаиморасчёты, кредитный лимит, просрочка Из учёта на сайт 1-4 раза в сутки, минимум раз в ночь
Счета, УПД, акты сверки Из учёта на сайт по факту проведения документа

Обмен ломается тихо. Сайт продолжает работать, просто показывает вчерашние остатки, старую цену или погашенную неделю назад просрочку. Ловится это мониторингом. Минимальный набор: журнал обменов с результатом каждой сессии, метка «остатки обновлялись N минут назад» на служебной странице, оповещение, если обмен молчит дольше порога, и сверка счётчиков, сколько позиций и цен приехало сегодня против вчерашнего. Резкое падение количества позиций почти всегда означает сломанную выгрузку, распродажа склада так не выглядит.

Для кабинета это критичнее, чем для обычного магазина: наружу торчат чужие деньги, и ошибку в сумме долга клиент увидит раньше вас. Обновления 1С прогоняйте на тестовом контуре, а разбор сбоев закладывайте в бюджет с первого месяца, до первой аварии. Что входит в такое сопровождение, расписано в материале про обслуживание сайта, сама услуга - техподдержка сайтов. Про остальные каналы обмена, от платёжных систем до доставки, есть обзор в материале про интеграции интернет-магазина.

Кому кабинет не нужен

Бывает и так, что мы отговариваем от проекта. Ситуации примерно три.

Первая - мало клиентов. Если у вас двадцать контрагентов и каждого ведёт лично коммерческий директор, кабинет не окупится никогда. Двадцать повторных заказов в месяц менеджер обработает быстрее, чем вы объясните клиентам, зачем им новый логин.

Вторая - каждый заказ уникален и требует согласования. Проектные поставки, изготовление под размер, сложная логистика с растаможкой, цена, которая считается после запроса у завода. Кабинет тут покажет историю и документы, но повтора в один клик не будет: повторять нечего.

Третья встречается чаще двух первых вместе взятых, и у неё две стадии. Первая: учётной системы нет вообще. Цены живут в Excel у коммерческого директора, остатки считает кладовщик в тетради, долги помнит бухгалтер. Кабинету неоткуда брать данные: он показывает то, что уже лежит в 1С или МойСклад, и вести учёт сам не умеет. Попытка превратить сайт в учётную систему заканчивается второй базой, которая через месяц расходится с первой. Сначала учёт, потом витрина к нему.

Вторая стадия: система есть, но в ней бардак. Дубли номенклатуры, товары без характеристик, три единицы измерения на позицию, остатки, которым никто не верит, цены, которые менеджер правит вручную в счёте. Кабинет вскроет это за неделю после запуска, причём вскроет перед клиентами. Годами ошибки прикрывал живой человек, а витрина покажет их как есть.

Вывод простой: сначала наведите порядок в справочниках. Обычно это 1-3 месяца работы вашего товароведа плюс наша помощь по правилам нормализации. Работа скучная, но без неё дальше идти бессмысленно.

Запуск по частям: три функции за квартал вместо портала за год

Самая дорогая ошибка в таких проектах - собрать техзадание на всё сразу. Получается документ на 80 страниц, смета на год и никакого результата до самого конца. К моменту сдачи половина требований устаревает: за год поменялись правила скидок.

Порядок, который работает: три функции в первом релизе, дальше по данным реального использования.

  1. Персональный прайс с остатками. Клиент видит свои цены и наличие. Это закрывает вопросы «пришлите актуальный прайс» и «есть ли на складе», а их около сорока процентов всех входящих обращений. Технически нужен базовый контур обмена: номенклатура, цены, остатки.
  2. История заказов и повтор в один клик. Даёт самую заметную экономию часов и работает даже на клиентах, которые не хотят ничего изучать: открыл прошлый заказ, изменил количества, отправил.
  3. Документы и сумма долга. Счета, УПД и акты сверки прямо из учётной системы плюс текущая задолженность и дата ближайшего платежа, пока справочно, без автоматических блокировок. Снимает нагрузку не только с продаж, но и с бухгалтерии.

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

Расчёт лимитов с блокировками, согласование заказов внутри компании клиента, роли сотрудников, отслеживание отгрузки по трек-номеру СДЭК, заявки на возврат, рекламации, оплата через ЮKassa и СБП для предоплатных клиентов - это третья строка сметы и следующие этапы. Они делаются быстрее: контур обмена уже стоит и отлажен.

Пилот запускайте на 10-20 клиентах, которые заказывают часто и не боятся нового. Обычно вскрывается что-то, чего не было в ТЗ: снабженцу нужен экспорт корзины в Excel для внутреннего согласования или поиск по артикулу своей компании. Эти мелочи решают, будет клиент пользоваться кабинетом или вернётся в WhatsApp.

Платформу выбирайте под сценарий. Если магазин уже работает на 1С-Битрикс или WooCommerce, b2b-кабинет чаще строится поверх существующего сайта. Если правила цен и согласований совсем нетиповые, разумнее кастомная разработка. Компромиссы разбирали в статье про выбор платформы для интернет-магазина.

Из чего складывается бюджет и как считать окупаемость

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

Что делаем Вилка Срок
Первый релиз поверх работающего сайта: персональный прайс с остатками, история с повтором заказа, документы и сумма долга от 350 до 800 тыс. руб. 1,5-3 месяца
Обмен с учётной системой под ваши типы цен, склады и договоры от 150 до 500 тыс. руб. 3-6 недель, параллельно
Кредитные лимиты и блокировки, роли сотрудников клиента, согласование заказов от 200 до 600 тыс. руб. 1-2 месяца
Кастомный портал с нестандартной логикой согласований от 1,2 млн руб. от 5 месяцев
Поддержка, доработки, разбор сбоев обмена от 25 до 80 тыс. руб. в месяц постоянно

Смету двигают вверх количество типов цен и исключений из них, несколько юрлиц у одного клиента, мультискладская логика с резервами, требования по ЭДО и маркировке в Честном знаке, заказы по характеристикам (цвет, размер, партия). Вниз - чистые справочники, один склад, единая логика скидок и готовность отказаться от редких сценариев на старте.

Окупаемость считайте в часах. Прирост выручки вам никто честно не пообещает, а часы вы посчитали сами. Возьмите цифру из первой таблицы, умножьте на долю, которую реально уведёте в кабинет (на первый год закладывайте треть, не половину), умножьте на стоимость часа менеджера со всеми налогами и накладными. Из 387 часов треть - это около 130 часов в месяц. Дальше арифметика ваша.

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

В расчёт не попадает то, что деньгами не меряется, а стоит дорого. Цена приезжает из учётной системы, и продать ниже согласованной у менеджера уже не выйдет. Просрочку клиент видит сам, и разговор о ней перестаёт быть неловким. База лежит в системе компании, увольнение сильного продавца перестаёт быть спецоперацией. Автоматизация оптовых продаж на этом и держится: правила работают одинаково, кто бы ни был на смене.

С чего начать

Начните с замера. Попросите менеджеров неделю фиксировать, сколько раз в день они отвечают про остаток, отправляют прайс и переносят заказ из переписки. Через неделю у вас будет своя таблица вместо нашей, и разговор о бюджете станет предметным. Параллельно откройте номенклатуру в 1С и честно ответьте, можно ли показать её клиенту сегодня. Если нет, первая задача - порядок в учёте.

Работаем с 2011 года, кабинеты для оптовиков собираем на 1С-Битрикс, WordPress с WooCommerce и на кастоме, когда типовое не тянет логику. Из близких примеров в портфолио - Maknot, оптовый интернет-магазин комплектующих и запчастей для авто; состав работ описан на странице разработки сайтов и интернет-магазинов. Если подрядчика ещё выбираете, у нас есть отдельный разбор про то, как выбрать веб-студию и какие вопросы задать до подписания.

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

Чем мы можем помочь

Читайте по теме