SetTouch ◾️ Выбор причины сторнирования позиции

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

SetTouch ◾️ Выбор причины сторнирования позиции

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

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

10.3.15.0

Функциональность реализована только для устройств SetTouch

Описание

Начиная с версии 10.3.15.0 для устройств SetTouch добавлена возможность выбора причины при сторнировании позиции чека для последующего анализа причин отказов от покупки.

Настройка

1. Перейдите в раздел Кассовый модульШаблоны касс → откройте на редактирование требуемый шаблон устройства SetTouch.

2. На вкладке ПРОЦЕСС ТОРГОВЛИ введите в строку поиска учет → в секции Работа с чеком установите флажок 

Вести учет изменения количества и удаления позиций в чеках → кликните 
.

3. Для добавления причин аннулирования чека выполните скрипты по базе данных 

set, указав значения параметров property_key и property_value для каждой причины отдельно.

Пример скрипта для добавления причины "Забыли деньги/не хватило денег"
INSERT INTO sales_management_properties (module_name, plugin_name, property_key, property_value, description, transport_level, priority, send_status) VALUES ('CASH_SALE', 'deletePositionReason', '1', '{"code":1, "description":"Забыли деньги/не хватило денег"}', 'Забыли деньги/не хватило денег', 10, 2, 0);
Пример скрипта для добавления причины "Возрастное ограничение"
INSERT INTO sales_management_properties (module_name, plugin_name, property_key, property_value, description, transport_level, priority, send_status) VALUES ('CASH_SALE', 'deletePositionReason', '2', '{"code":2, "description":"Возрастное ограничение"}', 'Возрастное ограничение', 10, 2, 0);

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

Дополнительная информация

  1. Если в таблице sales_management_properties причины сторнирования не заполнены, то запрос на выбор причины не выводится.

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

  3. При удалении каждой позиции даем возможность выбрать причину.

  4. Если кассир закрыл окно выбора (крестиком или отменой), то удаление прерывается.

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

1. Товары добавлены в чек. Покупатель просит удалить товар из чека. Кассир нажимает на выбранный товар.

2. Кассир нажимает кнопку

.

3. Кассир выбирает причину удаления и нажимает 

.

4. Касса запрашивает подтверждение удаления. Кассир нажимает 

.

5. Позиция удаляется из чека.

Интеграция

Причины сторнирования позиций выгружаются в отчете по сторно согласно интеграционной документации:

Пример отчета 

Код причины удаления позиции выгружается в атрибуте delete-position-reason-id.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <storno-events> <storno-event shop="1280" cash="62" shift="1" receipt-number="2" event-time="2022-08-29T21:01:28.287+03:00" event-type="STORNO" cashier-id="111" cashier-name="Иванова Мария Ивановна" admin-id="111" barcode="6908777000008" marking="08777" good-name="Сок банановый ароматный (Китай)" qnty-before="1.000" price="1142.24" delete-position-reason-id="1"/> </storno-events>