Разработка B2B-портала: заказы, цены и документы для дилеров и партнёров

B2B-портал — это место, где оптовый клиент или дилер сам делает то, что сейчас делает за него менеджер: видит свою цену и остаток, собирает заказ из файла, смотрит статус отгрузки, скачивает документы и подаёт рекламацию. От интернет-магазина он отличается тем, что покупателем выступает организация со своими договорами, филиалами и лимитами. Делаем такой портал на заказ, с данными из 1С или ERP и ролями внутри каждой компании-клиента.

Нижняя граница — от 250 000 ₽; портал с договорными ценами дороже, цену называем после обследованияЦены, остатки и статусы из 1С, ERP и CRM, сверка с учётом каждый деньИсходный код в вашем репозитории с первого коммита

С чем приходят

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

Заказы приходят в почте, мессенджерах и таблицах

Менеджер переносит строки в 1С руками, путает артикулы и теряет уточнения. Дилер не знает, принят ли заказ.

Прайс рассылается файлами

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

Остатки спрашивают по телефону

Дилер звонит перед каждой сделкой с его клиентом, потому что ответ нужен сегодня, а склад видит только менеджер.

Рекламации и сверки теряются

Фотографии брака приходят в личные сообщения, акт сверки готовят вручную раз в квартал, расхождения всплывают, когда клиент уже недоволен.

Состав

Из чего состоит B2B-портал: модули, кому они нужны и от чего зависят

Набор зависит от того, как вы продаёте. Нужные модули выбираются на обследовании, остальные откладываются. Общая постановка про кабинеты и порталы — на странице порталов.

Модуль
Кому нужен
Что внутри
От чего зависит
МодульКаталог и поисквидят только свой ассортимент
Кому нуженОптовые клиенты и дилеры
Что внутриКарточки, фильтры, поиск по артикулу и по названию, аналоги, ограничения ассортимента по договору
От чего зависитКачество справочника номенклатуры в учёте: если у товара три названия, поиск их не склеит
МодульЦены и условияиндивидуальные для каждой организации
Кому нуженВсе покупатели
Что внутриБазовый прайс, договорная цена, скидка по объёму, акция, валюта, отсрочка
От чего зависитГде в учёте хранятся условия и кто их меняет
МодульОстатки и срокипо доступным складам
Кому нуженДилеры и закупщики
Что внутриСвободный остаток с вычетом резерва, ожидаемые поступления, срок отгрузки
От чего зависитУчитывается ли резерв и насколько свежи данные склада
МодульЗаказыоформление и повтор
Кому нуженЗакупщики, менеджеры клиента
Что внутриКорзина, быстрый ввод по артикулам, загрузка файла, повтор прошлого заказа, согласование
От чего зависитПравила проверки в учёте: кратность, минимальная партия, лимит
МодульДокументы и сверкасчета, накладные, акты
Кому нуженБухгалтерия клиента
Что внутриДокументы после проведения, акт сверки по запросу, взаиморасчёты
От чего зависитПроведены ли документы в учёте и есть ли ЭДО
МодульРекламации и обращенияс вложениями
Кому нуженЗакупщики, склад клиента
Что внутриЗаявка на возврат или брак с фото, статус, ответственный на вашей стороне
От чего зависитКто у вас принимает решение и как оно возвращается в учёт
Покупатель

Клиент в B2B — это организация со структурой, а не один человек

Отсюда большая часть отличий от кабинета обычного покупателя. Если структуру не разобрать заранее, портал придётся переделывать после первых пилотных клиентов.

Головная организация, филиалы и грузополучатели

У одной компании-клиента может быть несколько юридических лиц, договоров, адресов доставки и закупщиков. Один договор действует для всех филиалов, другой только для одного. В портале это отдельные сущности, и права привязываются к ним, а не к «клиенту» вообще. Записывается так: кто плательщик, кто получатель, какой договор, какие склады доступны.

Несколько людей работают одновременно

  • Закупщик собирает заказ, но не подтверждает его, если сумма выше лимита.
  • Руководитель закупщика согласует заказы внутри компании клиента, и портал хранит этот маршрут.
  • Бухгалтер видит документы и взаиморасчёты, но не видит корзину.
  • Администратор клиента сам приглашает коллег и отключает уволенных, а не пишет вам.

Кредитный лимит и просрочка

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

Цены

Откуда берутся цены и условия: пять видов и ловушки каждого

Цены в портале показывают расчёт учёта, а не пересчитывают его. Пересчёт на стороне портала даёт два набора правил, которые рано или поздно разойдутся.

Вид условия
Источник
Как показываем
Ловушка
Вид условияБазовый прайсобщий для всех
Источник1С или ERP
Как показываемКопия, обновляемая по изменению; цена на момент заказа сохраняется в строке
ЛовушкаЦена изменилась между корзиной и оформлением, и клиент видит другую сумму
Вид условияДоговорная ценадля организации или договора
Источник1С или ERP
Как показываемЦена по договору выбирается по организации-плательщику и договору, а не по пользователю
ЛовушкаДоговор истёк, а портал продолжает показывать старую цену
Вид условияСкидка по объёмупорог по сумме или количеству
Источникправила в учёте
Как показываемРасчёт запрашивается из учёта при оформлении, портал показывает итог
ЛовушкаПравила дублируются в портале и расходятся с учётом
Вид условияАкцияна срок и на группу товаров
Источникучёт или портал
Как показываемДата начала и окончания, ограничение по клиентам, ясная пометка в карточке
ЛовушкаАкция закончилась, заказ ещё в корзине
Вид условияОтсрочка и лимитусловия оплаты
Источникучёт
Как показываемПредупреждение или блокировка по правилу, которое вы утвердили
ЛовушкаЛимит проверяется только при оформлении, а не при согласовании
Заказ

Как оформляется заказ: быстрый ввод, файл и повтор

Закупщик заказывает по сорок строк по артикулам, и красивая карточка товара ему мешает. Интерфейс подстраивается под этот ритм.

Для постоянных клиентов главное не каталог, а скорость. Поэтому оформление держится на трёх приёмах:

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

Проверки при оформлении

Остаток с учётом резерва, кратность упаковки, минимальная партия, ассортимент по договору и кредитный лимит проверяются до того, как заказ уходит в учёт. Если одна из проверок не прошла, клиент видит причину и вариант действий, а не общее «ошибка». Заказ получает состояние («принят порталом», «передан в учёт», «подтверждён», «в отгрузке», «отклонён» с причиной), повторная отправка не создаёт дубль, а менеджеру ошибка видна. Схема обмена с учётом разобрана на странице интеграции 1С, а обмен сайта с учётом — на странице интеграции сайта с 1С.

После заказа

Заказ, отгрузка, документы, сверка: что видит клиент и где это ломается

Этап
Что происходит в учёте
Что видит клиент
Где ломается
ЭтапПодтверждениестатус заказа
Что происходит в учётеМенеджер проверяет заказ и резервирует товар
Что видит клиентСтатус «принят» меняется на «подтверждён»
Где ломаетсяМенеджер подтвердил в учёте, а статус в портале не обновился
ЭтапОтгрузкатрек и состав
Что происходит в учётеРеализация и отгрузка собираются в 1С или WMS
Что видит клиентСостав отгрузки, перевозчик, номер для отслеживания
Где ломаетсяОтгрузили частично, а портал показывает полностью
ЭтапДокументынакладная, счёт-фактура
Что происходит в учётеДокумент проводится и подписывается
Что видит клиентФайл появляется после подписания, с пометкой даты
Где ломаетсяКлиент ищет документ, а он ещё не сформирован, и экран пуст
ЭтапВзаиморасчётыдолг и оплаты
Что происходит в учётеПлатёж сопоставляется с документом
Что видит клиентБаланс, просрочка, график платежей
Где ломаетсяОплата пришла, но не разнесена, и клиент видит долг
ЭтапРекламациязаявка и решение
Что происходит в учётеЗаявку разбирает ответственный
Что видит клиентСтатус, комментарии, итог: замена, возврат, отказ
Где ломаетсяРешение принято в переписке, в портале ничего не изменилось
Безопасность

Что нельзя показывать лишнего и как мы это проверяем

Чужие цены и условия

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

Вход и второй фактор

Для роли с подтверждением платежей и изменением реквизитов включается второй фактор. Корпоративный вход и единый вход — на странице <a href="../sso-i-mfa-dlya-korporativnyh-sistem/">SSO и MFA</a>.

Журнал действий

Кто заказывал, менял реквизиты, скачивал документы и согласовывал. Вход «от имени дилера» для поддержки записывается и виден администратору.

Контур и данные

Учётные системы остаются во внутреннем контуре, наружу выставлен только портал. Данные хранятся на ваших серверах, персональные данные граждан России обычно должны храниться на серверах в России.

Что делаем

Из чего состоит работа и сколько она стоит

Цены совпадают с тарифами, нижняя граница — как на странице порталов. Остановиться можно после любой ступени.

Обследование: портал и одна-две системы

Клиенты и их структура, модули, источники данных, роли, вилка бюджета. Вычитается из первого этапа, если продолжаете с нами.

200 000 ₽ · 2–3 недели

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

1С, CRM, склад, ЭДО, транспортная система. Схема обменов и матрица источников истины.

350 000 ₽ · 3–4 недели

Простой портал

Одна роль, заказ, документы и статусы, данные из одной системы. Это нижняя граница по услуге.

от 250 000 ₽ · разработка от 4 недель

Портал с договорными ценами и остатками

Организации с филиалами, цены по договору, остатки по складам, быстрый ввод заказа, согласование. Существенно дороже нижней границы.

после обследования · пилот 400 000–1 200 000 ₽, 2–3 месяца

Вывод в эксплуатацию

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

от 1 500 000 ₽ этапами по 300 000–700 000 ₽ · от 3 месяцев

Сопровождение

Мониторинг обмена, обращения клиентов, разбор расхождений; плановые доработки с пакета на 60 000 ₽. Сверх пакета — 5 000 ₽ в час.

20 000 / 60 000 / 120 000 ₽ в месяц
Процесс

Как идёт работа

2–4 недели — Обследование

Интервью с менеджерами и двумя-тремя дилерами, разбор структуры клиентов, таблица «поле, источник, владелец», роли в проверяемом виде.

Перед разработкой — Прототип

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

От 4 недель — Разработка

Каталог, заказ, обмен, права. Работаем в вашем репозитории, раз в две недели показываем версию на тестовом стенде.

1–2 недели — Проверка

Сверка с учётом на боевых данных, нагрузка в пиковые часы заказов, прогон прав из-под каждой роли.

3–7 дней — Пилотный запуск

Один-два дилера вместо всех сразу. Смотрим журнал обмена и обращения, затем подключаем остальных волнами.

Дальше — Развитие или сопровождение

Новые модули по этапам: рекламации, сверка, ЭДО. Объём работ в месяц записан в договоре.

Контроль

Что остаётся у вас и чего мы не делаем

Остаётся у вас

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

Мы этого не делаем

  • Не делаем маркетплейс с множеством продавцов и не берём на себя приём платежей от вашего имени.
  • Не оказываем хостинг и не держим ваш портал у себя.
  • Не делаем мобильное приложение: адаптивный интерфейс входит в проект, приложение оценивается отдельно.
  • Не ведём юридическое оформление: оферту, условия для дилеров и статус оператора персональных данных готовит юрист заказчика.
  • Не берём работы дешевле 150 000 ₽ и не дежурим круглосуточно.
Граница

B2B-портал, личный кабинет или SaaS-платформа

Если клиентов немного и им нужны заказы, документы и статусы, хватит личного кабинета: он проще и стоит меньше. B2B-портал нужен, когда у клиента структура (филиалы, договоры, несколько ролей), цены индивидуальны, а заказ собирается по артикулам.

Если вы продаёте доступ к программе другим компаниям, а не товары, это SaaS-платформа. Если главное в проекте обмен между системами, а портал только окно, начните с интеграции 1С или API и бэкенда. Если сайт нужен для розничных покупателей, смотрите обмен сайта с 1С. Разбор типовой задачи про партнёрский портал: кабинет партнёра с ценами из 1С.

Инструменты

На чём собираем

Серверная часть и данные
  • Python: Django или FastAPI, при необходимости Go
  • PostgreSQL с политиками на уровне строк
  • Очередь обмена с 1С в PostgreSQL или RabbitMQ, выбираем на обследовании
  • S3-совместимое хранилище для файлов и документов
Интерфейс и развёртывание
  • React или Vue, TypeScript, адаптивная вёрстка
  • Keycloak или ваш каталог, единый вход, второй фактор
  • Docker, Nginx, GitLab CI
  • Журнал действий и мониторинг обмена
Материалы

Материалы по теме

Статья

Личный кабинет для партнёров: что в него включать

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

  • Что обязательно
  • Откуда данные
  • Ролевая модель
Читать →
Статья

Остатки 1С и маркетплейса не совпадают: почему

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

  • Резерв
  • Очередь
  • Сверка
Читать →
Разбор

Кабинет партнёра с ценами из 1С

Разбор типовой задачи: договорные цены и остатки по складам, которые партнёр видит сам.

  • Цены по договору
  • Остатки
  • Права
Читать →
Заявка

Разберём, как ваши дилеры заказывают сегодня

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

Спасибо, заявка отправлена. Ответим в течение рабочего дня.

Не удалось отправить. Напишите в телеграм или позвоните.

Вопросы

Частые вопросы: разработка B2B-портала

Сколько стоит разработка B2B-портала?

Нижняя граница — от 250 000 ₽: простой портал с одной ролью, заказом и документами. Портал с договорными ценами, остатками по складам и согласованием заказов существенно дороже, цену называем по итогам обследования (200 000 ₽ за одну-две системы, 350 000 ₽ за несколько). Оно вычитается из первого этапа, если продолжаете с нами.

Чем B2B-портал отличается от интернет-магазина?

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

Сколько времени занимает разработка?

Простой портал занимает от четырёх недель разработки, портал с договорными ценами и остатками — от шести-восьми. До неё идут обследование (2–4 недели) и прототип, после неё проверка (1–2 недели) и пилотный запуск (3–7 дней).

Можно ли подключить портал к нашей 1С или ERP?

Да. С 1С работаем через OData, HTTP-сервисы или обмен файлами, с другими системами через их API. Если у системы нет ни интерфейса, ни выгрузки, скажем об этом до договора. Цены, остатки и статусы приходят копией, а не запросом на каждый клик; решение по каждому полю принимаем на обследовании.

Что если цены и условия хранятся в таблицах у менеджеров?

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

Как защищены данные клиентов и цены?

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

Где работает портал и кому принадлежит код?

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

Как устроено сопровождение?

Ежемесячно: 20 000, 60 000 или 120 000 ₽ в месяц, до 4, 12 или 25 часов. Часы уходят на мониторинг обмена, обращения дилеров и разбор расхождений с учётом. Сверх пакета — 5 000 ₽ в час, по согласованию до начала. Круглосуточного дежурства нет.

Вы работаете только в Ростове-на-Дону?

Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.