В кассовом ПО Artix реализована возможность загружать изображения товаров для отображения их в чеке и каталоге. Для этого необходимо использовать:
- модуль
imageloader, - веб-сервер для хранения изображений.
Для загрузки изображений товаров файл лицензии должен содержать модуль imageloader. Подробнее об этом можно прочитать в разделе "Формат лицензии Artix .li4".
Установка веб-сервера
Для хранения изображений можно использовать веб-сервер lighttpd. Установка сервера может быть произведена на кассовый сервер или отдельную машину.
Для установки сервера выполните следующую команду:
sudo aptitude install lighttpd
Для проверки состояния сервера выполните команду:
systemctl status lighttpd
Настройка сервера выполняется в конфигурационном файле /etc/lighttpd/lighttpd.conf.
Изображения для товаров необходимо располагать в корневой директории веб-сервера /var/www/html.
Конфигурирование модуля imageloader
Активация плагина для работы с изображениями товара определяется параметром imageloader в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/imageloader.ini в секции [plugins].
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
imageloader | строковый |
| Плагин для работы с изображениями товара | По умолчанию off |
[plugins] ; Плагин для работы с изображениями товаров imageloader = off
Настройка плагина производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/imageloader.ini в секции [ImageLoader].
| Наименование | Тип данных | Описание | Примечания |
|---|---|---|---|
storePath | строковый | Директория для хранения загруженных изображений | По умолчанию |
| timeout | целочисленный | Таймаут обращений к серверу изображений в секундах | По умолчанию 5 |
| taskLimit | целочисленный | Максимальное количество одновременно загружаемых изображений | По умолчанию 5 |
| url | строковый | Адрес сервера с изображениями | По умолчанию |
| path | строковый | Путь расположения изображений на сервере | По умолчанию не задан Путь вычисляется относительно корневой директории веб-сервера: |
| fileName | строковый | Шаблон имени файла на сервере | По умолчанию |
[ImageLoader] ; Директория для хранения загруженных изображений ; По умолчанию "/linuxcash/cash/data/images" ;storePath = "/linuxcash/cash/data/images" ; Таймаут обращений к серверу изображений в секундах ; По умолчанию 5 секунд ;timeout = 5 ; Максимальное количество одновременно загружаемых изображений ; По умолчанию 5 ;taskLimit = 5 ; Адрес сервера с изображениями ; По умолчанию "http://localhost" ;url = "http://localhost" ; Путь расположения изображений на сервере ; По умолчанию "" ;path = "" ; Шаблон имени файла на сервере ; По умолчанию "%1" ;fileName = "%1"
Принцип работы
Для использования изображений необходимо заполнить и загрузить справочники в БД Dictionaries таблицу Images.
Для работы плагина ImageLoader необходимо разместить изображения в специальной директории на удаленном сервере.
Название изображения:
- по умолчанию имеет вид "
%1.png", где%1– параметр подстановки, который будет автоматически заменен на код/штрих-код товара или код родительской группы (идентификатор каталога), - зависит от регистра (например,
image1.pngиIMAGE1.png– это разные изображения).
[ImageLoader] ... fileName = "image%1.png"
[ImageLoader] ... fileName = "IMAGE%1.png"
Значение для подстановки выбирается с учетом типа идентификатора, который задается в БД Dictionaries таблице Images поле idtype:
0– штрих-код или код товара,3– код родительской группы товаров (каталог/пиклист).
Если, например, idtype = 0, и в таблице Images поле id заполнено значением 4603673881189 (штрих-код товара), то выражение image%1.png будет преобразовано в image4603673881189.png.
Для показа изображений на разных мониторах необходимо создать в таблице Images три записи:
- В первой записи для поля
usagetypeзадать значение0, - Во второй записи для поля
usagetypeзадать значение1, - В третьей записи для поля
usagetypeзадать значение2.
Подробнее о настройке изображений товаров можно прочитать в разделе "Изображение товаров".
Для возможности отображать разные изображения на разных мониторах в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/imageloader.ini может быть создано несколько подсекций вида [ImageLoader.N.K], где:
N– значение поляidtype,K– значение поляusagetype.
Количество подсекций должно быть равно количеству записей в БД Dictionaries таблице Images.
Поле hash заполняется вручную. Для каждого изображения значение поля hash должно быть уникальным. На основе значения поля hash формируется кэш-файл и сохраняется в директорию, путь к которой определяется параметром storePath.
Поле hash рекомендуется заполнять, используя значение поля id, например, 1067hash, 4012922851550hash.
При смене изображения товара необходимо удалить соответствующий кэш-файл из директории для хранения загруженных изображений на кассе (значение параметра storePath).
Примеры настройки плагина и заполнения справочников
Пример с использованием кода товара и одного изображения
В БД Dictionaries таблице Images:
- для отображения на экране кассира (на первом мониторе):
id=100,idtype=0,usagetype=0,hash=100hash1.
- для отображения на втором мониторе:
id=100,idtype=0,usagetype=1,hash=100hash1.
- для отображения на боковой панели:
id=100,idtype=0,usagetype= 2,hash=100hash1.
В директории для загрузки размещено изображение /var/www/html/image_main100.png.
[ImageLoader.0.0] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_main%1.png" [ImageLoader.0.1] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_main%1.png" [ImageLoader.0.2] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_main%1.png"
При добавлении товара по коду 100 на экране будет отображено image_main100.png:
- у позиции в чеке,
- на втором мониторе,
- в области дополнительной информации о товарной позиции.
Пример с использованием кода товара и трех изображений
В БД Dictionaries таблице Images:
- для отображения на экране кассира (на первом мониторе):
id=100,idtype=0,usagetype=0,hash=100hash1.
- для отображения на втором мониторе:
id=100,idtype=0,usagetype=1,hash=100hash2.
- для отображения на боковой панели:
id=100,idtype=0,usagetype= 2,hash=100hash3.
В директории для загрузки размещены изображения:
/var/www/html/image_main100.png,/var/www/html/image_second100.png,/var/www/html/image_side100.png.
[ImageLoader.0.0] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_main%1.png" [ImageLoader.0.1] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_second%1.png" [ImageLoader.0.2] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_side%1.png"
При добавлении товара по коду 100 на экране будет отображено:
- у позиции в чеке –
image_main100.png, - на втором мониторе –
image_second100.png, - в области дополнительной информации о товарной позиции –
image_side100.png.
Пример с использованием штрих-кода товара и трех изображений
В БД Dictionaries таблице Images:
- для отображения на экране кассира (на первом мониторе):
id=4012922851550,idtype=0,usagetype=0,hash=4012922851550hash1.
- для отображения на втором мониторе:
id=4012922851550,idtype=0,usagetype=1,hash=4012922851550hash2.
- для отображения на боковой панели:
id=4012922851550,idtype=0,usagetype= 2,hash=4012922851550hash3.
В директории для загрузки размещены изображения:
/var/www/html/image_main4012922851550.png,/var/www/html/image_second4012922851550.png,/var/www/html/image_side4012922851550.png.
[ImageLoader.0.0] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_main%1.png" [ImageLoader.0.1] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_second%1.png" [ImageLoader.0.2] url = "http://192.XXХ.ХХ.ХХ" fileName = "image_side%1.png"
При добавлении товара по штрих-коду 4012922851550 на экране будет отображено:
- у позиции в чеке –
image_main4012922851550.png, - на втором мониторе –
image_second4012922851550.png, - в области дополнительной информации о товарной позиции –
image_side4012922851550.png.
Пример с использованием кода родительской группы/каталога товара
В БД Dictionaries таблице Images для отображения на экране кассира (на первом мониторе):
id=123,idtype=3,usagetype=0,hash= 123hash.
В директории для загрузки необходимо разместить изображение /var/www/html/catalog123.png.
[ImageLoader] url = "http://192.XXХ.ХХ.ХХ" fileName = "catalog%1.png"
Загрузка справочников в формате AIF
Команда addImage
Команда addImage добавляет изображение в справочник изображений. Атрибуты изображения задаются обязательным параметром image.
Свойства параметра image:
Свойство | Тип данных | Описание |
|---|---|---|
id | строковый | Идентификатор изображения |
idtype | числовой | Тип идентификатора изображения:
|
| usagetype | строковый | Режим использования изображения |
| hash | строковый | Хэш изображения |
---
{
"command": "addImage",
"image": {
"id": "3",
"idtype": 0,
"usagetype": 0,
"hash": "hash3"
}
}
---
Команда clearImage
Команда clearImage очищает справочник каталогов:
{
"command": "clearImage"
}
---
Команда deleteImage
Команда deleteImage удаляет из справочника изображений запись об изображении.
В качестве параметра передается объект image.
---
{
"command": "deleteImage",
"image": {
"id": "3",
"idtype": 0,
"usagetype": 0,
"hash": "hash3"
}
}
---


