SetRetail10 ◾️ Плагин контроля продажи через веб-сервисы

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

SetRetail10 ◾️ Плагин контроля продажи через веб-сервисы

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

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

https://crystals.atlassian.net/browse/SRTF-95

https://crystals.atlassian.net/browse/MMTR-3

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

10.4.8.0

Описание

Функциональность предоставляет возможность для идентификации товаров с нулевым остатком в чеке, что позволяет контролировать выбытие товара с нулевыми остатками.

Схема логики работы плагина

Ценность

Контроль выбытия товаров при нулевых остатках в системе.

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

  • Плагин обращается со списком товаров чека в сервис клиента и получает ответ по “проблемным” позициям.

  • Выводит на кассе форму с таблицей “проблемных” позиций и с одной/двумя кнопками “К редактированию” или “К редактированию” + “Продолжить”, в зависимости от настроек разрешения, установленных на сервере.

  • Кнопка “К редатированию” закрывает форму, кассир остаётся на экране чека (процесс продажи был прерван).

  • Кнопка “Продолжить” закрывает попап, кассир продолжает процесс оплаты.

 

Варианты ответа от сервера. Передача информации от плагина на кассу

Ошибка

Плагин возвращает кассе положительный ответ.

{ "ErrorMsg": "Склад с данным кодом не найден", "Result": false }

Если ответ 200, массив “ProblemItems“ пустой,

{ "Result": false, "StoreID": "1", "DateTime": "16.04.2024 11:19:39", "ProblemItems": [] }

Плагин возвращает кассе положительный ответ.

Если ответ 200, массив “ProblemItems“ НЕ пустой:

{ "Result": false, "StoreID": "1", "DateTime": "16.04.2024 11:19:39", "ProblemItems": [ { "article": "LOT614535", "qty": 1, "description": "Превышен остаток на складе" } ] }

Плагин возвращает кассе ответ с:

  • артикулами проблемных позиций "article" ;

  • описанием проблемы "description";

  • формой на кассе для вывода информации.

Настройки

Добавление плагина на сервере

1. На сервере SetCentrum/SetRetail → перейдите в Интеграция → Внешние процессинги → кликните кнопку ADD_BUTTON.png → в правое поле поиска процессинга введите Контроль ограничений → установите флажок с процессингом Контроль ограничений на продажу товара → кликните СОХРАНИТЬ.

2. Кликните по процессингу Контроль ограничений на продажу товара для редактирования настроек.

3. Установите следующие настройки → кликните СОХРАНИТЬ.

image-20241223-195815.png

 

Логика настройки “Запрещать продажу без остатков“

Включенная настройка:

image-20240812-135120.png

При переходе к расчету, происходит проверка: если в чеке есть позиции (полностью или частично), которые отсутствуют на остатках, кассир увидит окно “Запрет продажи” и не сможет перейти к оплате.
При переходе по кнопке “К редактированию”, окно закрывается

1 ry.png

Выключенная настройка:

image-20240812-135141.png

При переходе к расчёту происходит проверка: если в чеке есть позиции (полностью или частично), которые отсутствуют на остатках, то кассир увидит попап “Запрет продажи” с предупреждением и сможет вернуться на предыдущий шаг (по кнопке “К редактированию”) или продолжить процесс продажи (по кнопке “Продолжить”).

2 ry.png

Логиика расчёта остатков через веб-сервис

Пример URL: http://1с-testdomain.ru/TEST/hs/stock

Проверка позиций на остатки при добавлении товара в чек:
1. Отправляется POST-запросом .json файл (см. документацию )

2. Артикул и количествово по товара по нему отправляется, как элемент массива в Items[].

В случае успешного ответа (см. документацию ):

  • Если все товары в наличии, то массив “ProblemItems” придёт пустым → продолжаем стандартный флоу оплаты

  • Если не все товары в наличии, то в массиве “ProblemItems” придёт массив элементов с полями:

 

  • Артикул - "article": "LOT614535".

    • Номер артикула выводится в попап в столбец “Арт.”

  • Количествово артикула -"qty": 1

    • Данные не используются.

  • Описание проблемы - "description", например, "Превышен остаток на складе".

    • Описание проблемы выводим в попап в столбец “Причина”

Поля и соответствие в SetAPI v.1.11.2

Название поля

Описание поля

Как получить в плагине в актуальной версии SetAPI v1.11.2 (местами в упрощённом виде)  

Нужна ли доработка с кассы

“StoreID”

Номер магазина

POSInfo.getShopNumber()

Нет

”TerminalID”

Номер кассы

POSInfo.getPOSNumber()

Нет

”StaffID”

Табельный номер кассира

POSInfo.getUser().getTabNumber()

Нет

”ReceiptID”

Номер текущего чека

InterceptionContext.getReceipt().getNumber()

Нет

”Items”: []

Массив позиций в текущем чеке

InterceptionContext.getReceipt().getLineItems()

Нет

“Items”: [{ “article”}]

Код (артикул) товара

LineItem.getMerchandise().getMarking()

Нет

“Items”: [{ “qty”}]

Количество товара в чеке

LineItem.getQuantity()

Нет

 

 

 

© 1994-2025, ООО «Кристалл Сервис Интеграция».
Все права защищены.

Политика обработки персональных данных