Публичное пространство
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
- 1 Описание
- 2 Ценность
- 3 Примеры работы
- 4 Ограничения
- 5 Настройка
- 5.1 Активация печати этикеток и спуска дополнительных свойств товара
- 5.2 Настройка шаблона этикетки
- 5.3 Добавление и настройка процессинга
- 5.4 Настройка функциональных клавиш и клавиш прикассовой клавиатуры
- 5.5 Запуск контейнера и службы печати CUPS на кассе
- 5.6 Добавление принтера на кассе
- 5.6.1 Подключение по USB
- 5.6.2 Подключение по сети
- 5.7 Настройка размера бумаги в БД кассы
- 5.8 Настройка размера бумаги в службе печати CUPS
- 6 Статьи по теме
Описание
Возможность печати этикеток весовых товаров с принтера, подключенного к кассе. Поддержка печати на кассах SetTouch реализована начиная с версии 10.5.0.0.
Ценность
Ускорение продажи весовых и штучно-весовых товаров.
Примеры работы
Запрос печати при добавлении товара
Кассир добавляет весовой товар в чек.
На экране кассы отображается запрос “Распечатать этикетку?”.
POS
SetTouch
Кассир нажимает Распечатать → касса печатает этикетку.
Если кассир нажимает Нет или сканирует следующий товар - касса возвращается в режим продажи, этикетка не распечатывается.
В текущей версии на кассах SetTouch при сканировании следующего товара окно с запросом печати не закрывается.
Повторная печать
POS
Кассир нажимает кнопку на прикассовой клавиатуре или выбирает пункт меню Печать этикеток с кассы.
Касса отображает окно выбора товаров для печати этикетки.
Кассир выбирает требуемые товары и нажимает Распечатать. Принтер печатает этикетки.
SetTouch
Кассир нажимает кнопку Печать этикеток.
Касса отображает окно выбора товаров для печати этикетки.
Кассир выбирает требуемые товары и нажимает Распечатать. Принтер печатает этикетки.
Пример печати этикетки
Ограничения
До версии SetRetail 10.5.0.0 функциональность поддерживалась только на клавиатурных кассах. На SetTouch реализовано в версии 10.5.0.0.
Поддерживаются только кассы с ОС Ubuntu.
Поддерживаемое оборудование: настольный принтер с типом CSI Print D (Direct thermal, 4', 6"/s, 203 dpi, USB, Ethernet).
Если принтер не настроен - на кассе не будет работать функциональность печати этикеток: при добавлении весового/штучно-весового товара не будет отображения окна с запросом печати этикеток; функция вызова интерфейса для печати этикеток товаров, добавленных в чек, будет не доступна.
Если в принтере закончилась бумага - задания на печать будут успешно отправлены, но этикетка не распечатается. На принтере будет отображено соответствующее уведомление.
При сканировании/вводе весового ШК (ШК, в котором указан вес или количество) - товар добавляется в чек и касса НЕ запрашивает печать этикетки/ НЕ отправляет задание на печать на принтер.
Настройка
Активация печати этикеток и спуска дополнительных свойств товара
Выполните скрипты по БД 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';
После выполнения всех скриптов перезапустите службу сервера приложений SetCentrum командой:
sudo service JBOSS_SVC restart
Настройка шаблона этикетки
Для создания шаблонов этикеток воспользуйтесь редактором ценников на сервере SetCentrum: Ценники → Шаблоны.
Подробнее о работе с редактором шаблонов ценников SetRetail10 ◾️ Ценники → Глава “Редактор ценников“.
В шаблонах укажите реальный размер этикеток используемых для печати
Доступно добавление нескольких шаблонов под разный размер бумаги и с различным содержимым. Выбор необходимого шаблона для определённого магазина доступен в настройках процессинга “Печать этикеток с кассы”.
Для шаблонов доступны следующие подстановки:
Текст - произвольный текст
Изображение - произвольное изображение
Наименование товара
Полная дата печати ценника - например, 01.01.2025 00:00
Состав продукта
Пищевая ценность
Условия хранения
Срок годности - в днях
Срок годности в часах
Название юридического лица
Адрес магазина
Вес - фактический вес товара из чека (в граммах). Начиная с версии 10.4.24.0 передается и печатается вес в килограммах.
Произвольная подстановка 1 - стоимость товара (вес * цена)
Произвольная подстановка 2 - дата печати ценника (например, 01/01/25)
Произвольная подстановка 3 - табельный номер и ФИО кассира
Произвольная подстановка 4 - количество товара (для штучно-весовых товаров)
Тип сертификации
Штрихкод
Примеры шаблонов этикеток
Весовой товар
Штучно-весовой товар
Добавление и настройка процессинга
На сервере SetRetail/SetCentrum перейдите в раздел Интеграция → Внешние процессинги → кликните
.
Введите в строке поиска печать → кликните Функциональные плагины → установите флажок
Печать этикеток с кассы → кликните СОХРАНИТЬ.
Кликните по процессингу Печать этикеток с кассы.
Выберите магазин или установите флажок
Для всей сети → введите необходимые настройки → кликните СОХРАНИТЬ.
Если в определенном магазине не заполнены настройки, то на кассе будут использованы настройки из вкладки По умолчанию.
Параметр | Описание |
|---|---|
Guid шаблона ценника для печати этикетки весового товара | Идентификатор шаблона ценника для печати этикетки весового товара |
Guid шаблона ценника для печати этикетки штучно-весового товара | Идентификатор шаблона ценника для печати этикетки штучно-весового товара. |
| При включенном параметре, касса будет запрашивать у кассира подтверждение печати этикетки при каждом добавлении весового или штучно-весового товара в чек. При выключенном параметре, печать этикеток будет происходить автоматически, без подтверждения со стороны кассира |
Адрес сервиса печати | Адрес сервиса печати. Расположен на кассе, поэтому можно оставить по умолчанию: http://localhost |
Таймаут ожидания ответа, миллисекунды | Время ожидания получения ответа от сервиса в миллисекундах |
Таймаут соединения, миллисекунды | Время соединения с сервисом в миллисекундах |
Получение 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
Настройка функциональных клавиш и клавиш прикассовой клавиатуры
Для повторной печати этикеток с кассы можно назначить быстрый доступ с прикассовой клавиатуры и из экранного меню.
Клавиша прикассовой клавиатуры
Перейдите в раздел Кассовый модуль → кликните Кассовое оборудование → нажмите кнопку редактирования шаблона клавиатуры.
Для выбранной кнопки назначьте функцию Печать этикеток с кассы → введите название кнопки → нажмите Сохранить.
Кассовое меню POS
Перейдите в Кассовый модуль → кликните Шаблоны касс → откройте на редактирование требуемый шаблон клавиатурной кассы.
Перейдите на вкладку ИНТЕРФЕЙС → нажмите
.
Для выбранной кнопки назначьте функцию Печать этикеток с кассы → введите название кнопки → нажмите Применить.
Перезагрузите кассовый модуль для применения настроек.
Функциональное меню SetTouch
Перейдите в раздел Кассовый модуль → Настройки интерфейса → кликните по требуемому шаблону функционального меню.
Для новой клавиши назначьте функцию Печать этикеток с кассы → отредактируйте название кнопки → выберите изображение → кликните СОЗДАТЬ.
Клавиша отобразится в меню. Кликните СОХРАНИТЬ → перезагрузите кассовый модуль для применения настроек.
Запуск контейнера и службы печати CUPS на кассе
В случае, если контейнер для печати не запускали для всех касс сети, то запустите контейнер на нужной кассе, для этого выполните скрипты по БД 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);
Полностью перезапустите кассу с помощью команды:
cash rebootПосле перезапуска кассы выполните команду для проверки запуска контейнера:
docker psВ результате должен отобразиться контейнер с именем print-price-tags:
Активируйте и запустите службу печати CUPS на кассе
Активация службы:
sudo systemctl enable cupsЗапуск службы:
sudo systemctl start cups
Добавление принтера на кассе
Подключение по USB
При подключении по USB принтер добавится в службу печати CUPS автоматически.
Убедитесь, что принтер добавился, с помощью команды:
lpstat -s2. В результате отобразится название устройства, например 4B-2054A:
Подключение по сети
Определите необходимый драйвер для своей ревизии принтера:
Через утилиту Diagnostic Tool ():
Через веб-интерфейс принтера:
Добавьте сетевой принтер в службу печати 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Убедитесь, что принтер добавился, с помощью команды ниже, в результате отобразится указанное вами название устройства:
lpstat -s
Печать тестовой страницы
После подключения принтера по USB или по сети, можете отправить на него печать тестовой страницы с помощью команды:
lp -d имя_принтера /usr/share/cups/data/testprint
Настройка размера бумаги в БД кассы
После подключения принтера по 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 | Адресация в формате | Да |
paper_bottom_margin | Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ снизу, в миллиметрах | Нет |
paper_height | Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: высота бумаги, в миллиметрах; | Да |
paper_left_margin | Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ слева, в миллиметрах; | Нет |
paper_right_margin | Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ справа, в миллиметрах; | Нет |
paper_top_margin | Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: отступ сверху, в миллиметрах; | Нет |
paper_width | Формат бумаги по умолчанию для этого (конкретного!) экземпляра принтера: ширина бумаги, в миллиметрах; | Да |
is_default | Является ли принтером по умолчанию | Нет |
model | Модель принтера | Нет |
name | Название принтера | Да |
Размеры, указываемые в БД кассы, должны совпадать с размерами шаблона этикетки
Важно сопоставить размеры, указываемые в БД кассы, с размерами шаблона этикетки:
Полностью перезапустите кассу с помощью команды:
cash rebootПосле запуска кассы проверьте, успешно ли добавился принтер в контейнер с помощью команды:
curl http://127.0.0.1:8095/v1/printer/search
Настройка размера бумаги в службе печати CUPS
Скачайте архив , распакуйте и скопируйте скрипт на кассу, например в директорию /home/tc/storage.
Выполните команду, чтобы сделать скрипт исполняемым:
sudo chmod +x /home/tc/storage/scriptPPD.shОстановите службу печати CUPS с помощью команды:
sudo service cups stopЗапустите скрипт командой:
sudo /home/tc/storage/scriptPPD.shЗаполните предлагаемые скриптом значения:
Имя принтера - имя, под которым принтер добавлен на кассе, например 4B-2054A или CSIPrintD, как в примерах ранее
Ширина бумаги (в мм)
Высота бумаги (в мм)
Перезапустите службу печати CUPS с помощью команды:
sudo service cups restart
Статьи по теме