Маркировка и МРЦ ◾️ Фоновая проверка марок

Публичное пространство

Маркировка и МРЦ ◾️ Фоновая проверка марок

https://crystals.atlassian.net/browse/SRTB-10260

https://crystals.atlassian.net/browse/CR-15181

10.4.26.0

Описание

Функциональность включает фоновую (асинхронную) валидацию марок при добавлении маркированных товаров в чек, чтобы товар попадал в чек сразу после сканирования, без ожидания ответа от сервисов проверки. Если при сканировании товаров превышена квота на добавление товаров с некорректными марками, касса немедленно блокирует добавление следующего товара, не дожидаясь перехода к расчету/подитогу. Перед переходом к расчету/подитогу касса синхронизирует окончательное решение по корректности марок, чтобы не допустить завершения чека с ошибочными марками.

Ценность

Фоновая проверка снижает задержку при сканировании (валидация может занимать до ~3 секунд) и ускоряет обслуживание на кассе при массовой доле маркированных товаров. При этом контроль соблюдения правил продажи сохраняется за счет блокирующей обработки проблемных марок и обязательного ожидания завершения проверок перед расчетом.

Пример работы

  1. Кассир сканирует код маркировки (КМ) товара.

  2. Касса выполняет быстрые проверки: валидность формата КМ и поиск товара по GTIN.

  3. Если быстрые проверки прошли — касса сразу добавляет товар в чек, сохраняя КМ в плагинных свойствах и устанавливая статус марки AWAITING_RESULT (товар “условно добавлен”).

  4. Касса ставит КМ в очередь и отправляет на проверку во все подключенные сервисы валидации.

  5. По мере получения ответов статус марки меняется на:

    • OK — марка прошла проверки;

    • ERROR — марка не прошла хотя бы одну проверку.

  6. Если количество проблемных марок превысило порог (N) (настройка maxProblemMarksWithAsyncValidation) и стало (N+1) — касса блокирует добавление новых товаров и переводит пользователя в сценарий удаления проблемных позиций (сканированием марок) либо аннулирования чека.

  7. При переходе к расчету/подитогу касса проверяет, что нет марок в AWAITING_RESULT (показывает ожидание), и что все марки имеют статус OK — иначе запускает обработку проблемных позиций.

Настройки

Выполните настройки ниже, чтобы включить фоновую валидацию марок и (при необходимости) включить резервирование марок разливного пива в SetMark.

1. Выполните скрипт на сервере SetCentrum/SetRetail10 в базе данных set для установки значения в настройке maxProblemMarksWithAsyncValidation максимального количества проблемных марок при фоновой проверке:

UPDATE sales_management_properties SET property_value = '1', send_status = 0 WHERE property_key = 'maxProblemMarksWithAsyncValidation';

Значение настройки определяет:

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

  • Установите значение 0, если требуется отключить функциональность (тогда товар добавляется в чек только после успешной синхронной валидации).

  • Установите значение больше 0, если требуется включить функциональность (тогда маркированные товары добавляются без ожидания ответа до появления (N+1) проблемной марки).

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

Поведение при превышении количества

  • касса заблокирует добавление новых товаров;

  • будет показано блокирующее уведомление:

    • Клавиатурная касса/SetTouch: В чеке есть товары, не прошедшие проверку. Удалите товары из чека или аннулируйте чек.

    • SCO: заголовок Ошибка добавления товаров, текст Ожидайте консультанта для удаления проблемных товаров.

  • После удаления последней проблемной маркированной позиции касса возвращается к чеку, а на SCO — в режим покупателя. Дальнейшая валидация маркированных товаров в рамках текущего чека выполняется синхронно.

2. Выполните скрипт на сервере SetCentrum/SetRetail10 в базе данных set для установки значения в настройке enableDraftBeerReservationInSetMark для включения резервирования марок разливного пива в SetMark на кассах:

UPDATE sales_management_properties SET property_value = 'true', send_status = 0 WHERE property_key = 'enableDraftBeerReservationInSetMark';

 

4. Перезагрузите кассовый модуль.

Ограничения

  • Функциональность только для чеков продажи.

Статьи по теме