Начиная с версии 4.6.229 реализована возможность проверки доступности нескольких удаленных серверов онлайн-карт.
В кассовом ПО Artix реализована возможность получения информации о картах и клиентах через сервис работы с онлайн-картами, чтобы исключить необходимость прогрузки больших справочников карт и клиентов на кассу.
Конфигурирование сервиса
Использование сервиса работы с онлайн-картами задается параметром enable
в файле конфигурации /linuxcash/cash/conf/ncash.ini.d/artixbonus.ini
:
- при значении
true
получение данных о картах и клиентах осуществляется через сервис работы с онлайн-картами, - при значении
false
информация о клиенте будет получена из БД кассы, а информация по карте с бонусного сервера.
Получение данных возможно по номеру карты и по номеру телефона.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
enable | логический |
| Включить получение карт и клиентов через сервис работы с онлайн-картами | По умолчанию false |
url | строковый | Список адресов удаленного сервера | По умолчанию Для работы с КС используются url вида " Адреса удаленного сервера в списке необходимо указать через запятую | |
user | строковый | Имя пользователя для доступа к сервису работы с онлайн-картами | | |
password | строковый | Пароль для доступа к сервису работы с онлайн-картами | | |
timeout | целочисленный | Таймаут обращения к серверу | По умолчанию 5 секунд |
[ArtixBonus.OnlineCards] ; Настройки для получения карт через сервис работы с онлайн-картами для карт Артикс Бонус и дисконтных карт ; Включить получение карт через сервис работы с онлайн-картами ; по умолчанию false ;enable = false ... ; Список адресов удаленного сервера ;url = "http://192.169.0.1:8096/v1/cards, http://192.169.0.2:8096/v1/cards, http://192.169.0.3:2555/v1/cards" ; Имя пользователя для доступа к сервису работы с онлайн-картами ;user = user ; Пароль для доступа к сервису работы с онлайн-картами ;password = password ; Таймаут обращения к серверу ; По умолчанию 5 секунд ;timeout = 5
В кассовом ПО Artix реализована возможность задавать интервал проверки доступности списка серверов онлайн-карт в секундах, регулируется настройкой pingInterval
в секции [ArtixBonus.OnlineCards]
конфигурационного файла /linuxcash/cash/conf/ncash.ini.d/artixbonus.ini
.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
pingInterval | целочисленный | Интервал проверки доступности списка серверов онлайн-карт в секундах | По умолчанию выключено ( Для проверки доступности серверов необходимо задать значение параметра |
[ArtixBonus.OnlineCards] ... ; Интервал проверки доступности списка серверов онлайн-карт в секундах ; По умолчанию выключено (-1) ;pingInterval = -1
В кассовом ПО Artix реализована возможность задавать количество потоков процессора, используемых для проверки доступности серверов, регулируется настройкой maxThreadCount
в секции [ArtixBonus.OnlineCards]
конфигурационного файла /linuxcash/cash/conf/ncash.ini.d/artixbonus.ini
:
- при значении
1
будет последовательно выполнена проверка доступности для каждого из серверов в спискеurl
, при значении >
1
проверка доступности серверов будет выполнена в отдельных потоках.
Приоритет выбора серверов для проверки определяется на основе порядка сервера в списке. Если по истечении таймаута обращения к серверу (параметр timeout
) соединение не было установлено, то для проверки будет выбран следующий сервер.
Кассовое ПО будет отправлять запросы на тот сервер, с которым удалось установить соединение.
При увеличении количества потоков процессора, используемых для проверки доступности серверов, возрастает как скорость проверки, так и нагрузка на процессор.
Наименование | Тип данных | Описание | Примечания |
---|---|---|---|
maxThreadCount | целочисленный | Количество потоков процессора, используемых для проверки доступности серверов | По умолчанию Работает в сочетании с параметром |
[ArtixBonus.OnlineCards] ... ; Количество потоков процессора, используемых для проверки доступности серверов ; По умолчанию 1 ;maxThreadCount = 1
Для просмотра информации о карте по номеру телефона необходимо для команды COMMAND_CARDINFO
настроить следующие параметры:
cardNumberType = 1
(способ ввода карты),cardMode = 1
(тип карты "Артикс Бонус").
Подробнее о настройке действий и команд можно прочитать в разделе "Настройка действий".
При добавлении карты в чек отправляется последовательный запрос сервису работы с онлайн-картами (получение данных о картах и клиентах) и бонусному серверу (получение баланса и статуса карты):
- Если связь с сервисом работы с онлайн-картами и бонусным сервером есть, то карта добавляется в чек с информацией о клиенте и указанием бонусного баланса, доступны все операции по карте.
- Если связь с сервисом работы с онлайн-картами есть, а с бонусным сервером связь отсутствует, то при добавлении карты на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов”. Карта добавляется в чек с информацией о клиенте, но без указания бонусного баланса, списание баллов невозможно.
- Если связь с сервисом работы с онлайн-картами отсутствует, для группы карт включена настройка “Блокировать добавление при отсутствии в БД”, и:
- карта есть в БД кассы, то при наличии связи с бонусным сервером карта добавляется в чек, все операции по карте доступны. Если связь с сервером отсутствует, то на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов.”. Карта добавляется в чек без указания бонусного баланса, списание баллов невозможно,
- карта отсутствует в БД кассы, то она не добавляется в чек, а на экран будет выведена ошибка “Карта ‘№ карты’ не найдена”.
- Если связь с сервисом работы с онлайн-картами отсутствует, для группы карт отключена настройка “Блокировать добавление при отсутствии в БД”, и:
- карта есть в БД кассы, то при наличии связи с бонусным сервером карта добавляется в чек, все операции по карте доступны. Если связь с сервером отсутствует, то на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов.”. Карта добавляется в чек без указания бонусного баланса, списание баллов невозможно,
- карта отсутствует в БД кассы, то карта добавляется в чек как анонимная. При наличии связи с бонусным сервером все операции по карте доступны. Если связь с сервером отсутствует, то на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов.”. Карта добавляется в чек без указания бонусного баланса, списание баллов невозможно.
Выбор скидки вручную при отсутствии связи с сервером онлайн-карт
Функционал доступен только при включенной настройке pingInterval
.
При отсутствии связи с сервером онлайн-карт клиенту может быть назначена специальная скидка-компенсация, которая выбирается кассиром вручную. Для скидки необходимо в утилите администрирования Yuki задать условие
check["serveravailable"] == 0
. Если во время формирования чека сервер онлайн-карт вновь станет доступен, то скидка, выбранная кассиром, перестанет действовать.
Подробнее о назначении скидки вручную можно прочитать в разделе "Выбор скидки кассиром (ручная скидка)". Подробнее о написании условий для скидок можно прочитать в разделе "Написание условий вручную".
Получение групп сегментов в ответе от сервера онлайн-карт
Функционал доступен только при включенной настройке enable
.
При получении данных через сервис онлайн-карт в ответе от сервера на кассу могут быть переданы названия групп сегментов. Они задаются на сервере сегментов.
{ "cardgroup": { "bonususecase": 0, "cardmode": 1, "discounttype": 0, "discountvalue": 0, "idcardgroup": 3, ... }, "cardstatus": 0, "client": { ... "phonenumber": "79153223747", "segments": { "mf": "Средние", "rf": "В риске", "rfm": "В риске", "rm": "В риске" }, ... }, "idcard": "289a0f9e-dec1-4f5f-b12c-7220fe92b28c", "number": "4000000001901470" }
Эти значения можно использовать при написании условий в утилите администрирования Yuki для применения скидочных действий в зависимости от группы сегментов. Например:
card['card']['client']['segments']['mf'] == u'Средние'
,card['card']['client']['segments']['rf'] == u'В риске'
,card['card']['client']['segments']['rfm'] == u'В риске'
,card['card']['client']['segments']['rm'] == u'В риске'
.
Названия групп сегментов указываются в нижнем регистре.
Подробнее о написании условий для скидок можно прочитать в разделе "Написание условий вручную".
Условия для применения скидочных действий в зависимости от группы сегментов также может быть сгенерировано автоматически. Для этого необходимо:
- Добавить акцию на основе шаблона с сегментами в системе Artix Loyalty Management. Подробнее об этом можно прочитать в разделе "Скидки".
- Загрузить справочник с акцией на кассу с помощью Artix Control Center. Подробнее об этом можно прочитать в разделе "Загрузка справочников из КС на кассу".
После загрузки на кассу условие будет сгенерировано автоматически. При просмотре через утилиту администрирования Yuki оно будет иметь вид:
card.get('card', {}).get('client', {}).get('segments', {}).get('rf') in (u'Уходящие')