Web-сервис для сборки заказов СМ

Назначение этого web- сервиса - обработка запросов от приложений сборки заказов СМ, изменение состояний заказа и отправка уведомлений (нотификаций) в СМ. В качестве приложения для сборки заказа может выступать как Домино, так и отдельное приложение (в том числе на мобильном устройстве), которое поддерживает протокол обмена с сервисом сборки заказов. Сервис реализуется в виде Домино web-сервера, при необходимости масштабирования при увеличении нагрузки может быть развернут пул из нескольких однородных web-серверов с балансировкой нагрузки через nginx.

Обрабатывает следующие запросы:

  • getOrdersList - возвращает заказы указанного магазина/сборщика, с ограничением по статусу или без (для сборщика допустимые статусы «новый», «в сборке», «собран»)
  • collectOrder - переводит заказ, находящийся в статусе «новый» в состояние «в сборке», назначает сборщика на заказ, отправляет в СМ уведомление order.in_work, создаёт телеграмм-уведомление для сборщика и магазина о назначении заказа в сборку
  • completeOrder - переводит заказ, находящийся в статусе «с сборке» в состояние «собран», отправляет в СМ уведомление order.ready_for_delivery, создаёт телеграмм-уведомление для сборщика и магазина о завершении сборки заказа
  • cancelOrder - переводит заказ в состояние «отменен», отправляет в СМ уведомление order.canceled, создаёт телеграмм-уведомление для сборщика и магазина об отмене заказа
  • getOrder - возвращает содержимое заказа, включая информацию об уже собранных позициях
  • collectPosition - добавляет товар (SKU) к списку собранных по заказу, добавление возможно по ШК, КМ или ID (коду товара); поддерживаются весовые ШК и КМ, ШК и КМ упаковок; возможно явное указание собранного количества/веса; изменяет количество собранных единиц в строке заказа; регистрирует код маркировки,
  • changePosition - изменяет согласованное количество по позиции заказа,
  • appendPosition - добавляет в заказ новый товар,
  • replacePosition - регистрирует замену по позиции заказа,
  • clearPosition - удаляет из заказа информацию о сборке конкретной позиции, очищает собранное количество, удаляет информацию о кодах маркировки
  • clearAllPositions - удаляет из заказа информацию о сборке по всем позициям заказа
  • assignCollector - назначает нового сборщика на заказ, находящийся в состоянии «в сборке», создаёт телеграмм-уведомление о передаче заказа для старого и нового сборщиков и магазина (применимо и для перевода заказа с магазина на конкретного сборщика, и со сборщика на магазин); новый сборщик должен иметь открытую смену по магазину
  • beginSession - начинает смену сборщика с указанием планируемой продолжительности, создаёт телеграмм-уведомление сборщику и магазину
  • endSession - принудительно завершает смену сборщика, сборщик не должен иметь назначенных заказов со статусом «в сборке», создаёт телеграмм-уведомление сборщику и магазину
  • getSessions - возвращает список активных смен по указанному магазину

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

  • in_work - заказ взят в работу (сборку)
  • ready_for_delivery - сборка заказа завершена, заказ готов к передаче курьеру
  • canceled - заказ отменен магазином