Импорт пик-листов из ERP в SetRetail10

Публичный ресурс

Импорт пик-листов из ERP в SetRetail10

https://crystals.atlassian.net/browse/SRTE-4072

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

10.3.12.0

https://crystals.atlassian.net/browse/SCOC-2319

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

10.4.16.0

Метод импорта пик-листа

Загрузка пик-листа

Загрузка пик-листа

URL

http://IP-адрес сервера SetRetail10:8090/SetCashMenu-API/json/load

Метод

POST

Request Content-Types

JSON

Описание

Загрузка пик-листа на сервер 

Поле

Тип данных

Описание

Обязательное

Поле

Тип данных

Описание

Обязательное

Принимаемые параметры

request

json

Запрос на создание или обновление пик-листа в формате JSON

Да

Возвращаемые параметры

return

json

Результат запроса. В случае успеха результатом будет строка "Загрузка шаблона меню произведена успешно"

 

Описание формата данных пик-листа

Входящие параметры метода (JSON)

Параметр

Тип данных

Описание

Обязательное

Параметр

Тип данных

Описание

Обязательное

templateType

String

Тип шаблона

Допустимые значения:

  • SCHEDULED - меню по расписанию

  • PERMANENT - постоянное меню

Да для типов касс Touch

templateName

String

Название шаблона

Если не заполнено - по умолчанию создается шаблон с названием "Шаблон пик-листов"

Нет

templateGuid

Integer

Код шаблона пик-листа

Если не указан или не существует, то создается новый с произвольным кодом

Если указан  существующий код, то происходит обновление шаблона

Нет

cashTemplates

Array

Код шаблона кассы

В случае отсутствия шаблон пик-листа не будет привязан  к шаблону кассы. Если шаблон кассы привязан к шаблону пик-листа и загрузилась новая привязка - привязка обновится

Нет

menuTemplates

Array

Шаблон пик-листа

Да

 

menuName

String

Название, указанное на странице шаблона пик-листа

Нет

shopNumbers

Array

Номер магазина. Можно указать несколько магазинов через запятую.

Если не указан или указан пустой массив - шаблон действует для всех магазинов.

Нет

cashType

String

Тип касс

Допустимые значения:

  • TOUCH_2

  • CSI_K

  • SCO_3 

Да

dateFrom

String

Дата, с которой действует шаблон

В случае отсутствия будет проставлена сегодняшняя дата

Формат даты: 2022-05-09

Нет

dayOfWeek

Integer

Дни недели, в которые действует меню для SetTouch с типом пик-листа  SCHEDULED

Если не указан, то пик-лист будет для всех дней недели

Указываются в битах. Примеры значений :

  • 1 - ПН

  • 2 - ВТ

  • 4 - СР

  • 8 - ЧТ

  • 16 - ПТ

  • 32 - СБ

  • 64 - ВС

  • 64 + 32 = 96 [СБ и ВС]

Нет

content

String

Содержимое пик-листа 

Для типа меню TOUCH структуру необходимо передавать как массив

Да

contentInfo

String

Описание формата меню колонки content

  • основной пик-лист - не передаем

  • пик-лист для экрана сопутствующих товаров - значение “type:upsell

Нет

Структура поля "content" для устройств SetSCO v.3

Элемент

Тип данных

Описание

Обязательное

Элемент

Тип данных

Описание

Обязательное

sortType

String

Тип сортировки плиток шаблона меню.

Допустимые значения:

  • null - расположение плиток вручную

  • alphabetic - расстановка плиток по алфавиту

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

После загрузки алфавитная сортировка может быть выполнена из визуализации сервера, подробнее в статье Расстановка в алфавитном порядке.

Да

 

tiles

Object

Плитки

Да

 

Плитка с типом "Товар"

 

 

 

name

String

Название плитки для отображения на экране

Да

barcode

String

Штрих-код товара

  1. Если для указанного ШК при импорте товара/ШК из ERP загружено количество count, то товар будет добавляться в чек в количестве, указанном в ШК;

  2. Для весового товара, если требуется возможность взвесить товар на кассе, в поле barcode следует указывать весовой ШК без весовой части или “штучный“ ШК (если он есть у товара), у которого не указано количество;

  3. Для весового товара, если требуется добавлять фиксированный вес без возможности изменения покупателем, в поле barcode следует указывать либо полный весовой ШК с весом, который требуется добавить, и контрольным разделом, либо “штучный“ ШК, для которого из ERP загружен требуемый вес в поле count.

Да

sku

String

Артикул товара

Да

 

Плитка с типом "Группа товаров"

name

String

Название плитки для отображения на экране

Да

sortType

String

Тип сортировки плиток шаблона меню.

Допустимые значения:

  • null - расположение плиток вручную

  • alphabetic - расстановка плиток по алфавиту

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

После загрузки алфавитная сортировка может быть выполнена из визуализации сервера, подробнее в статье Расстановка в алфавитном порядке.

Да

Пример заполнения элемента content для устройств SetSCO v.3
{ "sortType": "alphabetic", "tiles": [ { "name": "Сок виноградный кислый(Россия)", "barcode": "4600127000004", "sku": "00127" }, { "name": "Фрукты", "sortType": "null", "tiles": [ { "name": "Хлеб апельсиновый соленый(Россия)", "barcode": "4600234000003", "sku": "00234" }, { "name": "Выпечка", "sortType": "null", "tiles ": [] } ] } ] }

Структура поля "content" для устройств CSI-K

Для содержимого поля "content" необходимо экранировать спецсимволы (кавычки).

Элемент

Тип данных

Описание

Обязательное

Элемент

Тип данных

Описание

Обязательное

sortType

String

Тип сортировки плиток шаблона меню.

Допустимые значения:

  • manual - расположение плиток вручную

  • alphabetic - расстановка плиток по алфавиту

Алфавитная сортировка при импорте из ERP действует только в рамках каждой отдельной страницы, т.е. внутри массива tiles с индексами от 0 до 15.

Для вложенных страниц меню (групп товаров) алфавитную сортировку следует назначить отдельно для конкретной страницы (группы).

Сквозная алфавитная сортировка по всей группе товаров с несколькими страницами выполняется на стороне ERP до загрузки пик-листа. После загрузки сортировка может быть выполнена из визуализации сервера, подробнее в статье Расстановка в алфавитном порядке.

Да

pages

Array

Страницы меню

Каждая страница меню содержит 16 плиток товаров (групп товаров) с индексами от 0 до 15.
Индекс в пределах одной страницы (массива tiles) должен начинаться с 0 и не превышать значения 15. Если, например, начать с 1, то первая плитка на странице будет пустой (при ручной расстановке). Если внутри папки имеется больше 16 объектов, следует при загрузке самостоятельно разбить их на страницы.

Пример поля content, содержащего 18 товаров с разбивкой на 2 страницы

Да

 

tiles

Object

Плитки

Да

 

Плитка с типом "Товар"

 

 

 

index

Integer

Порядковый номер плитки для отображения на экране

Допустимые значения: от 0 до 15.

Да

name

String

Название плитки для отображения на экране

Да

barcode

String

Штрих-код товара

Да

sku

String

Артикул товара

Да

 

Плитка с типом "Группа товаров"

index

Integer

Порядковый номер плитки для отображения на экране

Допустимые значения: от 0 до 15.

Да

name

String

Название плитки для отображения на экране

Да

sortType

String

Тип сортировки плиток шаблона меню.

Допустимые значения:

  • manual - расположение плиток вручную

  • alphabetic - расстановка плиток по алфавиту

Алфавитная сортировка при импорте из ERP действует только в рамках каждой отдельной страницы, т.е. внутри массива tiles с индексами от 0 до 15.

Для вложенных страниц меню (групп товаров) алфавитную сортировку следует назначить отдельно для конкретной страницы (группы).

Сквозная алфавитная сортировка по всей группе товаров с несколькими страницами выполняется на стороне ERP до загрузки пик-листа. После загрузки сортировка может быть выполнена из визуализации сервера, подробнее в статье Расстановка в алфавитном порядке.

Да

pages

Array

Массив вложенных в группу товаров плиток (могут быть плитки типа “товар” и “группа товаров”)

Да

Пример заполнения элемента content для устройств CSI-K,
{ "sortType": "manual", "pages": [ { "tiles": [ { "index": 0, "name": "Сок виноградный кислый (Россия)", "barcode": "4600127000004", "sku": "00127" }, { "index": 1, "name": "Фрукты", "sortType": "manual", "pages": [ { "tiles": [ { "index": 0, "name": "Хлеб апельсиновый соленый (Россия)", "barcode": "4600234000003", "sku": "00234" } ] } ] } ] } ] }

Структура поля "content" для устройств SetTouch

Для содержимого поля "content" необходимо экранировать спецсимволы (кавычки)

Элемент

Тип данных

Описание

Обязательное

Элемент

Тип данных

Описание

Обязательное

name

String

Название вкладки

Да

columns

Integer

Количество колонок в раскладке

Да

type

String

Тип вкладки

GT - goods type (тип вкладки продукты)

Да

tiles

Object

Плитки. Могут быть двух типов - товар и группа товаров

Да

 

Плитка с типом "Товар"

index

Integer

Порядковый номер плитки для отображения на экране

Да

name

String

Название плитки для отображения на экране

Да

tiles

Array

Вложенные плитки, для плитки типа “товар” пустой массив

Да

barcode

String

Штрих-код товара

Да

itemId

String

Артикул товара

Да

img

String

Путь к изображению товара на плитке

Пример: /img/2/img1.jpg

Да

Плитка с типом "Группа товаров"

index

Integer

Порядковый номер плитки для отображения на экране

Да

name

String

Название плитки для отображения на экране

Да

tiles

Array

Вложенные плитки, для группы товаров могут быть как товары, так и другие группы товаров

Да

IconId

String

Тип элемента (DIR - тип “Группа товаров“)

Да

img

String

Путь к изображению группы товаров на плитке

Пример: /img/2/img1.jpg

Да

Пример заполнения элемента content для устройств SetTouch
[ { "name": "Вкладка", "columns": 6, "type": "GT", "tiles": [ { "index": 0, "name": "Пряник клубничный терпкий (Россия)", "tiles": [], "img": "", "itemId": "00345", "barcode": "4600345000008" }, { "index": 1, "name": "Группа", "tiles": [ { "index": 0, "name": "Кефир виноградный терпкий (Россия)", "tiles": [], "img": "", "itemId": "00321", "barcode": "4600321000008" } ], "img": "", "iconId": "DIR" } ] }, { "name": "Вкладка №2", "columns": 6, "type": "GT", "tiles": [ { "index": 0, "name": "Йогурт яблочный кислый (Россия)", "tiles": [], "img": "", "itemId": "00112", "barcode": "4600112000002" } ] } ]

Примеры запросов

SetSCO v.3

Пример запроса для устройства SetSCO v.3
{ "templateType": "PERMANENT", "templateName": "Шаблон пик-листов", "templateGuid": 71114, "cashTemplates": [6], "menuTemplates": [ { "menuName": "шаблон", "cashType": "SCO_3", "content": "{\n \"sortType\": \"alphabetic\",\n \"tiles\": [\n {\n \"name\": \"Сок виноградный кислый (Россия)\",\n \"barcode\": \"4600127000004\",\n \"sku\": \"00127\"\n },\n {\n \"name\": \"Фрукты\",\n \"sortType\": null,\n \"tiles\": [\n {\n \"name\": \"Хлеб апельсиновый соленый (Россия)\",\n \"barcode\": \"4600234000003\",\n \"sku\": \"00234\"\n },\n {\n \"name\": \"Stasyan123\",\n \"sortType\": null,\n \"tiles\": []\n }\n ]\n }\n ]\n}" } ] }

CSI-K

Пример запроса для устройств CSI-K
{ "templateType": "PERMANENT", "templateName": "Шаблон CSI", "templateGuid": 75370, "cashTemplates": [73526], "menuTemplates": [ { "menuName": "шаблон", "shopNumbers": [1654,1655,1656,1657,1658], "cashType": "CSI_K", "dateFrom": "2022-05-09", "content": "{\"sortType\":\"manual\",\"pages\":[{\"tiles\":[{\"index\":0,\"name\":\"товар 1\",\"barcode\":\"00017\",\"sku\":\"0\"},{\"index\":15,\"name\":\"товар 2\",\"barcode\":\"00008\",\"sku\":\"00008\"}]},{\"tiles\":[{\"index\":4,\"name\":\"товар 1\",\"barcode\":\"00017\",\"sku\":\"00017\"},{\"index\":2,\"name\":\"товар 2\",\"barcode\":\"00008\",\"sku\":\"00008\"}]}]}" } ] }

SetTouch

Пример запроса для устройств SetTouch
{ "templateType": "SCHEDULED", "templateName": "Шаблон TOUCH", "templateGuid": 75355, "cashTemplates": [5], "menuTemplates": [ { "menuName": "Шаблон", "shopNumbers": [1654,1655,1656,1657,1658], "cashType": "TOUCH_2", "dateFrom": "2022-05-09", "dayOfWeek": "19", "content": "[{\"name\":\"1\",\"columns\":6,\"type\":\"GT\",\"tiles\":[{\"index\":0,\"name\":\"Товар\",\"tiles\":[],\"img\":\"\",\"itemId\":\"0000888\",\"barcode\":\"0000888\"}]}]" } ] }

Пример работы запроса в Postman

1. На вкладке запроса выберите POST → введите адрес следующего формата для загрузки пик-листа http://IP-адрес сервера SetRetail:8090/SetCashMenu-API/json/load → выберите тип данных JSON → вставьте JSON-запрос для формирования пик-листа → кликните SEND

2. При успешной загрузке пик-листа в блоке ответа от сервера появится сообщение "Загрузка шаблона меню произведена успешно".

© 1995-2026, ООО "Кристалл Сервис Интеграция".
Все права защищены.

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