SetRetail10 ◾️ Печать этикеток для весовых товаров на кассе

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

SetRetail10 ◾️ Печать этикеток для весовых товаров на кассе

https://crystals.atlassian.net/browse/SRTS-3622

https://crystals.atlassian.net/browse/SRTB-9456

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

10.4.16.0

https://crystals.atlassian.net/browse/SRTB-9888

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

10.5.0.0

Описание

Возможность печати этикеток весовых товаров с принтера, подключенного к кассе. Поддержка печати на кассах SetTouch реализована начиная с версии 10.5.0.0.

Ценность

Ускорение продажи весовых и штучно-весовых товаров.

Примеры работы

Запрос печати при добавлении товара

  1. Кассир добавляет весовой товар в чек.

  2. На экране кассы отображается запрос “Распечатать этикетку?”.

POS

image-20260320-032445.png

SetTouch

image-20260625-124604.png

 

  1. Кассир нажимает Распечатать → касса печатает этикетку.

Если кассир нажимает Нет или сканирует следующий товар - касса возвращается в режим продажи, этикетка не распечатывается.

В текущей версии на кассах SetTouch при сканировании следующего товара окно с запросом печати не закрывается.

Повторная печать

POS

  1. Кассир нажимает кнопку на прикассовой клавиатуре или выбирает пункт меню Печать этикеток с кассы.

122.png
  1. Касса отображает окно выбора товаров для печати этикетки.

123.png
  1. Кассир выбирает требуемые товары и нажимает Распечатать. Принтер печатает этикетки.

image-20251015-141844.png

SetTouch

  1. Кассир нажимает кнопку Печать этикеток.

image-20260626-084112.png
  1. Касса отображает окно выбора товаров для печати этикетки.

image-20260626-091034.png
  1. Кассир выбирает требуемые товары и нажимает Распечатать. Принтер печатает этикетки.

image-20260626-091103.png

 

 

Пример печати этикетки

image-20251015-142009.png

 

Ограничения

  • До версии SetRetail 10.5.0.0 функциональность поддерживалась только на клавиатурных кассах. На SetTouch реализовано в версии 10.5.0.0.

  • Поддерживаются только кассы с ОС Ubuntu.

  • Поддерживаемое оборудование: настольный принтер с типом CSI Print D (Direct thermal, 4', 6"/s, 203 dpi, USB, Ethernet).

    • Если принтер не настроен - на кассе не будет работать функциональность печати этикеток: при добавлении весового/штучно-весового товара не будет отображения окна с запросом печати этикеток; функция вызова интерфейса для печати этикеток товаров, добавленных в чек, будет не доступна.

    • Если в принтере закончилась бумага - задания на печать будут успешно отправлены, но этикетка не распечатается. На принтере будет отображено соответствующее уведомление.

  • При сканировании/вводе весового ШК (ШК, в котором указан вес или количество) - товар добавляется в чек и касса НЕ запрашивает печать этикетки/ НЕ отправляет задание на печать на принтер.

 

Настройка

Активация печати этикеток и спуска дополнительных свойств товара

  1. Выполните скрипты по БД set на сервере SetCentrum:

  • Включение функциональности печати этикеток с кассы:

UPDATE sales_management_properties SET property_value = 'true', send_status = 0 WHERE module_name = 'SET_PRINT_PRICE_TAGS' AND property_key = 'print.price.tags.from.cash.enabled';

 

  • Запуск отправки дополнительных свойств товара на кассы:

UPDATE sales_management_properties SET property_value = 'true' WHERE module_name = 'SET_PRODUCTS' AND property_key = 'send.product.plugin.props.to.cash.enabled';

 

  • Список дополнительных свойств товаров, спускаемых на кассы:

UPDATE sales_management_properties SET property_value = 'composition,good-for-hours,good-for-days,date-of-manufacture,certification-type,storage-conditions,food-value,plu-number,button-on-scale' WHERE module_name = 'SET_PRODUCTS' AND property_key = 'send.product.plugin.props.to.cash.filter';

 

  • Запуск контейнера на кассе.

Внимание! Если не планируется запускать контейнер на всех кассах сети, то этот скрипт нужно выполнять точечно на кассе (настройка в главе Запуск контейнера и службы печати CUPS на кассе)

UPDATE sales_management_properties SET property_value = 'true', send_status = 0 WHERE module_name = 'SET_PRINT_PRICE_TAGS' AND property_key = 'print.price.tags.from.cash.container.enabled';

 

  1. После выполнения всех скриптов перезапустите службу сервера приложений SetCentrum командой:

sudo service JBOSS_SVC restart

 

Настройка шаблона этикетки

  • Для создания шаблонов этикеток воспользуйтесь редактором ценников на сервере SetCentrum: ЦенникиШаблоны.

  • Подробнее о работе с редактором шаблонов ценников SetRetail10 ◾️ ЦенникиГлава “Редактор ценников“.

  • В шаблонах укажите реальный размер этикеток используемых для печати

  • Доступно добавление нескольких шаблонов под разный размер бумаги и с различным содержимым. Выбор необходимого шаблона для определённого магазина доступен в настройках процессинга “Печать этикеток с кассы”.

Для шаблонов доступны следующие подстановки:

  • Текст - произвольный текст

  • Изображение - произвольное изображение

  • Наименование товара

  • Полная дата печати ценника - например, 01.01.2025 00:00

  • Состав продукта

  • Пищевая ценность

  • Условия хранения

  • Срок годности - в днях

  • Срок годности в часах

  • Название юридического лица

  • Адрес магазина

  • Вес - фактический вес товара из чека (в граммах). Начиная с версии 10.4.24.0 передается и печатается вес в килограммах.

  • Произвольная подстановка 1 - стоимость товара (вес * цена)

  • Произвольная подстановка 2 - дата печати ценника (например, 01/01/25)

  • Произвольная подстановка 3 - табельный номер и ФИО кассира

  • Произвольная подстановка 4 - количество товара (для штучно-весовых товаров)

  • Тип сертификации

  • Штрихкод

Примеры шаблонов этикеток

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

image-20260316-080312.png

 

Штучно-весовой товар

image-20260316-080425.png

 

Добавление и настройка процессинга

  1. На сервере SetRetail/SetCentrum перейдите в раздел Интеграция → Внешние процессинги → кликните image2020-5-8_22-32-37.png.

image-20260315-084817.png
  1. Введите в строке поиска печать → кликните Функциональные плагины → установите флажок image2021-3-24_11-29-30.png Печать этикеток с кассы → кликните СОХРАНИТЬ.

image-20260315-084603.png
  1. Кликните по процессингу Печать этикеток с кассы.

image-20260315-085508.png
  1. Выберите магазин или установите флажок image2021-3-24_11-29-30.png Для всей сети → введите необходимые настройки → кликните СОХРАНИТЬ.

Если в определенном магазине не заполнены настройки, то на кассе будут использованы настройки из вкладки По умолчанию.

Параметр

Описание

Параметр

Описание

Guid шаблона ценника для печати этикетки весового товара

Идентификатор шаблона ценника для печати этикетки весового товара
Пример получения guid.

Guid шаблона ценника для печати этикетки штучно-весового товара

Идентификатор шаблона ценника для печати этикетки штучно-весового товара.

image2021-3-24_11-29-30.png Отображать запрос печати этикеток

При включенном параметре, касса будет запрашивать у кассира подтверждение печати этикетки при каждом добавлении весового или штучно-весового товара в чек.

При выключенном параметре, печать этикеток будет происходить автоматически, без подтверждения со стороны кассира

Адрес сервиса печати

Адрес сервиса печати. Расположен на кассе, поэтому можно оставить по умолчанию: http://localhost

Таймаут ожидания ответа, миллисекунды

Время ожидания получения ответа от сервиса в миллисекундах

Таймаут соединения, миллисекунды

Время соединения с сервисом в миллисекундах

image-20260315-095615.png

 

Получение guid шаблонов этикеток

Для получения guid шаблонов этикеток выполните запрос по БД set на сервере SetCentrum с указанием названия искомого шаблона:

SELECT guid "Guid ценника", name "Название шаблона этикетки" FROM un_cg_pricetag WHERE NAME='искомое название шаблона'

Пример:

Название шаблона: Весовой товар- 58 80.

Запрос:

SELECT guid "Guid ценника", name "Название шаблона этикетки" FROM un_cg_pricetag WHERE NAME='Весовой товар- 58 80'

Guid: 53956e15-8902-4607-b017-acdba0d79084

image-20260314-102335.png

 

Настройка функциональных клавиш и клавиш прикассовой клавиатуры

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

Клавиша прикассовой клавиатуры

  1. Перейдите в раздел Кассовый модуль → кликните Кассовое оборудование → нажмите кнопку редактирования шаблона клавиатуры.

image-20260317-102112.png
  1. Для выбранной кнопки назначьте функцию Печать этикеток с кассы → введите название кнопки → нажмите Сохранить.

image-20260316-205534.png

 

Кассовое меню POS

  1. Перейдите в Кассовый модуль → кликните Шаблоны касс → откройте на редактирование требуемый шаблон клавиатурной кассы.

image-20260317-110756.png
  1. Перейдите на вкладку ИНТЕРФЕЙС → нажмите .

image-20251228-233308.png
  1. Для выбранной кнопки назначьте функцию Печать этикеток с кассы → введите название кнопки → нажмите Применить.

image-20260316-205833.png
  1. Перезагрузите кассовый модуль для применения настроек.

Функциональное меню SetTouch

  1. Перейдите в раздел Кассовый модуль → Настройки интерфейса → кликните по требуемому шаблону функционального меню.

image-20260629-082003.png
  1. Для новой клавиши назначьте функцию Печать этикеток с кассы → отредактируйте название кнопки  → выберите изображение → кликните СОЗДАТЬ.

image-20260629-082749.png
  1. Клавиша отобразится в меню. Кликните СОХРАНИТЬ → перезагрузите кассовый модуль для применения настроек.

image-20260629-083455.png

 

Запуск контейнера и службы печати CUPS на кассе

  1. В случае, если контейнер для печати не запускали для всех касс сети, то запустите контейнер на нужной кассе, для этого выполните скрипты по БД catalog на кассе:

  • Проверьте наличие настройки print.price.tags.from.cash.container.enabled на кассе:

SELECT * FROM sales_management_properties WHERE module_name='SET_PRINT_PRICE_TAGS' AND property_key = 'print.price.tags.from.cash.container.enabled';

 

  • Если настройка присутствует, то используйте данный скрипт, чтобы включить её:

UPDATE sales_management_properties SET property_value = 'true' WHERE module_name = 'SET_PRINT_PRICE_TAGS' AND property_key = 'print.price.tags.from.cash.container.enabled';

 

  • Если настройки на кассе нет, то выполните данный скрипт, чтобы создать и включить контейнер:

INSERT INTO sales_management_properties (module_name,plugin_name,property_key,property_value,description,transport_level,priority,send_status) VALUES ('SET_PRINT_PRICE_TAGS',NULL,'print.price.tags.from.cash.container.enabled','true','Включение контейнера печати ценников на кассе. Применяется совместно с настройкой print.price.tags.from.cash.enabled',10,2,0);

 

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

cash reboot
  1. После перезапуска кассы выполните команду для проверки запуска контейнера:

docker ps

В результате должен отобразиться контейнер с именем print-price-tags:

image-20260319-054329.png

 

  1. Активируйте и запустите службу печати CUPS на кассе

  • Активация службы:

sudo systemctl enable cups
image-20260319-164142.png
  • Запуск службы:

sudo systemctl start cups
image-20260319-164205.png

 

Добавление принтера на кассе

Подключение по USB

При подключении по USB принтер добавится в службу печати CUPS автоматически.

  1. Убедитесь, что принтер добавился, с помощью команды:

lpstat -s

 2. В результате отобразится название устройства, например 4B-2054A:

image-20260319-083545.png

Подключение по сети

  1. Определите необходимый драйвер для своей ревизии принтера:

  • Через утилиту Diagnostic Tool ():

image-20260317-085842.png
  • Через веб-интерфейс принтера:

ц1112.png
  1. Добавьте сетевой принтер в службу печати CUPS командой с указанием имени принтера, его адреса и драйвера:

lpadmin -p имя_принтера_для_службы_печати -E -v socket://ip_адрес_принтера:9100 -m 4BARCODE/драйвер

Например:

lpadmin -p CSIPrintD -E -v socket://172.29.22.179:9100 -m 4BARCODE/4B-2054A.ppd

Доступные драйвера можно просмотреть на кассе в директории /usr/share/cups/model/4BARCODE с помощью команды

ls /usr/share/cups/model/4BARCODE
image-20260317-094208.png
  1. Убедитесь, что принтер добавился, с помощью команды ниже, в результате отобразится указанное вами название устройства:

lpstat -s

 

Печать тестовой страницы

После подключения принтера по USB или по сети, можете отправить на него печать тестовой страницы с помощью команды:

lp -d имя_принтера /usr/share/cups/data/testprint

 

Настройка размера бумаги в БД кассы

  1. После подключения принтера по USB или по сети, укажите его в БД кассы для передачи в контейнер, для этого выполните скрипт по БД catalog на кассе:

Приведен пример скрипта! Отредактируйте скрипт в соответствии с параметрами вашего принтера.

  • краткий скрипт с обязательными полями:

INSERT INTO printer (id, address, paper_height, paper_width, is_default, name) VALUES (nextval('hibernate_sequence'), 'IPP Printer : 4B-2054A', '80', '58', true, 'CSIPrintD');

 

  • полный скрипт со всеми полями:

INSERT INTO printer (id, address, paper_bottom_margin, paper_height, paper_left_margin, paper_right_margin, paper_top_margin, paper_width, is_default, model, name) VALUES (nextval('hibernate_sequence'), 'IPP Printer : 4B-2054A', '1', '80', '1', '1', '1', '58', true, 'CSIPrintD', 'CSIPrintD');

 

Описание полей скрипта (таблицы)

Поле

Описание

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

Поле

Описание

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

id

Уникальный идентификатор принтера

Да

address

Адресация в формате IPP Printer : Название принтера

Да

paper_bottom_margin

Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ снизу, в миллиметрах

Нет

paper_height

Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: высота бумаги, в миллиметрах;

Да

paper_left_margin

Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ слева, в миллиметрах;

Нет

paper_right_margin

Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ справа, в миллиметрах;

Нет

paper_top_margin

Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ сверху, в миллиметрах;

Нет

paper_width

Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: ширина бумаги, в миллиметрах;

Да

is_default

Является ли принтером по умолчанию

Нет

model

Модель принтера

Нет

name

Название принтера

Да

Размеры, указываемые в БД кассы, должны совпадать с размерами шаблона этикетки

Важно сопоставить размеры, указываемые в БД кассы, с размерами шаблона этикетки:

picture121212222.png

 

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

cash reboot
  1. После запуска кассы проверьте, успешно ли добавился принтер в контейнер с помощью команды:

curl http://127.0.0.1:8095/v1/printer/search

 

Настройка размера бумаги в службе печати CUPS

  1. Скачайте архив , распакуйте и скопируйте скрипт на кассу, например в директорию /home/tc/storage.

image-20260319-200059.png
  1. Выполните команду, чтобы сделать скрипт исполняемым:

sudo chmod +x /home/tc/storage/scriptPPD.sh
image-20260319-200124.png
  1. Остановите службу печати CUPS с помощью команды:

sudo service cups stop
image-20260319-200951.png
  1. Запустите скрипт командой:

sudo /home/tc/storage/scriptPPD.sh
  1. Заполните предлагаемые скриптом значения:

    • Имя принтера - имя, под которым принтер добавлен на кассе, например 4B-2054A или CSIPrintD, как в примерах ранее

    • Ширина бумаги (в мм)

    • Высота бумаги (в мм)

image-20260319-201108.png
  1. Перезапустите службу печати CUPS с помощью команды:

sudo service cups restart
image-20260319-201128.png

 

Статьи по теме