Оглавление
SMP-2097 ID 2464 3.0_ Интеграция СуперМаг Плюс и DS_РитейлСофт
SMP: 2097
ID: 2464
SALE: 3226
|
...
Валидация данных. Справочная информация:
|
Бизнес процесс.
Описание: клиенты, использующие СуперМаг Плюс заинтересованы в интеграции с СуперМаг DS для использования прайс-дисплеев и esl-ценников.
Для интеграции СуперМаг Плюс и DS - используется расширенный XML-протокол, с помощью которого сейчас интегрируются УКМ5 и ДС
Интерфейс и реализация.
В настоящее время УКМ5 интегрируется с СуперМаг DS по следующей схеме (рис.1.):
Рис.1.
Схема интеграции через СуперМаг Плюс претерпит следующие изменения (Рис.2.):
Рис.2.
Подготовкой данных занимается служба Кассовый сервер СуперМаг Плюс.
...
Логика работы с ПО Kafka заключается в следующем:
- Кассовый модуль СуперМаг Плюс подготавливает данные в специализированном формате XML (описан ниже).
- Полученные данные, модуль «Кассовый модуль СуперМаг Плюс» должен преобразовать и отправить в топик Kafka.
| Информация |
|---|
Справка: Apache Kafka |
...
— распределённая система обмена сообщениями между серверными приложениями в режиме реального времени. |
Описание форматов обмена.
Формат данных для публикации.
| Wiki разметка |
|---|
СуперМаг Плюс должен публиковать в Kafka файлы в следующем виде:
{
"content_base64": "здесь содержимое в base64",
"event_type": "F",
"number": "1",
"original_filename": "storePrices_[262]_[1]_[F].xml",
"store_id": "262",
"part": "1",
"part_status": "process"
}
|
Название тега | Примечание |
|---|---|
content_base64 | содержимое Xml файла в кодировке base64 (SKU и цены) |
event_type | тип выгрузки (F/I - полная/частичная выгрузка) |
number | порядковый номер файла (целое число) |
original_filename | Имена файлов имеют формат TAGNAME_[Store][Number][P]_[Error].xml, где:
|
store_id | Id магазина во внешней системе |
part | номер части для больших файлов |
part_status | статус части. Варианты:
|
Формат данных для обмена.
За основу формата обмена данными взят конвертер СуперМаг XML, с некоторыми изменениями, в частности:
- Имена файлов должны быть строго такими, как они отражены в описании, иначе конвертер DS их проигнорирует.
- Структура файлов расширена новыми данными.
Файлы обмена (общий список).
Ниже представлен общий список файлов, которые требуется формировать. Часть файлов (их структура) не претерпела изменений по отношению к конвертеру СуперМаг XML, и не описывается в данном ТЗ.
№ | Имя файла | Описание назначения | Комментарий |
|---|---|---|---|
1. | store | магазины | Новый файл. Ранее СуперМаг плюс такой не формировал. |
2. | classif | Классификатор товаров | Без изменений. |
3. | updateItems | товары | Файл расширен новыми тегами. |
4. | storePrices | цены по месту хранения | Без изменений. |
5. | priceTagInfo | акционные цены | Новый файл. Ранее СуперМаг плюс такой не формировал. |
6. | itemInfo | QR-коды и PLU | Новый файл. Ранее СуперМаг плюс такой не формировал. |
Общее описание.
Ниже описывается расширение существующего протокола обмена данными (СуперМаг XML) для создания готового "коробочного" решения, которое позволит клиентам, использующим СуперМаг Плюс, избежать отдельной интеграции с «СуперМаг DS» для использования электронных ценников (ESL) и Прайс-дисплеев.
Ранее данные из Торговой системы выгружались данные исключительно для кассовых систем и систем контроля цен. Теперь этот процесс дополняется: фактически те же самые данные будут параллельно передаваться и в DS. Это позволит системе «СуперМаг DS» получать актуальную информацию о товаре и их ценах.
Описание расширения.
- Наименование файла строго как в описание. (операционная система LINUX регистрозависима)
- Формат представления информации – XML.
- Кодировка – UTF-8.
- Десятичный разделитель – точка
- Каждый тип информации передаётся с помощью отдельного файла, который имеет название, соответствующее типу передаваемой информации. В одном файле может содержаться только один тип информации
...
Тип информации | Имя файла и головного тега |
Акционные цены на товары | priceTagInfo |
QR-коды и PLU | itemInfo |
Файл store (магазины).
Наименование файла: store (например, store_[1234]_[I].xml).
...
Название тега | Примечание | Формат | Источник данных из СуперМаг Плюс |
|---|---|---|---|
<stores |
| ||
<version=""> | String(20) | ||
<store> | |||
<code> | Код магазина в торговой системе | String(100) | Код магазина в торговой системе. ID места хранения. Для МХ Центральный офис выгружается значение -1. |
<name> | Название магазина | String(100) | Название магазина |
<jurName> | Название юр. лица | String(100) | Собственный контрагент места хранения. Единственный из списка, или первый попавшийся. |
<address> | Адрес магазина | String(100) | Адрес магазина |
<director> | Новое поле: Директор магазина | String(100) | Собственный контрагент места хранения. Контрагенты - Сотрудники. Выгружается ФИО сотрудника - Директор или Руководитель. |
<description> | Новое поле: Описание магазина | String(100) | Собственный контрагент места хранения. Комментарий. |
<INN> | ИНН юр. лица | String(40) | ИНН Собственного контрагента. |
<KPP> | КПП | String(40) | КПП Места хранения. |
<phone> | Телефон | String(40) | Телефон Места хранения. |
<active> | Активный/неактивный | Boolean | Фиксированное значение «true» |
<egaisIP> | IP-адрес и порт УТМ | String(255) | Не используется. |
<CFA> | Код ЦФО – открытый идентификационный код, определяющий центр финансовой ответственности (идентификатор магазина для казначеев) | String(255) | Не используется. |
<validatorIP> | IP-адрес и порт валидатора | String(255) | Не используется. |
<localModuleIP> | IP-адрес локального модуля (для обращения в случае отсутствия связи с системой "Честный знак") | String (255) | Не используется. |
<fsrarID> | Идентификатор организации в ФС РАР | String(255) | Не используется. |
<prismaIP> | IP-адрес и порт системы "Трассир" | String(255) | Не используется.. |
<storeIP> | IP модуля интеграции магазина | String(100) | Не используется. |
<inputURL> | Полный URL входного каталога модуля интеграции магазина | String(255) | Не используется. |
<outputURL> | Полный URL выходного каталога модуля интеграции магазина | String(255) | Не используется. |
<region> | Код региона, к которому относится магазин | Int(11) | Код региона места хранения. |
<storeType> | Код формата магазина из справочника форматов магазинов | Int(11) | Не используется. |
</store> | |||
</stores> |
Файл updateItems (товары).
Наименование файла: updateItems (например: updateItems_[1234]_[F].xml).
...
Название тега | Примечание | Формат | Источник данных из СуперМаг Плюс |
|---|---|---|---|
<updateItems |
| ||
<version=""> | String(20) | ||
<item> | |||
<article> | String(40) | ||
<name> | String(255) | ||
<measure> | Сокращение (шт, кг, л) | String(40) | |
<measprec> | Количество знаков в дробной части; точность – 1, 0.001, 0.01, 0.1 | String(one of 1; 0.1; 0.01; 0.001) | |
<groupId> | Ссылка на узел классификатора | String(40) | |
<producer> | Новое поле: Страна производства | String(255) | Карточка складского учёта- Страна |
<description> | Новое поле: Описание товара
| String(255) | Значение генерируется автоматически. Учитывается параметр: ценники за 0,1 единицы. Учитывается название единицы измерения (название для отчетов). |
<customType> | Новое поле: Атрибут товара | Int(11) | Справочники - Дизайн ценников - Код DS ценника. Дополнительное описание смотри ниже. |
<egaisType> | Тип маркировки товара | Int(11) | |
<SubExcise> | Признак подакцизности товара | Int(11) | |
<crptNotUnique> | Признак неуникальности контрольной марки | 0 – уникальная марка | |
<taxgroupId> | Код налоговой группы | ||
<propertyId> | Доп. свойство «Размер» | String(40) | |
<addProperty> | Доп. свойства | ||
<id> | String(40) | ||
<name> | String(80) | ||
<value> | String(100) | ||
</addProperty> | |||
<barcode> | Перечень штрихкодов Один штриховой код товара. | ||
<id> | Непосредственно штрихкод | String(40) | Первый попавшийся, или тот, что отмечен как «Использовать при EDI обмене \ GTIN» |
<propertyValue> | String(100) | ||
<quantity> | «Количество» для штрихкода | Decimal(16.3) | |
</barcode> | |||
<TNVDcode> | Идентификатор записи из справочника ТН ВЭД | String(50) | |
<productAlcCodes> | |||
<alcCode> | Специальный идентификатор кода алкогольной продукции | String(40) | |
</productAlcCodes> | |||
<supplierLink> | |||
<supplierINN> | ИНН поставщика | String(12) | |
<supplierTax> | НДС поставщика из контракта с поставщиком | Возможные значения: «22%», | |
</supplierLink> | |||
</item> | |||
</updateItems> |
Файл priceTagInfo (акционные цены).
Источником данных для акционных ценников будут выступать документы «Маркетинговая акция».
С помощью данного файла в DS возможно отразить следующие акционные кампании:
№ п.п. | Название компании в DS | Комментарий |
|---|---|---|
1. | Процентная скидка | Реализовано в СМ+ с помощью Маркетинговых акций. |
2. | «N по цене M» | Не реализована в СМ+, выгружаться не будет. |
3. | «Скидка от количества» | Не реализована в СМ+, выгружаться не будет. |
...
Название тега
...
Примечание
...
Формат
...
Источник данных из СуперМаг Плюс
...
<priceTagInfofullness= "F/I"storeId = "" >
...
Значение может быть F или I (обязательное)Код магазина во внешней системе (обязательное)
Реализация заполнения значения <customType>:
Категория и дизайн ценников для системы управления медиаконтентом Супермаг DS.
В справочнике «Категория ценников» поле «Только для мобильного принтера» заменено полем «Применение» с возможностью выбора области применения ценника:
- для стандартного принтера,
- для мобильного принтера,
- для DS
Примечание: опция «Обязательна для печати» действует только при выборе применения «для стандартного принтера».
Выбор применения «для DS» означает, что ценники этой категории предполагается использовать в системе управления медиаконтентом Супермаг DS, и они будут воспроизводиться только в этой системе.
В справочнике «Дизайн ценников» поле «Файл ценника» получило название «Файл или код DS ценника». Для ценников с применением «для стандартного принтера» или «для мобильного принтера» в это поле по-прежнему надо заносить название файла ценника, для ценников «для DS» в это поле надо заносить код ценника*, известный системе Супермаг DS:
Разным группам товаров и разным артикулам можно задавать разные дизайны ценников для DS так же, как для печати на бумажном носителе. Также можно назначать разные дизайны ценников для DS для артикулов, участвующих в тех или иных маркетинговых акциях.
Код ценника* - Целое число — э, которое не имеет дробной части и включает в себя:
Натуральные числа — положительные числа, используемые для счёта (1, 2, 3 и т. д.).
Файл priceTagInfo (акционные цены).
Источником данных для акционных ценников будут выступать документы «Маркетинговая акция».
С помощью данного файла в DS возможно отразить следующие акционные кампании:
№ п.п. | Название компании в DS | Комментарий |
|---|---|---|
1. | Процентная скидка | Реализовано в СМ+ с помощью Маркетинговых акций. |
2. | «N по цене M» | Не реализована в СМ+, выгружаться не будет. |
3. | «Скидка от количества» | Не реализована в СМ+, выгружаться не будет. |
Название тега | Примечание | Формат | Источник данных из СуперМаг Плюс | |
|---|---|---|---|---|
<priceTagInfofullness= "F/I"storeId = "" > | Значение может быть F или I (обязательное)Код магазина во внешней системе (обязательное) | |||
<item article=""> | Код товара (артикул) (секция должна быть указана хотя бы один раз) | String(40) | Артикул из спецификации документа Маркетинговая акция. | |
description | Название акции (обязательное) | String(100) | Название акции. | |
dateFrom | Дата и время начала акции | DateTime() | Планируемая Дата и время начала акции | |
dateTo | Дата и время окончания акции | DateTime() | Панируемая \ или \ Фактическая (при наличии) Дата и время окончания акции | |
campaigntype | Тип компании. Один из предопределенных: (обязательное)
| String(40) | Фиксированное значение «discountbypercent» | |
<campaign> | ||||
Внутри секции <campaign> настройки кампании, которые зависят от типа кампании (см. таблицы далее) | <campaign> | |||
</campaign> | ||||
</item> | ||||
</priceTagInfo> |
Секция campaign:
| Название тега |
|---|
...
<item article="">
...
Код товара (артикул) (секция должна быть указана хотя бы один раз)
...
String(40)
...
Артикул из спецификации документа Маркетинговая акция.
...
description
...
Название акции (обязательное)
...
String(100)
...
Название акции.
...
dateFrom
...
Дата и время начала акции
...
DateTime()
...
Планируемая Дата и время начала акции
...
dateTo
...
Дата и время окончания акции
...
DateTime()
...
Панируемая \ или \ Фактическая (при наличии) Дата и время окончания акции
...
campaigntype
...
Тип компании. Один из предопределенных: (обязательное)
- discountbypercent (процентная скидка)
- discountnbym (тип скидки «N по цене M»)
- discountbycount (тип скидки «Скидка от количества»)
...
String(40)
...
<campaign>
...
Внутри секции <campaign> настройки кампании, которые зависят от типа кампании (см. таблицы далее)
...
</campaign>
...
</item>
...
</priceTagInfo>
Секция campaign:
...
price
...
цена (обязательное)
...
oldPrice
...
старая цена
...
discount
...
процент скидки
...
</campaign>
Пример:
<priceTagInfo fullness="I" storeId="2">
<version>1.0</version>
<item article="000177">
<description>Покупайте наших слонов</description>
<dateFrom>01.01.2025</dateFrom>
<dateTo>31.12.2025</dateTo>
<campaigntype>discountbypercent</campaigntype><campaign>
<price>45</price>
<oldPrice>50</oldPrice>
<discount>10</discount></campaign>
</item>
</priceTagInfo>
Файл itemInfo (QR-коды и PLU).
Наименование файла: itemInfo (например: itemInfo_[Store]_[Number]_[P].xml)
Название тега | Примечание | Формат | Источник данных из СуперМаг Плюс | |||
|---|---|---|---|---|---|---|
| <campaign> | ||||||
price | цена | < itemInfofullness= "F/I"storeId = > | Значение может быть F или IКод магазина во внешней системе (обязательное) | <item article=""> | Код товара (артикул) (секция должна быть указана хотя бы один раз) | String(40) |
<qr> | содержимое QR-кода для ценника (необязательное) | String(100) | Не заполняем | |||
<plu> | Код на весах (необязательное) | String(40) | PLU код из списка товаров для весов по месту хранения. | </item> | </itemInfo> |
...
Правила наполнения данными для файла priceTagInfo.
Источником данных для акционных ценников будут выступать документы «Маркетинговая акция».
Следует учитывать, что у данного документа имеются следующие атрибуты, значение которых напрямую может оказывать влияние на цену товара, и как следствие цену на ценнике СуперМаг DS. К атрибутам относится:
- Планируемая дата начала акции.
- Планируемая дата окончания акции.
- Статус «Исполняется». (Статус указывает, что акция стартовала).
- Фактическая дата окончания акции.
Так же не исключены ситуации, при которых возможно пересечение артикулов в созданных маркетинговых акциях, а также досрочное завершение акции (вручную сотрудником).
Так как стоит задача, получить в DS акционные цены в строгом в соответствии в ценами в кассовой системе, то логика выгрузки определена следующая:
Маркетинговая акция запустилась (однократная выгрузка).
Задача: проинформировать DS о значении и начале действия аукционной цены.
- При формировании выгрузки storePrices (цены) - для товара участвующего в Маркетинговой акции, в качестве регулярной цены будет выгружаться текущая цена из карточки, она же на этот момент будет являться аукционной.
- При формировании выгрузки priceTagInfo (акционные цены) - для товара участвующего в действующей Маркетинговой акции, в качестве:
- «Цены» - должна выгружаться текущая цена из карточки, она же на этот момент будет являться акционной.
- «Старой цены» - должна быть выгружена цена, которая была зафиксирована как «цена до акции».
- «Название акции» - название акции, которая породила акционную цену.
- «Дата и время начала акции» - Планируемая Дата и время старта акции
- «Дата и время окончания акции» - Планируемая Дата и время окончания акции
...
| Decimal(16.2) | Цена артикула из документа Маркетинговая акция. | ||
oldPrice | старая цена | Decimal(16.2) | Старая цена из документа Маркетинговая акция. |
discount | процент скидки | Decimal(16.2) | Процент скидки. Требуется рассчитать и округлить до целого числа в меньшую сторону. |
</campaign> |
Пример:
<priceTagInfo fullness="I" storeId="2">
<version>1.0</version>
<item article="000177">
<description>Покупайте наших слонов</description>
<dateFrom>01.01.2025</dateFrom>
<dateTo>31.12.2025</dateTo>
<campaigntype>discountbypercent</campaigntype><campaign>
<price>45</price>
<oldPrice>50</oldPrice>
<discount>10</discount></campaign>
</item>
</priceTagInfo>
Файл itemInfo (QR-коды и PLU).
Наименование файла: itemInfo (например: itemInfo_[Store]_[Number]_[P].xml)
Название тега | Примечание | Формат | Источник данных из СуперМаг Плюс |
|---|---|---|---|
< itemInfofullness= "F/I"storeId = > | Значение может быть F или IКод магазина во внешней системе (обязательное) | ||
<item article=""> | Код товара (артикул) (секция должна быть указана хотя бы один раз) | String(40) | |
<qr> | содержимое QR-кода для ценника (необязательное) | String(100) | Не заполняем |
<plu> | Код на весах (необязательное) | String(40) | PLU код из списка товаров для весов по месту хранения. |
</item> | |||
</itemInfo> |
Правила наполнения данными для файла priceTagInfo.
Источником данных для акционных ценников будут выступать документы «Маркетинговая акция».
Следует учитывать, что у данного документа имеются следующие атрибуты, значение которых напрямую может оказывать влияние на цену товара, и как следствие цену на ценнике СуперМаг DS. К атрибутам относится:
- Планируемая дата начала акции.
- Планируемая дата окончания акции.
- Статус «Исполняется». (Статус указывает, что акция стартовала).
- Фактическая дата окончания акции.
Так же не исключены ситуации, при которых возможно пересечение артикулов в созданных маркетинговых акциях, а также досрочное завершение акции (вручную сотрудником).
Так как стоит задача, получить в DS акционные цены в строгом в соответствии в ценами в кассовой системе, то логика выгрузки определена следующая:
Маркетинговая акция запустилась (однократная выгрузка).
Задача: проинформировать DS о значении и начале действия аукционной цены.
- При формировании выгрузки storePrices (цены) - для товара участвующего в Маркетинговой акции, в качестве регулярной цены будет
- При формировании выгрузки storePrices (цены) - для товара участвующего в Маркетинговой акции, в качестве регулярной цены будет выгружаться текущая цена из карточки, она же на этот момент будет являться аукционной.
- При формировании выгрузки priceTagInfo (акционные цены) - для товара участвующего в действующей Маркетинговой акции, в качестве:
...
- выгружаться текущая цена из карточки, она же на этот момент будет являться аукционной.
- При формировании выгрузки priceTagInfo (акционные цены) - для товара участвующего в действующей Маркетинговой акции, в качестве:
- «Цены» - должна выгружаться текущая регулярной ценой.«Старой цены» - должна быть выгружена цена из карточки, она же на этот момент будет являться регулярной ценойакционной.
- «Старой цены» - должна быть выгружена цена, которая была зафиксирована как «цена до акции».
- «Название акции» - название акции, которая породила акционную цену.
- «Дата и время начала акции» - Планируемая Дата и время старта акции
- «Дата и время окончания акции» - Фактическая Планируемая Дата и время окончания акции
Маркетинговая акция завершена , но артикул продолжает участвовать в другой акции (однократная выгрузка).
Задача: проинформировать DS о новом значении и начале завершения действия новой аукционной цены.
- При формировании выгрузки storePrices (цены) - для товара участвующего в Маркетинговой акции, в качестве регулярной цены будет выгружаться текущая цена из карточки, она же на этот момент будет являться акционнойаукционной.
- При формировании выгрузки priceTagInfo (акционные цены) - для товара участвующего в действующей Маркетинговой акции, в качестве:
- «Цены» - должна выгружаться текущая цена из карточки, она же на этот момент будет являться акционнойрегулярной ценой.
- «Старой цены» - должна быть выгружена цена , которая была зафиксирована как «цена до акции»из карточки, она же на этот момент будет являться регулярной ценой.
- «Название акции» - название акции, которая породила акционную цену.
- «Дата и время начала акции» - Планируемая Дата и время старта акции
- «Дата и время окончания акции» - Планируемая Фактическая Дата и время окончания акции
Маркетинговая акция завершена, но артикул продолжает участвовать в другой акции (однократная выгрузка).
Публикация файлов в kafka (топики).
Задача: проинформировать DS о новом значении и начале действия новой аукционной цены.
- При формировании выгрузки storePrices (цены) - для товара участвующего в Маркетинговой акции, в качестве регулярной цены будет выгружаться текущая цена из карточки, она же на этот момент будет являться акционной.
- При формировании выгрузки priceTagInfo (акционные цены) - для товара участвующего в действующей Маркетинговой акции, в качестве:
- «Цены» - должна выгружаться текущая цена из карточки, она же на этот момент будет являться акционной.
- «Старой цены» - должна быть выгружена цена, которая была зафиксирована как «цена до акции».
- «Название акции» - название акции, которая породила акционную цену.
- «Дата и время начала акции» - Планируемая Дата и время старта акции
- «Дата и время окончания акции» - Планируемая Дата и время окончания акции
Публикация файлов в kafka (топики).
Каждый клиент идентифицируется уникальным ID (partner_id). Для каждого клиента создается отдельная группа топиков в формате: partner_id.doc_type
partner_id - id партнера на сервере DS
doc_type - тип передаваемой информации
Кассовый модуль. Драйвер выгрузки в систему управления медиаконтентом Супермаг DS.
В раздел «Структуру магазина/склада» добавлен драйвер «DS XML» для загрузки данных в систему управления медиаконтентом для управления электронными ценниками.
Для работы клиента Кафка надо установить последнюю версию Microsoft OpenJDK из ресурса:
https://docs.microsoft.com/en-us/java/openjdk/download
Установку надо выполнять со стандартными настройками (обязательно «с опцией для всех пользователей»).
Кафка для DS расположен в облачном пространстве yandex и для доступа к нему потребуется сертификат yandex. Чтобы его получить, необходимо выполнить следующие действия:
Надо запустить командную строку Windows (не PowerShell). Командная строка по умолчанию запускается в рабочем каталоге «C:\Users\ИмяПользователя>» или «C:\Windows\System32», если командная строка запущена от имени администратора. Оба каталога не желательны для размещения сертификата (каталог текущего пользователя может быть недоступен для службы кассового модуля, а каталог System32 для доступа на запись требует прав администратора). Чтобы задать другой каталог для размещения сертификата, необходимо изменить текущий каталог командной строки, например, командой «cd», либо указать полный путь к каталогу в командах ниже. Затем надо выполнить следующие команды (каталог $HOME\.kafka может быть заменен на любой другой каталог и может быть создан средствами проводника):
| Информация |
|---|
mkdir $HOME\.kafka; curl.exe -o $HOME\.kafka\YandexInternalRootCA.crt https://storage.yandexcloud.net/cloud-certs/CA.pem В каталоге, например, C:\Windows\System32\$HOME\.kafka должен появиться файл YandexInternalRootCA.crt Затем надо выполнить следующую команду: keytool.exe -importcert -alias YandexCA -file $HOME\.kafka\YandexInternalRootCA.crt -keystore $HOME\.kafka\ssl -storepass <пароль хранилища сертификатов> -noprompt Пароль должен содержать не менее 6 символов. При корректном выполнении команды появится сообщение: Certificate was added to keystore После установки сертификата необходимо заполнить атрибуты драйвера для доступа к Кафка: |
Если указано «Создавать архив выгрузки», то при передаче данных в Кафку дубликаты передаваемых файлов выгружаются в указанный каталог.
Именование и структура формируемых файлов с некоторыми отличиями аналогичны тем, которые выгружаются драйвером УКМ4 XML.
Для выгрузки файла itemInfo с данными о PLU весовых товаров в структуре магазина / склада надо отметить флаг «Весы торгового зала» для того отдела, в котором размещено описание весов торгового зала.
Примечание: Все весы торгового зала должны иметь единый список PLU для поиска товара по PLU, указанному в ценнике. Структура торгового зала позволяет разместить весы в нескольких отделах, однако в случае использования единого торговго зала все весы торгового зала следует помещать в один отдел. Только в этом случае у них гарантировано будет единый список PLU весовых товаров.
Каждый клиент идентифицируется уникальным ID (partner_id). Для каждого клиента создается отдельная группа топиков в формате: partner_id.doc_type
partner_id - id партнера на сервере DS
doc_type - тип передаваемой информации
СуперМаг Плюс - 1.059 сп2 -
https://manual.retail-soft.pro/x/GgQ7Cg
...







