Модель данных Домино для интеграции
Для хранения заказов СберМаркета вводится документ специального типа «Заказ СМ». Товарная часть заказа сохраняется в виде строк этого документа. Заказ СМ не является расходным товарным документом - для списания товара с остатков магазина формируется отдельный документа расхода (реализации) по заказу.
Номер документа заказа совпадает с номером заказа СМ. Использование собственной внутренней нумерации заказов не предполагается.
Подразделение документа заказа - структурное подразделение торговой точки, на которую назначен заказ.
Контрагент документа заказа – заполняется специальным партнёром «Сбермаркет».
Параметр «Состояние документа» отражает этапы работы с документом заказа. Возможные значения:
- новый, назначается всем новым заказам
- в сборке, устанавливается приложением сборщика (магазином), возможно изменение товарной части документа
- собран, устанавливается приложением сборщика (магазином)
- передан курьеру, устанавливается СМ
- доставлен, устанавливается СМ
- отменен, устанавливается либо СМ, либо магазином
Параметр «Состояние оплаты» означает, что от СМ поступило уведомление (хук) о финализации состава заказа и цен. Возможные значения:
- не оплачен, назначается всем новым заказам
- оплачен, устанавливается при получении уведомления от СМ «оплачен» либо «доставлен»
Параметр «Состояние отгрузки» отражает факт расхода товаров из магазина. Возможные значения:
- не отгружен, назначается всем новым заказам
- отгружен, устанавливается при получении уведомления от СМ «передан курьеру» либо «доставлен»
Все даты (со временем), отражающие изменения статусов документа, сохраняются в шапке документа. К ним относятся: дата поступления заказа, начала сборки, завершения сборки, передачи курьеру, отмены/доставки. Все эти даты можно получить из протокола, но хранение их в документе упрощает алгоритмы обработки и анализа.
При создании заказа все атрибуты, которые СМ передаёт в шапке заказа и в строках, переносятся в документ заказа «как есть», без исключений (если иное не описано явно). После этого разрешаются ссылки на объекты Домино (партнеры и товары).
В процессе сборки коды маркировки товара сохраняются в строках, дочерних к соответствующей товарной строке.
Признак акцепта устанавливается на документ заказа при установке статусов «передан курьеру», «доставлен» или «отменен».
Акцепт документа не списывает остатки и не приводит к автоматическому формированию документа реализации. Реализация формируется отдельным сервисом, если определена дата передачи товара курьеру (товар фактически отгружен).
Строки заказа СМ
Следует учитывать тот факт, что в заказе СМ нет нумерации строк и идентификация строки при необходимости выполняется по коду товара. Поэтому не может быть двух строк с одинаковым товаром. В строке заказа сохраняются 3 количества:
- заказанное количество (поступает от СМ)
- согласованное количество, по умолчанию равно заказанному, но может быть изменено в процессе согласования с покупателем
- собранное количество, в результате сборки должно стать равным согласованному количеству
Эти три количества являются ключевыми для процесса сборки заказа.
Протоколирование событий
Все входящие уведомления от СМ (хуки) и все исходящие уведомления (нотификации) сохраняются в виде записей Протокола специального класса-типа. Записи протокола привязываются к конкретному документу заказа. Так же в протоколе сохраняются все телеграмм-уведомления по документу.
Действия при сборке «по умолчанию»
В шапке заказа СМ покупатель указывает, каким образом сборщик должен отрабатывать ситуации с отсутствием или недостаточным количеством товара (в терминах СМ это называется «политика отмен/замен товаров»).
Возможные варианты
- callOrReplace - Позвонить. Если не удалось дозвониться, то поменять на аналогичный товар
- callOrCancel - Позвонить. Если не удалось дозвониться, то удалить товар из заказа
- replace - Не звонить. Поменять на аналогичный товар
- cancel - Не звонить. Удалить товар из заказа
«Отмена позиции» - действие, которое выполняется по согласованию с покупателем в том случае, если указанный в заказе товар отсутствует полностью или частично. При отмене в строке заказа изменяется «Согласованное количество», что позволяет завершить сборку заказа с собранным количеством в строке меньше заказанного. Отмена может быть согласована покупателем как в момент формирования заказа на сайте СМ, так и непосредственно в процессе сборки по телефону.
«Замена позиции» - действие, которое выполняется по согласованию с покупателем как альтернатива отмене. При замене весь или часть товара из позиции заказа заменяется на другой товар. СМ разрешает замены в процессе сборки без каких-либо ограничений по сумме или количеству. Возможна замена весового товара на штучный и наоборот. При полной замене позиции (собранное количество 0) нужно указать в такой строке код товара, на который была заменена данная позиция. При частичной замене указывать заменяющий товар не нужно. В заменяемой и заменяющих строках заказа изменяется «Согласованное количество». Замена согласуется с клиентом непосредственно в процессе сборки по телефону, если в шапке заказа клиент указал такую необходимость.
«Изменение/добавление позиции»
СМ допускает произвольное изменение количества, добавление и удаление позиций заказа в процессе сборки (по согласованию с клиентом). Для всех таких позиций должно быть указано новое «Согласованное количество».
Изменение состава заказа со стороны СМ
До того момента, пока заказ не поступил в сборку, покупатель может через сайт СМ изменить его состав. При этом СМ направляет специальное уведомление об изменении состава заказа, которое аналогично по своему содержимому уведомлению о создании нового заказа. Данная возможность является экспериментальной в СМ, её поддержка не обязательна, но желательна.
«Магазин». Обязательная сущность, структурное подразделение в Домино. Точка сборки и передачи заказов курьерам СМ. Регистрируется в СМ как Магазин (store). В карточке Магазина может быть указан телефон для отправки телеграмм-уведомлений (рекомендуется, необходимо для сборки заказов без назначения сборщика).
«Сборщик». Не обязательная сущность, позволяет персонифицировать процесс сборки заказа и получение телеграмм-уведомлений. Так же позволяет строить отчёты в разрезе сборщиков и анализировать эффективность их работы. Альтернатива - сборка заказа магазином без персонификации. «Сборщик» - это Сотрудник (в терминах Домино). Сборщик работает сменами, смена привязывает сборщика к конкретному магазину на определённый промежуток времени. Продолжительность смены не может быть больше 24 часов. В течении смены сборщик получает телеграмм-уведомления о поступлении новых заказов СМ и может брать заказы в сборку. Сборщик прописывается в шапку документа заказа. Сборщик не может завершить смену, пока у него есть несобранные заказы, они должны быть собраны либо переданы другому сборщику.
«Управление сменами сборщиков». Специальный документ, в котором регистрируются все открытые за конкретный день смены. Создаётся автоматически на организацию в целом, на конкретный день (сутки), смены регистрируются строками документа. Управляется через web-запросы к сервису сборки заказов.
«Менеджер заказов СМ» - сотрудник, который отвечает за процесс обработки заказов СМ в целом, следит за качеством работы линейного персонала и сроками исполнения заказов. Менеджер получает телеграмм-уведомления от системы мониторинга состояния заказов об обнаруженных нарушениях. Менеджеров может быть несколько, они все имеют доступ к единому массиву уведомлений (организуется в виде группы в телеграмм), в котором могут оставлять сообщения как Менеджеры, так и информационный бот.
«Администратор заказов СМ» - сотрудник, который отвечает за мониторинг всего процесса взаимодействия с СМ, включая технические аспекты. Администратор получает телеграмм-уведомления обо всех особых ситуациях. Администратор имеет прямой доступ к документам Заказов СМ и может вносить в них изменения. Администраторов может быть несколько, они все имеют доступ к единому массиву уведомлений (организуется в виде группы в телеграмм, в котором могут оставлять сообщения как Администраторы, так и информационный бот.
Нет комментариев