Разработка · 7 мин

Сайт оптового поставщика: доступ к ценам и работа с дилерами

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

Тематическая иллюстрация к материалу: Сайт оптового поставщика: доступ к ценам и работа с дилерами

Редакция Romanov Lab · Опубликовано

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

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

Разделите открытую витрину и партнёрскую работу

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

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

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

Опишите состояния партнёра до разработки кабинета

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

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

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

Свяжите человека, организацию и договор

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

Минимальная матрица полномочий включает администратора организации, закупщика и пользователя с просмотром. Отдельно задайте право приглашать коллег, скачивать цены, видеть финансовые документы и менять реквизиты. Не предоставляйте всем права администратора только потому, что сейчас у дилера один контакт.

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

Сделайте цену объяснимой

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

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

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

Условный пример: дилер с двумя договорами

Рассмотрим вымышленного поставщика расходных материалов. У партнёра два договора: основной на регулярные поставки и отдельный на региональный проект. В учебном примере базовая цена упаковки составляет 2 000 рублей, основная договорная скидка — 10%, а проектная цена установлена фиксированно на уровне 1 700 рублей. Все суммы условно включают применимый налог.

В основном контексте сайт показывает 1 800 рублей за упаковку: 2 000 × 0,9. В проектном — 1 700 рублей. Применять к проектной цене ещё 10% нельзя, потому что правила примера исключают суммирование. Для десяти упаковок получаются 18 000 и 17 000 рублей соответственно; доставка в этих суммах не учтена.

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

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

Организуйте выдачу прайсов как отдельный продукт

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

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

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

Предусмотрите изменение и прекращение сотрудничества

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

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

Чек-лист для коммерческой службы

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

Критерии приёмки и дальнейшая проверка

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

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

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

Нужен план для вашего проекта? Напишите нам в Telegram или по электронной почте. Обсудим разработку, продвижение или поддержку сайта.

Читайте также