Начиная с версии 4.6.229 реализована возможность проверки доступности нескольких удаленных серверов онлайн-карт.

В кассовом ПО Artix реализована возможность получения информации о картах и клиентах через сервис работы с онлайн-картами, чтобы исключить необходимость прогрузки больших справочников карт и клиентов на кассу.

Конфигурирование сервиса

Использование сервиса работы с онлайн-картами задается параметром enable в файле конфигурации /linuxcash/cash/conf/ncash.ini.d/artixbonus.ini:

  • при значении true получение данных о картах и клиентах осуществляется через сервис работы с онлайн-картами,
  • при значении false информация о клиенте будет получена из БД кассы, а информация по карте с бонусного сервера.

Получение данных возможно по номеру карты и по номеру телефона.

Наименование
Тип данных
Возможные значения
Описание
Примечания
enableлогический
  • true
  • false

Включить получение карт и клиентов через сервис работы с онлайн-картами

По умолчанию false
urlстроковый

Список адресов удаленного сервера

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

Для работы с КС используются url вида "http://<host>:<port>/v1/cards"

Адреса удаленного сервера в списке необходимо указать через запятую

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целочисленныйИнтервал проверки доступности списка серверов онлайн-карт в секундах

По умолчанию выключено (-1).

Для проверки доступности серверов необходимо задать значение параметра pingInterval > 0


Пример настройки
[ArtixBonus.OnlineCards]
...
; Интервал проверки доступности списка серверов онлайн-карт в секундах
; По умолчанию выключено (-1)
;pingInterval = -1

В кассовом ПО Artix реализована возможность задавать количество потоков процессора, используемых для проверки доступности серверов, регулируется настройкой maxThreadCount в секции [ArtixBonus.OnlineCards] конфигурационного файла /linuxcash/cash/conf/ncash.ini.d/artixbonus.ini:

  • при значении 1 будет последовательно выполнена проверка доступности для каждого из серверов в списке url,
  • при значении > 1 проверка доступности серверов будет выполнена в отдельных потоках.

Приоритет выбора серверов для проверки определяется на основе порядка сервера в списке. Если по истечении таймаута обращения к серверу (параметр timeout) соединение не было установлено, то для проверки будет выбран следующий сервер.

Кассовое ПО будет отправлять запросы на тот сервер, с которым удалось установить соединение.

При увеличении количества потоков процессора, используемых для проверки доступности серверов, возрастает как скорость проверки, так и нагрузка на процессор.

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

По умолчанию 1.

Работает в сочетании с параметром pingInterval

Пример настройки
[ArtixBonus.OnlineCards]
... 
; Количество потоков процессора, используемых для проверки доступности серверов
; По умолчанию 1
;maxThreadCount = 1

Для просмотра информации о карте по номеру телефона необходимо для команды COMMAND_CARDINFO настроить следующие параметры:

  • cardNumberType = 1 (способ ввода карты),
  • cardMode = 1 (тип карты "Артикс Бонус").

Подробнее о настройке действий и команд можно прочитать в разделе "Настройка действий".  

При добавлении карты в чек отправляется последовательный запрос сервису работы с онлайн-картами (получение данных о картах и клиентах) и бонусному серверу (получение баланса и статуса карты):

  1. Если связь с сервисом работы с онлайн-картами и бонусным сервером есть, то карта добавляется в чек с информацией о клиенте и указанием бонусного баланса, доступны все операции по карте.
  2. Если связь с сервисом работы с онлайн-картами есть, а с бонусным сервером связь отсутствует, то при добавлении карты на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов”. Карта добавляется в чек с информацией о клиенте, но без указания бонусного баланса, списание баллов невозможно.
  3. Если связь с сервисом работы с онлайн-картами отсутствует, для группы карт включена настройка “Блокировать добавление при отсутствии в БД”, и:
    • карта есть в БД кассы, то при наличии связи с бонусным сервером карта добавляется в чек, все операции по карте доступны. Если связь с сервером отсутствует, то на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов.”. Карта добавляется в чек без указания бонусного баланса, списание баллов невозможно,
    • карта отсутствует в БД кассы, то она не добавляется в чек, а на экран будет выведена ошибка “Карта ‘№ карты’ не найдена”.
  4. Если связь с сервисом работы с онлайн-картами отсутствует, для группы карт отключена настройка “Блокировать добавление при отсутствии в БД”, и:
    • карта есть в БД кассы, то при наличии связи с бонусным сервером карта добавляется в чек, все операции по карте доступны. Если связь с сервером отсутствует, то на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов.”. Карта добавляется в чек без указания бонусного баланса, списание баллов невозможно,
    • карта отсутствует в БД кассы, то карта добавляется в чек как анонимная. При наличии связи с бонусным сервером все операции по карте доступны. Если связь с сервером отсутствует, то на экран будет выведено предупреждение “Нет связи с сервером. Доступно только начисление баллов.”. Карта добавляется в чек без указания бонусного баланса, списание баллов невозможно.

Выбор скидки вручную при отсутствии связи с сервером онлайн-карт

Функционал доступен только при включенной настройке 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'В риске'.

Названия групп сегментов указываются в нижнем регистре.

Подробнее о написании условий для скидок можно прочитать в разделе "Написание условий вручную". 

Условия для применения скидочных действий в зависимости от группы сегментов также может быть сгенерировано автоматически. Для этого необходимо:

  1. Добавить акцию на основе шаблона с сегментами в системе Artix Loyalty Management. Подробнее об этом можно прочитать в разделе "Скидки".
  2. Загрузить справочник с акцией на кассу с помощью Artix Control Center. Подробнее об этом можно прочитать в разделе "Загрузка справочников из КС на кассу".
  3. После загрузки на кассу условие будет сгенерировано автоматически. При просмотре через утилиту администрирования Yuki оно будет иметь вид:

    card.get('card', {}).get('client', {}).get('segments', {}).get('rf') in (u'Уходящие')
  • No labels