Какое именно ограничение видит покупатель

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

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

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

Договор связывает правило с организацией

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

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

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

Когда доступный остаток меняется

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

Для расчётного примера утверждённый лимит составляет 100 тысяч рублей, уже занято 60 тысяч. Доступно 40 тысяч рублей. Новая покупка на 30 тысяч оставит 10 тысяч. Эти числа объясняют арифметику выбранного правила. Какие события занимают и освобождают лимит, компания определяет отдельно. Заказ и оплата не должны уменьшать доступную сумму дважды.

Событие занятия суммы выбирают осознанно

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

В описании Сотбит.B2B неистекшая задолженность увеличивается по заказам с постоплатой, одновременно уменьшая остаток. Поле «Количество дней отсрочки платежа» связано с событием отгрузки: срок начинается после статуса «Отгружено». Это поведение конкретного решения, которое исполнитель сверяет с выбранными событиями в учётной системе и принятым порядком работы магазина, прежде чем включить его на действующем сайте. Если события отличаются, он описывает преобразование данных и демонстрирует заказ до отгрузки и после неё, чтобы сторонам было понятно начало отсчёта срока.

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

Недоступность обмена не превращают в разрешение

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

Какие поля и сообщения включить в задание

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

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

Рабочий состав карточки

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

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

В настройках Сотбит.B2B для номера договора выбирается свойство заказа типа Строка [STRING]. Флаг отсрочки имеет тип Да/Нет [Y/N]. Дата погашения хранится как Дата [DATE]. Эти поля нужны для сохранения решения вместе с заказом. Показать надпись на странице недостаточно, если после оформления учёт получит заказ без признака выбранной отсрочки.

Сохраняют принятое решение

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

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

Скрытая ошибка станет спором по следующему заказу

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

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

Параллельная покупка проверяет серверное решение

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

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

Кто объяснит разницу покупателю

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

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

Источники и полезные ссылки

  1. Сотбит.B2B: договоры и поля лимита ↗
  2. Сотбит.B2B: свойства заказа для отсрочки ↗

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

Игорь Крещенко

Руководитель ШТАБ ИТ. Занимается управлением проектами, веб-разработкой, рекламой и PR. Подробнее об авторе →