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

Логика импорта товаров из ERP и настройка

Настройка импорта

В SetRetail реализованы 2 протокола импорта товаров из ERP:

  • Файловый транспорт
  • Web-сервис

Настройка импорта через веб-сервис

1. Перейдите в Интеграция → Импорт/Экспорт → кликните .

2. Установите флажок Протокол Set Retail 10: веб-сервисы → кликните .

Перезапустите службу сервера JBOSS:

  • Windows:
    • net stop JBOSS_SVC
    • net start JBOSS_SVC
  • Linux: service JBOSS_SVC restart

Настройка файлового импорта

1. Перейдите в Интеграция → Импорт/Экспорт → кликните .

2. Установите флажок Протокол Set Retail 10: файлы → кликните .

3. Кликните по протоколу импорта Протокол Set Retail 10: файлы.

4. Установите путь импорта → кликните .

Алгоритм импорта

Проверка импортируемых данных товарного справочника

Как настроить интеграцию ERP с SetRetail через веб-сервис можно ознакомиться в разделе Интеграционная документация

  1. Файлы с товарами попадают в папку импорта (по-умолчанию \products\source).
  2. Cервер приложений перемещает файл в папку\products\tmp и проводит валидацию файла на корректность (специальные символы, теги).
  3. Корректные файлы попадают \products\success. Если валидация прошла не успешно то в файл помещается \products\error.
  4. Если часть файла валидна? а часть нет, то он разобьется и? соответственно часть его пройдет дальше, а часть отклонится.
  5. При импорте товаров через web-сервис, отклонение товаров можно отследить по лог-файлам.
  6. После успешной валидации и загрузки, файлы переходят в обработку следующего шага товарного техпроцесса.

Сохранение товарного справочника на сервере

Первым этапом данные товарного справочника поступают в базу данных set → таблицу erpi_goodscatalog для обработки и дальнейшей передачи в модуль «Товары».

Ключевые поля таблицы erpi_goodscatalog:

ПолеНазначение
destinationqueueАдресат - куда надо отправить это сообщение
sendedtosetproductsФлаг-признак: это сообщение уже отправлено (в модуль товары)
statusСтатус сообщения
whenloadedДата создания этого сообщения
sourcefilenameИмя xml-файла источника данных


Скрипты для анализа

Количество записей в таблице импортируемых товаров
select count(1) from erpi_goodscatalog 
Какие данные за какое время обрабатывает сервер
select whenloaded from erpi_goodscatalog where status=0 order by whenloaded


XML не прошел внутреннюю проверку и отклонен
select count(1) from erpi_goodscatalog where status=3


Следует удалить все записи в таблице, перезапустить службу и попробовать загрузить товар еще раз. В случае повторного попадания в 3 тип искать проблему в логах и XML.

ВАЖНО!

Ошибки, возникающие при импорте данных можно проследить в логе {inst dir}\SetRetail10\standalone\log\set-retailx-erpi.log предварительно расширив уровень логирования по инструкции Настройка логирования сервера приложений

Вторым этапом следует проверка товаров на целостность.

При проверке валидности обязательными являются следующие проверки:

  • Наличие кода товара
  • Наличие наименования товара
  • Наличие в системе плагина товара данного типа
  • Наличие у товара хотя бы одной первой ненулевой цены с незаконченным сроком действия
  • Наличие штрихового кода
  • Наличие ставки НДС

Пользователь может дополнительно включить или выключить следующие проверки:

  • Наличие штрихового кода

В случае прохождения валидации товар проходит в дальнейший шаг техпроцесса. В обратном случае товар попадает на «Полку отклоненных товаров» (статус на товарных полках является тупиковой, алгоритмов выхода товара с нее не предусмотрено). Товары, которые оказались на «Полке отклоненных товаров» хранятся в таблице un_cg_rejected_product

ВАЖНО!

Необходимо обеспечить механизм автоматической периодической чистки данной полки, согласно графику, заданному пользователем в конфигурационном файле {Disk}:\SetRetail10\standalone\configuration\modules\products\products.properties параметру rejected.products.clean.time (по-умолчанию, установлен параметр 05\:30\:00).

Успешно проверенные товары сохраняются в таблицах:

  • un_cg _product - товарный справочник
  • un_cg_barcode - список штрихкодов
  • un_cg_price - цены
  • un_cg_group - группы товаров
  • un_cg_department - отделы для цен

Создание очереди для отправки на кассу

Дальнейшим шагом является создание очереди на отправку.

Новые товары попадают в таблицу un_cg_not_received_to_cash_product → Далее товары "собираются" в "пачки" (задания) для отправки на кассs (1 задание - не более 100 товаров. Параметр  настраиваемый ), которые хранятся в директории {inst dir}\SetRetail10\nginx\html\products.

За отправку файлов отвечает веб-сервер nginx (служба nginx устанавливается вместе с сервером приложений, по-умолчанию запускается автоматически ) .

При использовании топологии SetCentrum - SetRetail - POS. SetCentrum готовит задания товарного справочника для магазинов.


Задания сохраняются в таблице un_cg_product_file_for_shops

Основные поля:

ПолеНазначение
shop_numberНомер магазина, для которого предназначен указанный файл; если NULL -> все магазины
file_nameИмя файла в nginx
import_dateДата записи данных в этот файл
objects_countКоличество объектов/сущностей, записанных в этот файл
object_typeТип данных


Задания для отправки на кассу хранятся в un_cg_product_file_for_cashes

Основные поля:

ПолеНазначение
cash_number Номер кассы, для которой предназначенуказанный файл; если NULL - все кассы
shop_number Номер магазина, в котором эта кассазарегистрирована
file_name само имя файла в nginx
import_date Дата записи данных в этот файл
objects_count Количество объектов/сущностей, записанных вэтот файл
sourcefilename Источник данных, если допустимо (например,конкретный xml)

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

При нажатии на кнопку Новая касса очередь формируется:un_cg_not_received_to_cash_product→ un_cg_product_file_for_cashes

Послес качивания файла кассой, модуль Товары начинает его обработку. После разбора файла и сохранения данных товарного справочника, идентификатор обработанного файла обновляет запись в базе данных кассы catalog → таблица cg_lastproductsid. Когда касса скачала задания с товарами, задания в таблице un_cg_product_file_for_cashes удаляются, аналогично файлам в директории {inst dir}\SetRetail10\ nginx\html\products

ВАЖНО!

Ошибки обработки товаров кассой можно проследить в логе на кассе \\IP кассы\storage\crystal-cash\logs\ goods.log предварительно расширив уровень логирования по инструкции Настройка логирования кассовой программы

Весовые товары

  • Транспорт внутри весового модуля описан в разделе Весовой модуль: Техническое описание.
  • Каждые 3 минуты, вновь поступивший весовой товар, который необходимо отправить на весы, обрабатывается службой.
  • Служба привязывает товар к весам и назначает ему PLU.

Если все прошло успешно, то в карточке товара, на вкладке Штриховые коды отобразится номер PLU и весы к которым привязан товар:


Если товар привязался к весам и PLU, то в таблице scales_plues хранится информация о товаре для весов.

В таблице scales_linktoplu непосредственно привязка товара к весам и результат загрузки (связь идет через таблицу scales_plues):

Статусы:

  • 0 – не отправлено
  • 1 – отправляется
  • 2 – успешно отправлено
  • 3 – ошибка

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

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