Публичное пространство
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. После установки настроек и выполнения скриптов перезагрузите кассовый модуль.
Дополнительная информация
Если в таблице sales_management_properties причины сторнирования не заполнены, то запрос на выбор причины не выводится.
Если в таблице sales_management_properties есть только одна запись, то запрос не выводится. Касса запоминает код причины к позиции в чеке и продолжает выполнение операции удаления.
При удалении каждой позиции даем возможность выбрать причину.
Если кассир закрыл окно выбора (крестиком или отменой), то удаление прерывается.
Пример работы
1. Товары добавлены в чек. Покупатель просит удалить товар из чека. Кассир нажимает на выбранный товар.
2. Кассир нажимает кнопку .
3. Кассир выбирает причину удаления и нажимает .
4. Касса запрашивает подтверждение удаления. Кассир нажимает .
5. Позиция удаляется из чека.
Интеграция
Причины сторнирования позиций выгружаются в отчете по сторно согласно интеграционной документации:
Экспорт отчетов по сторно из SetRetail10 в ERP (веб-сервис на стороне ERP)
Экспорт отчетов по сторно из SetRetail10 в ERP (веб-сервис на стороне SetRetail10)
Пример отчета
Код причины удаления позиции выгружается в атрибуте 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>