В кассовом ПО 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строковый
  • on
  • off
Плагин для работы с изображениями товараПо умолчанию off
Пример настройки
[plugins]
; Плагин для работы с изображениями товаров
imageloader = off

Настройка плагина производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/imageloader.ini в секции [ImageLoader].

НаименованиеТип данныхОписаниеПримечания

storePath

строковыйДиректория для хранения загруженных изображений

По умолчанию "/linuxcash/cash/data/images".
При первом запросе на загрузку изображения оно сохраняется в директории в захэшированном виде.
При повторном добавлении товара или открытии списка каталогов изображение загрузится из хэша

timeoutцелочисленныйТаймаут обращений к серверу изображений в секундахПо умолчанию 5
taskLimitцелочисленныйМаксимальное количество одновременно загружаемых изображенийПо умолчанию 5
urlстроковыйАдрес сервера с изображениями

По умолчанию "http://localhost"

pathстроковыйПуть расположения изображений на сервере

По умолчанию не задан

Путь вычисляется относительно корневой директории веб-сервера: /var/www/html/.

fileNameстроковыйШаблон имени файла на сервере

По умолчанию "%1"

Пример настройки
[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 три записи:

  1. В первой записи для поля usagetype задать значение 0,
  2. Во второй записи для поля usagetype задать значение 1,
  3. В третьей записи для поля 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, например, 1067hash4012922851550hash.

При смене изображения товара необходимо удалить соответствующий кэш-файл из директории для хранения загруженных изображений на кассе (значение параметра 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.

Пример настройки в /linuxcash/cash/conf/ncash.ini.d/imageloader.ini:
[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.
Пример настройки в /linuxcash/cash/conf/ncash.ini.d/imageloader.ini:
[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.
Пример настройки в /linuxcash/cash/conf/ncash.ini.d/imageloader.ini:
[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.

Пример настройки в /linuxcash/cash/conf/ncash.ini.d/imageloader.ini:
[ImageLoader]
url = "http://192.XXХ.ХХ.ХХ"
fileName = "catalog%1.png"

Загрузка справочников в формате AIF

Команда addImage

Команда addImage добавляет изображение в справочник изображений. Атрибуты изображения задаются обязательным параметром image.  

Свойства параметра image:

Свойство

Тип данных

Описание

id

строковый

Идентификатор изображения

idtype

числовой

Тип идентификатора изображения:

  • 0 – код товара,
  • 1 – код или штрих-код товара,
  • 2 – зарезервировано для будущего использования,
  • 3 – код родительской группы товаров.
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" 
    }    
}
 ---
  • No labels