Модуль сборки заказов в Домино
Модуль сборки заказов предназначен для реализации процесса «Сборка заказа Магазином», когда сборщик работает с распечатанной копией заказа. Согласование изменений с клиентом производится по телефону, который указан в заказе. По окончании сборки отобранный товар перемещается к рабочему месту оператора, где регистрируется с использованием сканера. Назначение сборщика на заказ в этом случае возможно, но не обязательно.
Модуль сборки заказов в магазине реализуется как обычное приложение Домино. Особенностью модуля является то, что он работает с заказами только через http-запросы к web-сервису сборки заказов, то есть выполняет роль web-клиента. При этом пользователи получают привычный интерфейс и возможности Домино.
Модуль сборки заказов предоставляет пользователю следующие интерфейсы:
- Список активных заказов магазина с их статусами. В этом интерфейсе возможно:
- просматривать списком активные (не доставленные и не отменённые) заказы магазина
- видеть номер и текущий статус заказа, сборщика, дату и время поступления заказа, начала и окончания сборки, ожидаемое время прибытия курьера
- начать сборку заказа (с назначением сборщика или без)
- открыть заказ для просмотра и регистрации собранных товаров
- распечатать содержимое заказа для сборки оффлайн
- изменить сборщика заказа
- принудительно обновить список заказов (список так же автоматически обновляется каждую минуту)
- Заказ (шапка и строки). В этом интерфейсе возможно:
- просматривать полное содержимое заказа, уже собранные позиции и замены
- начать сборку заказа (с назначением сборщика или без)
- распечатать содержимое заказа для сборки оффлайн
- изменить сборщика заказа
- принудительно обновить содержимое заказа
- регистрировать сборку товара по заказу
- менять по согласованию с клиентом заказанное количество по позиции
- добавлять по согласованию с клиентом новый товар в заказ
- заменять по согласованию с клиентом один товар на другой
- удалить из заказа информацию о сборке конкретной позиции
- удалить из заказа информацию о сборке по всем позициям заказа
- завершить сборку заказа
- отменить заказ
- Управление сменами сборщиков. В этом интерфейсе возможно:
- просматривать списком активные смены сборщиков магазина
- видеть имя сборщика, дату и время начала и планируемого окончания смены, количество назначенных ему в сборку заказов
- начинать новую смену сборщика
- досрочно завершать смену сборщика, не имеющего назначенных заказов
На основе этого модуля может быть разработан его упрощённый вариант для запуска в rdp сессии на мобильном устройстве - мобильное приложение сборщика. В этом случае сборка заказа будет происходить онлайн без использования бумажных документов, то есть будет реализован процесс «Сборка заказа Сборщиком»
Сборка заказа
Процесс сборки и регистрации собранных товаров (SKU) в заказе имеет множество особенностей. Товары бывают штучные и весовые, с заводской маркировкой, маркировкой магазина и без неё, маркированные кодами маркировки ЧЗ. В процессе сборки с покупателем может быть согласована замена позиции, в том числе и частичная, а также изменение количества (веса) в определённых границах. Принципы идентификации товара, которые используются при сборке заказа, во многом аналогичны тем, которые используются в торговой кассе RETAIL-POS. Все операции по сборке выполняются из интерфейса «Заказ (шапка и строки)».
Сборка штучного товара, имеющего заводской ШК либо ШК магазина (EAN). Коды магазина могут быть как нанесены на товар, так и считываться из альбома. Оператор считывает ШК сканером, отправляется web-запрос collectPosition с указанным кодом. Процедура метода collectPosition распознает переданный ШК и определяет товар. Если товар подлежит обязательной маркировке, то возвращается ошибка «Требуется сканировать код маркировки». Далее программа пытается найти строку с этим товаром и, если находит, то увеличивает количество на единицу и возвращает обновлённый заказ. Если строка заказа с этим товаром уже собрана (собрано столько, сколько согласовано), то возвращает ошибку «Товар уже собран в нужном количестве»
Сборка штучного товара, подлежащего обязательной маркировке. Оператор считывает КМ сканером, отправляется web-запрос collectPosition с указанным кодом маркировки. Процедура метода collectPosition распознает переданный код маркировки и определяет по нему товар. Переданный код маркировки проверяется на уникальность в пределах заказа. В случае повтора возвращается ошибка «Этот код маркировки уже добавлен в заказ». Далее алгоритм подбора строки и увеличения количества идентичен обычному товару. Переданный код маркировки сохраняется в строке, дочерней к товарной строке заказа.
Торговля алкоголем, меховыми и ювелирными изделиями не предполагается. Коды маркировки товаров из данных групп не содержат в своем составе gtin товара. Для преодоления данного ограничения потребуется решить задачу связи марки с идентификатором товара.
Сборка штучного товара в групповой потребительской упаковке. Используется регистрации упаковок из нескольких одинаковых товаров, упаковка должна иметь собственный штриховой код (или код маркировки для маркированных товаров). Оператор считывает ШК или КМ с упаковки сканером, отправляется web-запрос collectPosition с указанным кодом. Процедура метода collectPosition распознает переданный код и определяет по нему товар и количество товара в упаковке. Далее алгоритм подбора строки и увеличения количества идентичен соответствующим алгоритмам для единицы товара.
Сборка штучного товара с прямым указанием количества. Применяется для товаров без маркировки, не рекомендованный к использованию метод. Вместо этого метода для регистрации подобных товаров рекомендуется сканирование кодов из альбома. Оператор находит нужный товар (строку) в заказе, после чего выбирает действие «Собрать». Вводит количество собранных единиц, отправляется web-запрос collectPosition с указанным номером строки заказа и количеством. Процедура метода collectPosition проверяет, чтобы собранное количество не превысило согласованное, если проверка пройдена, то собранное количество увеличивается и метод возвращает обновлённый состав заказа. Этот метод применим для любой строки заказа, содержащей товар, не подлежащий обязательной маркировке.
Сборка весового товара с предварительным взвешиванием и маркировкой. Используется, если в торговом зале есть весы с печатью этикеток. Сборщик собирает нужный товар и взвешивает его как обычный покупатель. Этикетка с весовым ШК наклеивается на товар (или упаковку). Оператор считывает ШК сканером, отправляется web-запрос collectPosition с указанным кодом. Процедура метода collectPosition распознает переданный ШК, определяет товар и вес. Далее система пытается найти строку с этим товаром, если находит, то увеличивает вес и возвращает обновлённый заказ. Если строки заказа с этим товаром уже собрана, то возвращает ошибку «Товар уже собран в нужном количестве». При подборе строки заказа по весу нужно учитывать, что отклонение в весе до 10% считается допустимым без отдельного согласования с покупателем. По этой же схеме происходит сборка фасованного весового товара, товар может фасоваться и маркироваться весовыми ШК как изготовителем, так и магазином.
Сборка весового товара с прямым указанием веса. Используется при отсутствии весов с печатью этикеток. Сборщик собирает нужный товар, и взвешивает его на обычных весах. Получившийся вес он пишет маркером прямо на пакете или в бланке заказа. Оператор находит нужный товар (строку) в заказе, после чего выбирает действие «Собрать». Вводит собранный вес, отправляется web-запрос collectPosition с указанным номером строки заказа и весом. Процедура метода collectPosition проверяет, чтобы собранный вес не превысил согласованный более чем на 10%, если проверка пройдена, то собранный вес увеличивается и метод возвращает обновлённый состав заказа.
Сборка весового товара по коду маркировки, содержащему вес. Используется для товаров, подлежащих обязательной маркировке в том случае, когда товар расфасован изготовителем в потребительскую упаковку с индивидуальным кодом маркировки, и этот код маркировки содержит вес в теге 310. Оператор считывает КМ сканером, отправляется web-запрос collectPosition с указанным кодом маркировки. Процедура метода collectPosition распознает переданный код маркировки и определяет по нему товар и вес. Переданный код маркировки проверяется на уникальность в пределах заказа. В случае повтора возвращается ошибка «Этот код маркировки уже добавлен в заказ». Далее алгоритм подбора строки и увеличения веса идентичен обычному весовому товару. Переданный код маркировки сохраняется в строке, дочерней к товарной строке заказа.
Оформление отказа от всей или части позиции. Если заказанного товара не оказалось в наличии, то сборщик может согласовать с покупателем отказ от всей или части позиции. Если сборщик согласует отказ, то он делает отметку об этом в бланке заказа, указывая новое согласованное количество или полный вычерк. Оператор для оформления отказа выбирает нужную строку заказа, и вызывает действие «Отказ». Система предлагает указать новое согласованное количество (по умолчанию предлагается собранное). Отправляется web-запрос collectPosition с кодом товара и новым согласованным количеством. Процедура метода collectPosition проверяет, чтобы собранное количество не превышало согласованное. После чего в строку записывается новое «Согласованное количество».
Оформление замены. Если заказанного товара не оказалось в наличии, то сборщик может согласовать с покупателем замену. Заменена может быть как вся позиция целиком (собранное количество 0), так и часть позиции. Заменяющий товар может быть как один, так и несколько разных. Количество/вес заменяющих товаров не контролируются, так как речь может идти о товаре в разной фасовке. Можно заменять весовой товар штучным и наоборот. Можно заменять товар, подлежащий маркировке обычным товаром и наоборот. Если сборщик согласует замену, то он делает отметку об этом в бланке заказа, указывая новое согласованное количество (или полный вычерк) для заменяемого товара и заменяющий товар. Оператор для оформления замены выбирает нужную строку заказа, и вызывает действие «Замена». После этого оператор сканирует штрих-код/код маркировки товара-замены. Отправляется web-запрос collectPosition с кодом заменяемого товара, признаком замены, и штрих-кодом заменяющего товара. Процедура метода collectPosition проверяет, чтобы заменяющий товар был в ассортименте СМ. Если заменяющего товара нет в заказе, то в заказ добавляется новая строка. Согласованное количество для заменяемого и заменяющего товаров корректируется. Далее алгоритмы обработки идентичны обычным товарам.
Так как сборщик в зале работает оффлайн, то для предложения замены ему будет нужна информация, какой товар входит в ассортимент СМ, а какой нет. Одна из возможностей сделать это – выводить на ценники товара специальную отметку «Можно заказать через СберМаркет».
Изменение количества товара. Сборщик может согласовать с покупателем произвольное изменение количества по любой позиции заказа как в сторону увеличения, так и уменьшения. Сборщик делает отметку об этом в бланке заказа, указывая новое согласованное количество. Оператор для оформления изменения выбирает нужную строку и вызывает действие «Согласовать количество». Система предлагает указать новое согласованное количество (по умолчанию предлагается собранное). Отправляется web-запрос collectPosition с кодом товара и новым согласованным количеством. Процедура метода collectPosition проверяет, чтобы собранное количество не превышало согласованное. После чего в строку записывается новое «Согласованное количество».
Замечание: алгоритм идентичен операции «Отмена».
Добавление произвольного товара. Сборщик может согласовать с покупателем добавление в заказ любого товара из ассортимента СМ. Сборщик делает отметку об этом в бланке заказа, указывая товар и согласованное количество. Оператор для оформления вызывает действие «Добавить новый товар». Система предлагает указать ШК/Код маркировки нового товара и новое согласованное количество. Отправляется web-запрос collectPosition с ШК товара и согласованным количеством. Система проверяет, чтобы этого товара не было в заказе. В заказ добавляется с указанным товаром и согласованным количеством. Далее алгоритм идентичен сборке товара, который есть в заказе.
Завершение сборки. По окончании сборки заказ должен быть переведён в состояние «Собран». Программа не позволит завершить сборку заказа, если в нем есть расхождения между согласованным и собранным количеством.
Для весового товара отклонение собранного веса в пределах 10% не считается расхождением.
Нет комментариев