Из-за временных ограничений на территории РФ наблюдаются проблемы с оплатой. Если платёж не проходит, оставьте запрос в службу поддержки.Служба поддержки работает 24/7 — мы всегда на связи по вопросам хостинга и серверов.Открыт прием заявок на аренду выделенных серверов и размещение оборудования в дата-центре.Напоминаем: рекомендуем включить резервное копирование для дополнительной защиты данных.Доступна новая линейка VPS/VDS с NVMe-дисками и увеличенной производительностью.Технические работы на части серверов завершены. Все сервисы работают в штатном режиме.
Статья5 мин чтенияПросмотры0

Как спроектировать B2B-кабинет для дилеров: цены, остатки, документы и роли

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

Комментарии 0

Стол с образцами товаров, документами и планшетом для оптового заказа без надписей
В этой статье

Если перенести обычный интернет-магазин в закрытый раздел и добавить поле «ИНН», B2B-кабинет не получится. Дилеру нужны его цены, договоры, лимиты, остатки по складам, повтор заказа и документы. Внутри одной компании закупщик, бухгалтер и руководитель должны видеть разные действия.

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

Опишите участников и их решения

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

Роль

Что ей нужно

Что ей часто нельзя

Закупщик

Каталог, цены, корзина, повтор заказа

Менять договор и финансовый лимит

Согласующий

Утверждать заказ и видеть отклонения от правил

Редактировать справочник товаров

Бухгалтер

Счета, акты, взаиморасчёты

Менять состав уже согласованного заказа

Руководитель клиента

Лимиты, пользователи, история и отчёты

Управлять настройками поставщика

Менеджер поставщика

Клиенты, исключения, комментарии и статусы

Входить под пользователем без аудита действий

Матрица прав должна проверяться на сервере. Скрытая кнопка в интерфейсе не запрещает прямой запрос. Для важных операций сохраняют кто, когда и от имени какой организации изменил данные.

Разделите общие и персональные данные

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

  • Каталог отвечает на вопрос, что можно заказать.

  • Соглашение определяет цену, валюту, скидку, минимальную сумму и доступный ассортимент.

  • Склад и резервирование определяют, сколько можно подтвердить и к какой дате.

  • Организация и договор определяют реквизиты, лимит и способ оплаты.

  • Пользователь и роль определяют, что можно видеть, создавать и согласовывать.

Источник каждого слоя фиксируют отдельно. Например, номенклатура и остатки приходят из 1С, маркетинговые описания редактируются на сайте, а кредитный лимит рассчитывает учётная система. Фраза «двусторонний обмен» не заменяет эти правила.

Покажите покупателю происхождение цены и наличия

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

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

Спроектируйте заказ как процесс

  1. Пользователь выбирает организацию и договор до расчёта персональных условий.

  2. Кабинет проверяет кратность, минимальную партию, лимит и доступность.

  3. Если нужно согласование, заказ получает отдельное состояние и не уходит в отгрузку.

  4. После утверждения фиксируются состав, цена и версия условий.

  5. Учётная система возвращает подтверждение, резерв, документы и изменения отгрузки.

  6. Отмена, частичная поставка и возврат сохраняются как события, а не затирают историю.

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

Документы — не папка с PDF

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

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

Что проверить на приёмке

  • Пользователь с двумя организациями видит правильные договоры и цены после переключения.

  • Закупщик не может утвердить заказ обходным запросом, если действие доступно только согласующему.

  • Повтор старого заказа пересчитывает условия и показывает отличия.

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

  • Два одновременных заказа не резервируют один и тот же остаток без контроля конфликта.

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

  • Недоступность 1С не удаляет заказ: он получает понятное состояние и повторяется без дубля.

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

Обсуждение 0

Делись опытом и задавай вопросы. Комментарии без ссылок появляются после проверки редактором.

Пока никто не написал. Начни обсуждение.