Публичное пространство
Установка и запуск станции консультанта
Внимание!
Если до обновления кассового и серверного ПО до 10.5.1.0 была настроена работа КСО SetSCO v.3 с СК, тогда после обновления требуется заново включить функциональность, как описано в главе Первичная настройка СК после обновления 10.5.1.0.
Для КСО SetSCO v.2 повторного включения не требуется, так как процесс настройки не изменился.
https://crystals.atlassian.net/browse/CR-11342
1.0.0
https://crystals.atlassian.net/browse/SCOD-2541
https://crystals.atlassian.net/browse/CR-15057
1.9.0
https://crystals.atlassian.net/browse/SCOC-2810
https://crystals.atlassian.net/browse/CR-15065
10.5.1.0 КСО 1.2.0 backend СК 1.13.0 frontend СК
- 1 Требования
- 2 Список необходимых портов
- 3 Установка
- 3.1 Установка докера
- 3.1.1 Требования
- 3.1.2 Процесс установки
- 3.2 Подготовка
- 3.3 Корректировка docker-compose
- 3.4 Изменение настроек с версии 10.5.1.0
- 3.5 Заполнение базы данных (альтернативный способ до 10.5.1.0)
- 3.5.1.1 Пример скрипта для магазина
- 3.5.1.2 Пример скрипта для зоны (острова) самообслуживания
- 3.5.1.3 Пример скрипта для кассы самообслуживания (в магазине есть разделение на острова самообслуживания)
- 3.5.1.4 Пример скрипта для кассы самообслуживания (в магазине НЕТ разделения на острова самообслуживания)
- 3.5.1.5 Описание полей для заполнения в базе данных
- 3.5.2 Работа с островами (зонами) самообслуживания
- 3.5.2.1 Ограничения
- 3.6 Запуск контейнера
- 3.1 Установка докера
- 4 Подключение к станции консультанта
- 5 Обновление станции консультанта
- 6 Получение информации о контейнерах
Требования
Требования к серверу для установки станции консультанта
Данные требования к серверу подходят для стабильной работы станции консультанта с количеством касс до 15000.
ОС сервера: любая ОС, поддерживающая установку docker (список ОС на официальном сайте docker);
Процессор CPU: 4 ядра;
Оперативная память RAM: 6 ГБ;
Место на жёстком диске HDD: 50 ГБ;
Установленный docker, docker-compose последней версии;
Ip-адрес сервера, на который будет установлена станция консультанта (будет использоваться позднее для подключения к визуализации в браузере);
С сервера должен быть доступен artifactory.setmachine.ru:5003, так как с него происходит установка docker-контейнеров для работы станции консультанта.
Требования к устройству для работы станции консультанта
Обратите внимание!
Перед подключением к станции консультанта убедитесь, что ip-адреса касс и сервера станции консультанта находятся в одной зоне сетевых адресов: либо все локальные (приватные/частные), либо все публичные. Это поможет избежать кросс-запросов, которые запрещены политикой CORS некоторых браузеров, например браузером Chrome или Chromium.
Список локальных (частных) адресов:
10.0.0.0 — 10.255.255.255(маска подсети для бесклассовой (CIDR) адресации:255.0.0.0или /8);100.64.0.0 — 100.127.255.255(маска подсети255.192.0.0или /10). Данная подсеть рекомендована согласно RFC 6598 для использования в качестве адресов для CGN (Carrier-Grade NAT);172.16.0.0 — 172.31.255.255(маска подсети:255.240.0.0или /12);192.168.0.0 — 192.168.255.255(маска подсети:255.255.0.0или /16).
Устройство: сенсорный моноблок, ПК, планшет, мобильное устройство;
Операционная система: Windows, Ubuntu, Android, iOS;
Процессор: от J1900 2 Ghz (или аналогичный) и выше;
Рекомендуемая диагональ экрана - не менее 15";
Браузер для подключения к визуализации: подходит любой доступный браузер.
Требования к КСО
https://crystals.atlassian.net/browse/CR-11554
10.4.12.0
для корректной работы функциональности станции консультанта версия ПО кассы самообслуживания должна быть не меньше 10.4.7.0;
ранее работа со станцией консультанта была доступна только для КСО на базе ПО SetRetail SCO v.2, но с версии 10.4.12.0 к станции консультанта могут быть подключены кассы самообслуживания SetRetail SCO v.3.
Список необходимых портов
№ | № порта | Тип | Назначение |
|---|---|---|---|
1 | 5436 | TCP | PostgreSQL |
2 | 8080, 8081 | TCP | Станция консультанта, базовый порт по умолчанию. |
Установка
Установка докера
Требования
сервер на ОС Линукс;
установка Docker CE может производиться на любые сборки ОС Linux: CentOS, Fedora, Ubuntu и т. д.;
если установка производится на чистый образ, учитывайте конфигурации антивирусных программ и политики безопасности вашей сети.
Если вы используете сборку CentOS или любого другого ядра Линукс, тогда убедитесь, что у вас присутствует Midnight Commander для обновления версии станции консультанта:
Установить Midnight Commander на CentOS
yum install mcУстановить Midnight Commander на Ubuntu
sudo apt install mcПроцесс установки
По ссылке доступны инструкции по установке докера на все подходящие сборки ОС Linux. Обратите внимание, данные инструкции поставляются разработчиком Docker CE и регулярно обновляются.
Ниже приведен пример установки Docker CE. Данная инструкция выполнена на образе Fedora Server 40 и полностью подходит для установки на нем. Как указано выше, установка Docker CE может производиться на любые сборки ОС Linux: CentOS, Fedora, Ubuntu и т. д.
1. Установите пакет плагинов DNF с помощью команды ниже → после успешной установки отобразится сообщение Выполнено!
dnf -y install dnf-plugins-core2. Добавьте репозиторий докера.
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo3. Запустите установку докера командой ниже → после установки первых 14 пакетов отобразится сообщение Продолжить? (д/Н): → выберите д.
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin4. После установки следующего комплекта пакетов снова отобразится сообщение Продолжить? (д/Н): → выберите д.
По окончании установки отобразится сообщение Выполнено!
5. Добавьте докер в автозагрузку.
systemctl enable --now docker6. Запустите службу Docker CE.
Внимание!
Перед запуском проведите настройку сети докера.
По умолчанию сеть докера - 172.17.0.0/16. Если клиентом используется та же сеть, тогда возможно пересечение сетевых адресов и потеря доступа станции консультанта к кассам.
Для изменения сети докера выполните команду ниже, где 172.17.255.0/24 - новый сетевой диапазон для докера.
echo '{"default-address-pools":[{"base":"172.17.255.0/24","size":24}]}' | sudo tee /etc/docker/daemon.jsonsystemctl start dockerПодготовка
1. Cоздайте рабочую папку с помощью команды (в команде указана рекомендованная папка):
mkdir ${HOME}/sco2. Скачайте файлы проекта → распакуйте архив → у вас получится следующий состав файлов.
3. Загрузите скачанные файлы в папку ${HOME}/sco.
В первом шаге была создана папка с названием ${HOME}/sco. Переменная ${HOME} позволяет любому авторизованному пользователю получить доступ к кассе.
Если авторизация произошла под пользователем root, тогда название рабочей папки отображается как /root/sco. Но если авторизация произошла под любым другим пользователем с соответствующими правами, тогда название рабочей папки отображается как /home/имя_пользователя/sco, например, /home/attendant/sco.
Обратите внимание, файл .env обязательно должен иметь точку в начале названия!
Если точка отсутствует в названии скаченного файла, тогда поставьте ее вручную. Иначе докер не сможет получить доступ к файлу с данными пользователя.
4. Для авторизации в репозитории выполните команду ниже → введите имя пользователя и пароль → после успешной авторизации отобразится текст Login Succeeded.
Входные данные для авторизации в репозитории станции консультанта:
имя пользователя (username): scoattendant-customers
пароль (password): i9)g_2t&01E$
docker login artifactory.setmachine.ru:5003Корректировка docker-compose
Откройте файл ${HOME}/sco/docker-compose.yml → удалите первую строчку version, если версия установленного докера отличается от заданной в файле.
При запуске контейнеров версия будет проставлена автоматически.
Изменение настроек с версии 10.5.1.0
Внимание! С версии кассового/серверного ПО 10.5.1.0 (версия СК 1.2.0 backend, 1.13.1 frontend) изменен процесс подключения и первичной настройки станции консультанта.
Если вы выполняете первичную настройку СК для КСО версии 10.5.1.0 и позже, тогда после загрузки проектных файлов и корректировки docker-compose (если необходимо), сначала перейдите к запуску контейнеров – Установка и запуск станции консультанта.
После запуска контейнеров будет доступна веб-страница Редактор топологии для заполнения информации о магазине. Выполните дальнейшую настройку, как указано в статье https://crystals.atlassian.net/wiki/x/EwDyggE.
Заполнение базы данных (альтернативный способ до 10.5.1.0)
Если вы выполняете первичную настройку СК для КСО более ранних версий (10.5.0.0 и раньше), тогда воспользуйтесь этим методом автоматического заполнения информации о магазине из файла ${HOME}/sco/fill_db.sql.
Откройте файл ${HOME}/sco/fill_db.sql (этот файл используется для заполнения базы данных докера) → раскомментируйте скрипты.
Внесите в файл информацию о магазинах, островах/зонах самообслуживания (если есть) и кассах самообслуживания, к которым станция консультанта должна иметь доступ, в следующем виде:
Заполните файл согласно информации на сервере SetCentrum/SetRetail10.
Пример скрипта для магазина
INSERT INTO shop ("number", "name", address, twentyfourhour, virtual, city_name, region_name, format_name, city_id, region_id, format_id, time_zone)
VALUES (6456,'SHOP','CSI HOUSE',true,true,'SPB','NW','Supermarket',1,1,1, '+03:00'),
(8152,'SHOP','CSI HOUSE',true,true,'SPB','NW','Supermarket',1,1,1, '+03:00')
ON CONFLICT DO NOTHING;Пример скрипта для зоны (острова) самообслуживания
INSERT INTO public.zone ("id", "name", shop_number)
VALUES (1,'Выход в зоне бакалеи', 6456),
(2,'Выход в конце зала', 6456)
ON CONFLICT DO NOTHING;Пример скрипта для кассы самообслуживания (в магазине есть разделение на острова самообслуживания)
INSERT INTO public.cash ("number", shop_number, place_number, status, cash_type, cash_ip, "version", zone_id, centrum_id)
VALUES (1,6456,4,'ACTIVE','SCO','172.29.16.101:8070','10.4.7.0', 1, NULL),
(2,6456,4,'ACTIVE','SCO','172.29.16.102:8070','10.4.7.0', 2, NULL),
(3,6456,4,'ACTIVE','SCO_3','172.29.22.171:8070','10.4.12.0', 1, NULL),
(4,6456,4,'ACTIVE','SCO_3','172.29.17.158:8070','10.4.12.0', 2, NULL)
ON CONFLICT DO NOTHING;Пример скрипта для кассы самообслуживания (в магазине НЕТ разделения на острова самообслуживания)
INSERT INTO public.cash ("number", shop_number, place_number, status, cash_type, cash_ip, "version", zone_id, centrum_id)
VALUES (70,8152,5,'ACTIVE','SCO','172.29.12.227:8070','10.4.7.0', NULL, NULL)
ON CONFLICT DO NOTHING;Описание полей для заполнения в базе данных
Обязательные поля для заполнения отмечены в таблице зеленым цветом.
Поля для заполнения магазина | ||
|---|---|---|
Параметр | Значение | Пример |
"number" | номер магазина | 6456 |
"name" | название магазина | SHOP |
address | адрес магазина | 'CSI HOUSE' |
twentyfourhour | является ли магазин круглосуточным | true |
virtual | имеет ли магазин собственный сервер | true |
city_name | название города, в котором находится магазин | 'SPB' |
region_name | название региона, в котором находится магазин | 'NW' |
format_name | формат магазина (супермаркет, гипермаркет и т. д.) | 'Supermarket' |
city_id | идентификатор города | 1 |
region_id | идентификатор региона | 1 |
format_id | идентификатор формата | 1 |
time_zone | часовой пояс магазина | '+03:00' |
Поля для заполнения зоны (острова) | ||
"id" | идентификатор зоны (острова) самообслуживания | 1 |
"name" | названия острова зоны самообслуживания | 'Выход в зоне бакалеи' |
shop_number | номер магазина | 6456 |
Поля для заполнения кассы | ||
"number" | номер кассы | 4 |
shop_number | номер магазина | 6456 |
place_number | порядковый номер кассы для отображения | 4 |
status | статус кассы (ACTIVE, CLOSED, DOWN) | 'ACTIVE' |
cash_type | тип кассы (SCO, SCO_3) | 'SCO' |
cash_ip | ip-адрес кассы:8070 | '172.29.16.99:8070' |
"version" | версия кассы | '10.4.7.0' |
zone_id | идентификатор зоны (острова) магазина, может быть NULL | 1 Внимание! Номер зоны заполняется только в том случае, если в магазине есть острова самообслуживания и информация о них внесена в скрипт, как указано выше. Если в магазине нет разделения на острова, тогда введите значение NULL. |
centrum_id | идентификатор записи из SetCentrum10 | NULL |
Работа с островами (зонами) самообслуживания
Во многих крупных магазинах кассы самообслуживания поделены на отдельные зоны (острова) самообслуживания, с привязанными к ним КСО.
Если информация об островах самообслуживания должна быть отражена на станции консультанта, тогда внесите эти данные в файл ${HOME}/sco/fill_db.sql при заполнении базы данных.
Ограничения
Обратите внимание, для корректной работы функциональности деления касс на зоны (острова) самообслуживания, требуется создать минимум 2 зоны.
Если в информация о делении касс по островам заполнена, но есть кассы, не принадлежащие ни к одному острову, тогда такие кассы не будут отображаться на станции консультанта. Даже отдельным кассам необходимо присвоить свой остров самообслуживания.
Если в магазине нет ни одного острова самообслуживания или информация о них не занесена в базу данных, тогда все доступные кассы будут отображаться на станции консультанта, но будет отсутствовать возможность выбора острова самообслуживания.
Запуск контейнера
1. Перейдите в папку ${HOME}/sco.
cd ${HOME}/sco2. Запустите контейнеры командой ниже.
docker compose up -d3. Выполните команду ниже для проверки статуса запущенных контейнеров → работают все контейнеры кроме sco-attendant-fill_db-1.
docker ps -aПодключение к станции консультанта
Обратите внимание, после выполнения скрипта на кассе в базе данных catalog необходимо перезагрузить КСО для применения изменений.
При выполнения настройки на сервере в базе данных set перезагрузка не требуется.
Пример
При топологии SetCentrum → SetRetail10 → кассы к серверу SetCentrum подключены 10 магазинов, в каждом из которых 10 касс самообслуживания.
Если скрипт выполнен в базе данных сервера SetCentrum, тогда настройка будет спущена на все 100 касс самообслуживания → к станции консультанта будут подключены 100 КСО.
Если скрипт выполнен в базе данных сервера SetRetail10 (магазина), тогда настройка будет смущена на 10 касс самообслуживания, подключенных к этому серверу → к станции консультанта будут подключены 10 КСО,
1a. Выполните скрипт для подключения кассы/касс самообслуживания на базе SetRetail SCO v.2 к станции консультанта:
UPDATE sales_management_properties
SET property_value='true', send_status=0
WHERE module_name='SCO' and plugin_name='ATTENDANT_STATION' and property_key='enableWebServer';на КСО в базе данных
catalog в таблице
sales_management_properties для подключения одной конкретной кассы к станции консультанта;
ИЛИ
на сервере SetCentrum/SetRetail10 в базе данных
set в таблице
sales_management_properties для подключения всех касс, подключенных к серверу, к станции консультанта → подождите, пока настройка спустится на КСО.
1б. Выполните скрипт для подключения кассы/касс самообслуживания на базе SetRetail SCO v.3 к станции консультанта:
UPDATE sales_management_properties
SET property_value='true', send_status=0
WHERE module_name='SCO' and plugin_name='SCOv3' and property_key='ATTENDANT_STATION_ENABLED';на КСО в базе данных
catalog в таблице
sales_management_properties для подключения одной конкретной кассы к станции консультанта;
ИЛИ
на сервере SetCentrum/SetRetail10 в базе данных
set в таблице
sales_management_properties для подключения всех касс, подключенных к серверу, к станции консультанта → подождите, пока настройка спустится на КСО.
→ После выполнения скрипта в базе данных перезагрузите кассу самообслуживания SetRetail SCO v.3 дважды.
2. Подключитесь в браузере по адресу http://ip-адрес-сервера:8081/ (имеется в виду ip-адрес сервера, на котором установлена станция консультанта) → откроется стартовая страница станции консультанта → введите номер магазина → кликните Сохранить.
Обратите внимание, подключение к станции консультанта с мобильного телефона на данный момент невозможно.
Требования для устройства, на котором используется станция консультанта, подробно описаны в начале статьи в разделе Требования.
3. (данный шаг появляется только в случае заполнения информации о зонах/островах в базе данных) Кликните на требуемый остров → кликните Выбрать.
4. Введите пароль для входа → кликните Войти.
Пароль для входа на станцию консультанта совпадает с паролем консультанта для авторизации на КСО.
5. После входа откроется основной дэшборд со всеми доступными кассами.
Верстка интерфейса станции консультанта адаптивная, т. е. есть возможность менять масштаб визуализации в зависимости от количества карточек касс на экране.
Обновление станции консультанта
1. Подключитесь к серверу → выполните команду mc → откройте файл ${HOME}/sco/.env → поменяйте версии в файле на требуемые → нажмите F2 для сохранения изменений.
2. Выйдите из режима Midnight Commander → выполните команду ниже для перезапуска контейнеров.
cd ${HOME}/sco && docker compose up -dПолучение информации о контейнерах
Подключитесь к серверу по ssh → выполните команду для получения логов → отобразится информация о состоянии контейнеров.
cd ${HOME}/sco && docker compose logsТакже информация о контейнерах доступна в папке /${HOME}/sco/logs.