Публичное пространство
Логика импорта рекламных акций из ERP и настройка
Настройка импорта
В SetRetail10 импорт рекламных акций из ERP реализован только через Web-сервис.
Загрузить рекламную акцию с помощью файла можно с помощью инструмента SetConsole.
- Как настроить интеграцию ERP с SetRetail через веб-сервис можно ознакомиться в разделе Интеграционная документация.
- В SetRetail с настроенным протоколом импорта через веб-сервис, есть возможность Сохранять xml-копии загружаемых данных.
Ошибки, возникающие при импорте данных можно проследить в лог-файлах \SetRetail10\standalone\log\set-discount.log предварительно расширив уровень логирования по инструкции Настройка логирования сервера приложений
Обратная связь при импорте данных
Начиная с версии SetRetail 10.2.5.0 существует возможность получать обратную связь от сервера приложений о статусе импортируемых данных. Подробнее описано в статье /wiki/spaces/SR10SUPPORT/pages/468123676Алгоритм импорта
Сохранение рекламных акций на сервере
- discounts_advertisingactions- список рекламных акций
- discounts_action_plugin и discounts_action_plugin_property - плагинные свойства (содержимое) рекламных акций.
- erp_imported_actions - рекламная акция, загруженная из ERP (ActionsCatalogErpi). Через эту таблицу SetRetail10 принимает очередь заданий, складывает сами XML и постепенно их обрабатывает, перекладывая дальше в таблички
discounts_advertisingactions
иdiscounts_action_plugin
иdiscounts_action_plugin_property
, и отправляя акции далее.
Создание очереди для отправки на кассу
Дальнейшим шагом является создание очереди на отправку.
- Новые рекламные акции попадают в таблицу discounts_not_received_to_cash.
- Рекламные акции "собираются" в "пачки" (задания) для отправки на конкретный магазин/кассу, которые хранятся в папке \SetRetail10\nginx\html\advertactions.
- За отправку файлов отвечает веб-сервер nginx (служба nginx устанавливается вместе с сервером приложений, по-умолчанию запускается автоматически).
- При использовании топологии SetCentrum ↔ SetRetail ↔ POS.
- SetCentrum готовит задания рекламных акций для магазинов.
- Задания сохраняются в таблице discounts_file_for_shop:
Поле | Назначение |
---|---|
id | Идентификатор записи |
file_name | Название файла в nginx |
import_date | Дата создания файла |
action_id | Ссылка (внешний ключ) на рекламную акцию |
Номер магазина | Номер магазина |
- После загрузки файла сервером, модуль Лояльность начинает его обработку.
- После разбора файла и сохранения данных рекламных акций, идентификатор обработанного файла обновляет запись в базе данных set таблице → discounts_last_file_for_shop.
- Когда сервер SetRetail загрузил задания с рекламными акциями, задания в таблице discounts_file_for_shop удаляются, аналогично файлам в директории \SetRetail10\nginx\html\advertactions
Задания для отправки на кассу хранятся в discounts_file_for_cashes
Поле | Назначение |
---|---|
id | Первичный ключ |
cash_number | Номер кассы, для которой предназначено это сообщение; если NULL - для всех касс |
shop_number | Номер Магазина |
file_name | Имя файла, содержащего каталог акций в nginx |
import_date | Дата импорта/создания этого фала-каталога |
objects_count | Количество акций в файле-каталоге |
Процесс их отправки заданий можно проследить в визуализации или в таблице discounts_cash_activity.
ВАЖНО!
Ошибки обработки рекламных акций кассой можно проследить в лог-файле на кассе \\IP кассы\storage\crystal-cash\logs\loyal.log предварительно расширив уровень логирования по инструкции Настройка логирования кассовой программы
- При нажатии на кнопку Новая касса очередь формируется аналогичноdiscounts_not_received_to_cash → discounts_file_for_cashes
- После скачивания файла кассой,модуль «Лояльность» начинает его обработку.
- После разбора файла и сохранения данных рекламных акций, идентификатор обработанного файла обновляет запись в базе данных кассы discount на кассы → таблица loy_lastdiscountsid.
- Когда касса загрузила задания с акциями → задания в таблице discounts_file_for_cashes удаляются, аналогично файлам в директории \SetRetail10\nginx\html\advertactions
Запросы для мониторинга и работы с очередями
select count(id) from erp_imported_actions where status = 'NEW';
-
SELECT status, COUNT(status) FROM erp_imported_actions GROUP BY 1;
-
update erp_imported_actions set status = 'ERROR';
-
delete from update erp_imported_actions;
© 1994-2024, ООО «Кристалл Сервис Интеграция».
Все права защищены..