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

Set Sync ◾️ Синхронизация медиаконтента (загрузка изображений и видео на кассы)

CR-4122 - Получение подробных данных проблемы… СТАТУС

SRTE-3039 - Получение подробных данных проблемы… СТАТУС

SRTE-3054 - Получение подробных данных проблемы… СТАТУС

SRTE-3055 - Получение подробных данных проблемы… СТАТУС

SRTE-3061 - Получение подробных данных проблемы… СТАТУС

10.2.92.0

Описание

В SetRetail10 есть функциональность по отображению изображений в плитках продаж или показ медиаконтента в LCD-мониторах. Начиная с версии 10.2.92.0 появилась возможность по обеспечению синхронизации медиаконтента с кассами (Клавиатурные, SetTouch).

Компоненты

  • MinIO — это сервер хранения объектов с открытым исходным кодом. Служба может хранить неструктурированные данные, такие как фото, видео, файлы любых типов, и предоставляет один сервер хранения объектов, объединяющий в пул множество дисков, размещенных на разных серверах. 

  • minio-forward-proxy - компонент отвечает за отображение контента (изображений) в визуализации сервера - плитках пик-листов и карточках товаров.
  • Rclone — это многопоточная компьютерная программа с открытым исходным кодом, предназначенная для управления файлами в облаке и других хранилищах с высокой задержкой.

Системные требования

Компоненты MinIO и микросервис minio-forward-proxy устанавливаются на отдельной машине Linux

В таблице указаны рекомендуемые системные требования для установки сервиса MinIO и микросервиса minio-forward-proxy.

СерверПроцессорRAM (GB)Disk size (GB)Пропускная способность канала
1 хост Linux для установки и MinIO и микросервиса4 ядра по 2,2 ГГц

8 GB

SSD (объем SSD зависит от объема контента для синхронизации)1 Гигабит в секунду

Список необходимых портов

Проверка доступности портов от кассы к серверу

№ портаТипНазначение
9001TCP

Порт должен быть открыт:

  • между кассой и сервером MinIO
  • между сервером Set10 и сервером MinIO
5678TCP

Отображение картинок в визуализации сервера Set10.

Порт должен быть открыт между сервером Set10 и сервером MinIO.

⚠️Указан номер порта для примера при установке по данной инструкции.

Настройка

Подготовка 

Настройка часового пояса

1. Выполните команду для проверки часового пояса:

timedatectl

2. Чтобы вывести список зон для Европы выполните команду:

timedatectl list-timezones | grep Europe

3. Чтобы вывести список зон для Азии выполните команду:

timedatectl list-timezones | grep Asia

4. Найдите в списке регион с нужным часовым поясом. Например, для Москвы необходимо установить Europe/Moscow. 

5. Выполните команду для установки часового пояса:

timedatectl set-timezone Europe/Moscow

6. Командой timedatectl проверьте правильность настройки часового пояса.

7. Для синхронизации времени на серверах воспользуйтесь рекомендациями из статьи.

confluence.macros.advanced.include.unable-to-render Включенная страница не может быть найдена.

MinIO

Пример настройки на образе CentOS SetRetail.

1. Создайте папку командой:

 mkdir /home/minio

2. Перейдите в созданную папку:

cd /home/minio/

3. Выполните команду для загрузки актуального программного пакета minio:

 wget https://dl.min.io/server/minio/release/linux-amd64/minio

4. Дождитесь окончания загрузки.

5. Выполните команду для установки необходимых разрешений:

chmod +x minio

5. Выполните команду для проверки запуска сервиса minio, указав необходимый порт, через который будет происходить обмен.

nohup ./minio server --address :9001 /home/minio/data &

6. Откройте любой веб-браузер в сети и наберите IP-адрес в формате http://XXX.XXX.XXX.XXX:ПОРТ → убедитесь, что запускается страница авторизации сервиса minio.

Автозапуск

Добавьте на автозапуск сервис minio:

1. Скачайте и поместите скрипт d.sh в папку на сервере /home/minio.

2. Откройте файл d.sh для редактирования → если требуется, установите необходимый порт для работы сервиса → сохраните изменения.

3. Откройте на редактирование файл /etc/rc.d/rc.local.

4. Добавьте команду для выполнения при запуске ОС → сделайте пустую строку → сохраните файл.

sh /home/minio/d.sh

5. В командной строке выполните команды:

chmod +x /home/minio/d.sh
chmod +x /etc/rc.d/rc.local
systemctl enable rc-local

6. Перезагрузите сервер полностью. Проверьте работу сервиса через веб-браузер.

sudo reboot

Микросервис minio-forward-proxy

Пример настройки на образе CentOS SetRetail.

Установка Docker и docker-compose

  • Обязательно производите установку в режиме суперпользователя.
  • Если это пользователь не root, тогда произведите логин с правами администратора, выполнив команду sudo su с вводом пароля для пользователя.

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

sudo yum remove docker \
                  docker-common \
                  docker-selinux \
                  docker-engine

2. Установите необходимые пакеты, выполнив команду:

sudo yum check-update

3. Установите Docker:

curl -fsSL https://get.docker.com/ | sh

Дождитесь окончания процесса.

4. Выполните следующие команды:

sudo curl -L "https://github.com/docker/compose/releases/download/1.26.0/docker-compose-$(uname -s)-$(uname -m)"  -o /usr/local/bin/docker-compose
sudo mv /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo chmod +x /usr/bin/docker-compose
docker-compose --version

5. Запустите Docker:

sudo systemctl start docker

6. Проверьте, что служба Docker запускается, набрав команду:

sudo systemctl status docker

7. Установите службу Docker на автозапуск:

sudo systemctl enable docker

8. Произведите авторизацию для учетной записи, которая позволяет выполнить установку микросервиса minio-forward-proxy.

Выполните команду:

docker login artifactory.setmachine.ru:5000
  • Username: setsync-customers
  • Password: JQ9v&H39q70R
  • Процесс ввода пароля не отображается.
  • Учетная запись только для установки микросервиса minio-forward-proxy

Убедитесь, что появилось сообщение Login Succeeded.

Установка микросервиса

1. Создайте в домашней директории папку minio_forward_proxy

mkdir /home/minio_forward_proxy

2. Скачайте архив minio_forward_proxy.zip → загрузите файлы из распакованного архива с помощью WinSCP или другим способом в папку /home/minio_forward_proxy

При копировании из ОС Windows файла .env, всегда обращайте внимание на его наименование. Название файла должно начинаться с точки.

Обратите внимание, что в WinSCP файл с наименованием точки перед расширением отображаться перестанет.

3. Для отображения скрытых файлов в WinSCP перейдите в меню Options → выберите Preferences → перейдите в раздел Panels → установите флажок Show hidden files (Ctrl + Alt + H) → кликните OK.

4. Файл .env отобразится в списке.

5. Настройте конфигурационные файлы:

5.1. Файл /home/minio_forward_proxy/consul/minio-forward-proxy.yml

  • application.port: 5678 - порт микросервиса, который будет слушать обращение на запрос изображения из сервера MinIO с нужными параметрами (в данном случае, это обращение от Retail или Centrum). Но это именно порт, с которым будет запущен микросервис в контейнере.
  • minio.max.connections: 10000 - это одновременно возможные коннекты к микросервису. В данном примере к микросервису могут одновременно обращаться 10000 серверов SetRetail.

5.2. Файл /home/minio_forward_proxy/.env

  • CONSUL_HOST=http://172.29.16.179 - IP-адрес (который будет доступен всем участникам сети) хоста, на котором разворачивается микросервис. Указывается строго в формате http://XXX.XXX.XXX.XXX.
  • CONSUL_PORT=9889 - любой доступный порт для микросервиса consul.
  • HEALTH_CHECK_PORT=5489 - любой доступный порт. По этому порту можно узнать состояние микросервиса minio_forward_proxy. Например, http://172.29.16.179:5489/health, в ответ получим OK, если микросервис запущен.
  • IMAGE_TAG=minio-forward-proxy:1.0.0 - версия образа микросервиса. Меняться будет только цифровая часть - 1.0.0

5.3. Файл /home/minio_forward_proxy/docker-compose.yaml

Настраивается проброс портов наружу, то есть чтобы с локального хоста были доступны внутренние порты в контейнере.

  • ports:

            5678:5678 - порт на локальном хосте : порт внутри контейнера

Порт внутри контейнера должен совпадать с портом, указанным в параметре application.port в файле /home/minio_forward_proxy/consul/minio-forward-proxy.yml

6. Перейдите в папку /home/minio_forward_proxy

cd /home/minio_forward_proxy

7. Выполните команду для выдачи необходимых разрешений:

chmod +x *

8. Выполните команду:

./start_minio_forward_proxy.sh

Дождитесь окончания установки.

9. Проверьте работу MinIO и микросервиса → в адресную строку браузера введите выражение:

http://{service_ip}:{service_port}/{bucket_name}?minio-url={minio_ip}%3A{minio_port}&minio-auth=Basic%20{auth_base64}%3D
  • service_ip - IP-адрес хоста, где развернут микросервис.
  • service_port - порт, который слушает микросервис на хосте.
  • bucket_name - название корзины на сервере MinIO.
  • minio_ip - IP-адрес сервера MinIO.
  • minio_port - порт, на котором запущен сервер MinIO.
  • auth_base64 - аутентификация на сервере MinIO в кодировке base64. bWluaW9hZG1pbjptaW5pb2FkbWlu это minioadmin:minioadmin

Пример адреса:

http://192.168.56.143:5678/images?minio-url=192.168.56.143%3A9001&minio-auth=Basic%20bWluaW9hZG1pbjptaW5pb2FkbWlu%3D

В итоге будет выдан список всех файлов, которые есть в корзине {bucket_name}.

Автозапуск микросервиса

1. Скопируйте файл df.sh в папку /home/minio_forward_proxy

2. Откройте на редактирование файл /etc/rc.d/rc.local.

3. Добавьте команду sh /home/minio_forward_proxy/df.sh для выполнения скрипта, а также сделайте пустую строку после неё клавишей ENTER.

4. В командной строке выполните команды:

chmod +x /home/minio_forward_proxy/df.sh
chmod +x /etc/rc.d/rc.local
systemctl enable rc-local

5. Перезагрузите сервер полностью. Проверьте работу сервиса через веб-браузер.

sudo reboot

Настройка папки для загрузки контента в сервисе MinIO

1. Введите логин и пароль → нажмите .

  • Access Key: minioadmin
  • Secret Key: minioadmin

2. Кликните .

3. Кликните Create bucket .

4. Введите название корзины (bucket), например: images → нажмите Enter.

5. Кликните .

6. Кликните Upload file .

7. Выберите медиа-файлы изображений и подтвердите их загрузку в сервис minio.

8. Файлы будут загружены на сервер.

Установка Rclone на кассе

Начиная с версии 10.2.93.0 полностью копировать пакет rclone не требуется.

На кассе в командной строке выполните только команду для установки:  tce-load -i rclone.tcz

SRTE-3053 - Получение подробных данных проблемы… СТАТУС

1. С помощью SetConsole и WinSCP или другого средства распространения файлов на кассы скопируйте следующие файлы в папку /mnt/sda1/tce/optional.

В некоторых системных блоках, наименование диска может отличаться и быть: hda.

2. Откройте на редактирование файл в Midnight Commnder /mnt/sda1/tce/onboot.lst.

Этот шаг не нужно выполнять, начиная с версии 10.3.8.0

SRTE-3931 - Получение подробных данных проблемы… СТАТУС

SRTB-5672 - Получение подробных данных проблемы… СТАТУС

3. Добавьте следующие строки:

Этот шаг не нужно выполнять, начиная с версии 10.3.8.0

SRTE-3931 - Получение подробных данных проблемы… СТАТУС

SRTB-5672 - Получение подробных данных проблемы… СТАТУС

rclone.tcz
bash.tcz

4. В командной строке выполните команды:

Этот шаг не нужно выполнять, начиная с версии 10.3.8.0

SRTE-3931 - Получение подробных данных проблемы… СТАТУС

SRTB-5672 - Получение подробных данных проблемы… СТАТУС

tce-load -i bash
tce-load -i rclone
cash save

Настройка SetRetail/SetCentrum

1. Кликните Интеграция → Внешние процессинги → кликните кнопку добавления процессинга .

2. Наберите в строке поиска Set Sync → кликните Set Sync → установите флажок для включения процессинга Set Sync → кликните .

3. В списке внешних процессингов кликните  на строке с процессингом Set Sync.

5. Установите необходимые настройки → нажмите .

  • После выхода из настроек они автоматически отправляются на кассы и начинается синхронизация контента.
  • Перезагружать кассовые модули или службу сервера не требуется.
  • Установите флажок  Включить.

Начиная с версии 10.3.10.0 настройки адресации разнесены по отдельным вкладкам для удобства настройки. 

SRTE-3974 - Получение подробных данных проблемы… СТАТУС

CR-7167 - Получение подробных данных проблемы… СТАТУС

10.3.10.0

Вкладка POS

  • Начиная с версии 10.3.14.0 загрузка поддерживается только из разных корзин сервиса и только по пути, указанному в настройке "Путь синхронизации медиа-контента для товарных плиток POS-кассы" на вкладках POS, TOUCH, CSI-K!
  • До версии 10.3.14.0 загрузка поддерживается только из одной созданной корзины сервиса и только по пути, указанному в настройке "Путь синхронизации медиа-контента для товарных плиток POS-кассы" на вкладке POS!
  • Пути загрузки указываются только в указанном формате.
  • Никакие другие форматы путей для загрузки контента на кассы не применяются.
  • Указанные адреса также могут быть использованы для касс с установленной ОС Ubuntu.

SRTB-5859 - Получение подробных данных проблемы… СТАТУС

CR-7224 - Получение подробных данных проблемы… СТАТУС

Название настройкиОписаниеПример значения
Путь синхронизации медиа-контента для товарных плиток POS-кассыПуть загрузки изображений для отображения в плитках товарных групп, а также для загрузки изображений в карточку товара/home/tc/storage/crystal-cash/images
Путь синхронизации медиа-контента для второго монитора покупателяПуть загрузки изображений и видео для отображения на втором LCD-мониторе покупателя./home/tc/storage/crystal-cash/modules/advertising/templates/content/default
Наименование корзиныНаименование корзины (bucket), которая создана в сервисе.images

Вкладка TOUCH

Название настройкиОписаниеПример значения
Путь синхронизации медиа-контента для товарных плиток Touch-кассы

Путь для загрузки изображений для отображения в плитках товарных групп SetTouch, а также в шаблоне пик-листа с типом устройства TOUCH

/home/tc/storage/crystal-cash/web/img/tile
Путь синхронизации медиа-контента для экрана покупателя Touch-кассыПуть для загрузки изображений для отображения на втором экране SetTouch/home/tc/storage/crystal-cash/web/assets/clients/CSI/customerDisplay/slides
Путь синхронизации с видео для экрана покупателя Touch-кассыПуть для загрузки видео для отображения на втором экране SetTouch/home/tc/storage/crystal-cash/web/assets/clients/CSI/customerDisplay/video
Наименование корзиныНаименование корзины (bucket), которая создана в сервисе.Buyer_images

Вкладка CSI-K

Название настройкиОписаниеПример значения
Путь синхронизации медиа-контента для товарных плиток CSI-K

Путь для загрузки изображений для отображения в плитках товарных групп CSI-K, а также в шаблоне пик-листа с типом устройства CSI-K

/home/tc/storage/crystal-cash/images/picklist
Наименование корзиныНаименование корзины (bucket), которая создана в сервисе.images

Вкладка НАСТРОЙКИ

Название настройкиОписаниеПример значения
Адрес Minio

Адрес сервиса minio в формате http://XXX.XXX.XXX.XXX:ПОРТ

http://172.29.16.179:9001
Access Key Ключ Секретный доступа к MinioЛогин доступа к сервису miniominioadmin
Secret Key Секретный ключ доступа к MinioПароль доступа к сервису miniominioadmin
Интервал синхронизации в минутахПериодичность загрузки медиаконтента на кассы1

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

Загруженный контент для отображения на втором LCD-мониторе покупателя:

Загруженный контент для отображения в плитках товарных групп:

Отображение контента в пик-листах и карточке товара

SRTE-3893 - Получение подробных данных проблемы… СТАТУС

CR-6997 - Получение подробных данных проблемы… СТАТУС

10.3.8.0

Начиная с версии 10.3.8.0. добавлена возможность отображения загруженных изображений товаров в шаблонах пик-листов на сервере SetRetail и SetCentrum, а также в карточке товара.

При наличии файла изображения в удаленном хранилище изображение загружается сразу после подтверждения добавления товара в плитку. Сохранение шаблона не требуется.

Настройка

Функциональность работает только при установленном микросервисе minio-forward-proxy/v1.0.0.

Инструкция по установке микросервиса находится в начале этой статьи в главе Микросервис minio-forward-proxy

1. Выполните скрипт по базе данных set сервера, установив в параметре property_value IP-адрес микросервиса в формате ХХХ.ХХХ.ХХХ.ХХХ:ПОРТ:

UPDATE
        sales_management_properties
SET     property_value = '192.168.56.143:5678',
		transport_level = 20,
		priority = 2,
		send_status = 0
WHERE  
        property_key   = 'minio.forward.proxy.url'
        AND module_name = 'SET_ESB';

2. Перезапустите службу сервера:

service JBOSS_SVC restart

Технические требования

  • Название файла должно соответствовать артикулу товара.
  • Доступные форматы изображений (регистр учитывается):
    • png
    • jpg
      • SRTE-3969 - Получение подробных данных проблемы… СТАТУС
      • 10.3.9.0
    • jpeg
      • SRTE-3969 - Получение подробных данных проблемы… СТАТУС
      • 10.3.9.0
  • Максимальный размер загружаемого файла: 5 МБ.

Приоритетность показа изображений

При загрузке в MinIO изображений с одинаковым наименованием (артикулом), но с разным расширением, они будут показываться в следующем порядке:

  1. png (если отсутствует, используется jpg).

  2. jpg (если отсутствует, используется jpeg).

  3. jpeg (последний приоритет).

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

В удаленном хранилище MinIO загружены файлы изображений для товаров:

Показ изображений в шаблоне пик-листа

Показ изображений в карточке товара

© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..

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