Реализованная интеграция с системой PriorityApi может не поддерживать определенные функции системы или иметь особенности их реализации. Следует уточнять полноту интеграции в соответствии с функциональными требованиями к системе лояльности.
В кассовом ПО Artix реализован модуль PriorityApi, который является универсальным интерфейсом для интеграции с системами лояльности, поддерживает применение дисконтных и бонусных воздействий.
При отсутствии связи с сервером отправка сообщений об операциях будет осуществляться через очередь Artix-Queue.
Конфигурирование модуля PriorityApi
Активация модуля PriorityApi определяется параметром priorityapi
, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/priorityapi.ini
в секции [plugins]
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
priorityapi | строковый |
| Активация модуля системы лояльности PriorityApi | По умолчанию off |
[plugins] ; Включение и выключение плагина PriorityApi ; по умолчанию off ;priorityapi=off
Настройка модуля PriorityApi производится в конфигурационном файле /linuxcash
/cash/conf/ncash.ini.d/priorityapi.ini
в секции [PriorityApi]
.
Модуль PriorityApi будет обрабатывать карты системы лояльности с типом cardMode
из настроек. PriorityApi не будет работать, если на кассе уже настроена система лояльности с типом, указанным в cardMode
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
cardMode | строковый | Тип карты из группы карт, использующий PriorityApi | По умолчанию 254 | |
host | строковый | Адрес сервера системы лояльности | По умолчанию http://localhost | |
port | целочисленный | Порт сервера системы лояльности | По умолчанию 80 | |
password | строковый | Пароль для доступа к серверу системы лояльности | ||
organization | строковый | Идентификатор организации | ||
businessUnit | строковый | Идентификатор магазина | ||
workPlace | строковый | Идентификатор рабочего места | ||
requestDiscountsWithoutCard | логический |
| Выполнять запрос к системе лояльности без карты | По умолчанию false |
checkCouponMask | строковый | Маска купона | По умолчанию любая последовательность символов ".*" | |
sendPayCheck | логический |
| Отправлять запрос с оплатами чека | По умолчанию false |
sendSourcePositionIndex | логический |
| Передавать номер исходной позиции в чеке возврата по чеку продажи | По умолчанию false |
useBonusBalance | логический |
| Использовать в качестве баланса карты поле bonusBalance | По умолчанию false |
useClientInfoRequest | логический |
| Использовать при добавлении карты метод получения информации о клиенте | По умолчанию При значении |
printCalculateSlips | логический |
| Печатать слипы из поля printingInformation для операции calculate | По умолчанию При значении |
[PriorityApi] ; Тип карты из группы карт, использующий PriorityApi ; По умолчанию 254 ;cardMode = 254 ; Адрес сервера ; По умолчанию http://localhost ;host = http://localhost ; Порт ; По умолчанию 80 ;port = 80 ; Пароль для доступа к серверу ; По умолчанию не задан ;password = "" ; Идентификатор организации ; По умолчанию не задан ;organization = "" ; Идентификатор магазина ; По умолчанию не задан ;businessUnit = "" ; Идентификатор рабочего места ; По умолчанию не задан ;workPlace = "" ; Выполнять запрос к системе лояльности без карты ; По умолчанию false ;requestDiscountsWithoutCard = false ; Маска купона ; По умолчанию любая последовательность символов ".*" ;checkCouponMask = ".*" ; Отправлять запрос с оплатами чека ; По умолчанию false ;sendPayCheck = false ; Передавать номер исходной позиции в чеке возврата по чеку продажи ; По умолчанию false ;sendSourcePositionIndex = false ; Использовать в качестве баланса карты поле bonusBalance ; По умолчанию false ;useBonusBalance = false ; Использовать при добавлении карты метод получения информации о клиенте ; По умолчанию false ;useClientInfoRequest = false ; Печатать слипы из поля printingInformation для операции calculate ; По умолчанию true ;printCalculateSlips = true
Бонусная программа PriorityApi
Для использования модуля PriorityApi необходимо:
- Активировать модуль PriorityApi (см.Конфигурирование модуля PriorityApi).
- Указать в параметре
cardMode
тип карты необходимой системы лояльности (см.Конфигурирование модуля PriorityApi). - Завести группу бонусных карт с типом карты, совпадающим со значением параметра
cardMode
. - Настроить подключение к серверу системы лояльности (см.Конфигурирование модуля PriorityApi).
- Перезапустить кассовую программу.
- Применить бонусную карту в чеке.
Добавление карты по номеру телефона
При использовании модуля PriorityApi возможно добавление карты по номеру телефона. Для этого необходимо:
- Включить способ ввода "Удаленно" для группы карт (БД
Dictionaries
таблицаCardgroup
полеinputmask = 16
). Для группы карт указать:
маску допустимых номеров карт:
^\+7([0-9]{10})|^7([0-9]{10})|^8([0-9]{10})|(^9[0-9]{9})
правило преобразования:
+7\1\2\3\4
- тип карты, соответствующий значению параметра модуля
cardMode
.
- Для правила поиска карт установить значение "По номеру карты".
- Настроить клавишу "Добавить карту" с командой
COMMAND_CARD
и параметрами:cardNumberType
со значением 1;cardMode
со значением, соответствующем значению параметра модуля.
При использовании команды на экран будет выведен диалог для ввода номера телефона. После ввода номера телефона производится поиск карты на сервере системы лояльности. Если карта найдена, то она будет добавлена в чек.
Карта не может быть добавлена в чек, если:
- введенный номер телефона отсутствует на сервере системы лояльности;
- отсутствует связь с сервером.
Если при добавлении карты по номеру телефона клиент не найден, а на сервере системы лояльности предусмотрена регистрация клиента, то на экран будет выведен диалог:
Для создания аккаунта необходимо подтвердить операцию, введя код подтверждения, отправленный на номер телефона клиента. После успешной регистрации карта будет добавлена в чек.
Печать отчета с информацией о карте
При закрытии чека может быть напечатан отчет с информацией о баллах для покупателя. Отчет может содержать в себе следующую информацию:
- Баланс бонусов на начало чека.
- Сумма начисленных бонусов.
- Сумма списанных бонусов.
- Баланс бонусов на конец чека.
Для формирования отчета необходимо в файле cardinfo.xml
заменить стандартный шаблон квитанции с информацией о бонусах на следующий шаблон:
<?xml version="1.0" encoding="UTF-8"?> <report name = "cardinfo" type="document" cached="true" title="Квитанция по карте"> <select query="SELECT c.number, c.bonusbalance, c.clientitemid, d.time_beg FROM carditem c, document d WHERE c.documentid = $document.id$ and d.documentid = c.documentid and c.cardmode = 254 GROUP BY 1,2"> <text>Баланс бонусов на начало чека:</text><sbr/><var name="bonusbalance" align="right" numberformat=".2" maxwidth="all"/><br/> <text>Сумма начисленных бонусов:</text><sbr/><var name="cardRecord.pointsForEarn" align="right" numberformat=".2" maxwidth="all"/><br/> <select query="select @spendbonus := coalesce(sum(if(disctype = 5, discsum, 0)), 0) as spendbonus from discitem join goodsitem using(goodsitemid) where documentid = $document.id$"> <select query="select $bonusbalance$ + $cardRecord.pointsForEarn$ - $spendbonus$ as balanceend from discitem LIMIT 1"> <text>Сумма списанных бонусов:</text><sbr/><var name="spendbonus" align="right" numberformat=".2" maxwidth="all"/><br/> <text>Баланс бонусов на конец чека:</text><sbr/><var name="balanceend" align="right" numberformat=".2" maxwidth="all"/><br/> </select> <text maxwidth="all" fillsymbol="*"></text><br/> </select> </report>
В результате после печати чека будет напечатан отчет с соответствующей информацией.
Продажа
Для получения скидки, для начисления и списания баллов с бонусной карты необходимо добавить карту системы лояльности в чек.
Обращение к серверу для получения скидки выполняется автоматически при переходе в подытог:
- при наличии карты в чеке запрос скидок осуществляется всегда;
- при отсутствии карты в чеке запрос скидок осуществляется при включенной настройке
requestDiscountsWithoutCard
в конфигурационном файле/linuxcash/cash/conf/ncash.ini.d/priorityapi.ini
.
Полученные скидки автоматически применяются к чеку. Внутренние скидки суммируются со скидками системы лояльности.
Если от сервера системы лояльности получено более одной скидки, то для каждой скидки:
- Будет создана отдельная запись в БД
Documents
таблицеDiscitem
. - Идентификатор скидочного воздействия будет сохранен в поле
discsystem
.
Для получения суммы доступных баллов обращение к серверу выполняется при оплате баллами. Если в документе продажи присутствует карта системы лояльности, то перед оплатой чека на экран будет выведен диалог с предложением списания баллов.
Если на сервере системы лояльности настроена верификация карты по SMS, то при добавлении карты в чек или при оплате баллами на экран будет выведен диалог для ввода кода подтверждения.
При закрытии чека может быть напечатана информация для покупателя.
Слип, полученный от системы лояльности, который печатается после закрытия чека, сохраняется в упрощенном виде (текст без форматирования) в БД Documents
таблицу Document
поле rtext
.
Списание баллов
Списание баллов выполняется по инициативе кассира. Потраченные баллы фиксируются в кассовой программе как скидка на чек. Для списания можно использовать все доступные баллы.
Начисление баллов
Начисление баллов происходит на стороне сервера системы лояльности после закрытия чека.
Купоны
При использовании системы лояльности PriorityAPI предоставляется возможность получения скидки по купону. Скидка по купону может быть применена на позицию и на чек. В одном чеке продажи может быть применено несколько купонов на позицию и на чек.
Добавление купона в чек осуществляется несколькими способами:
- вручную с клавиатуры,
- сканированием штрих-кода,
- по кнопке "Добавить купон" с командой
COMMAND_COUPON_ADD
. О настройке действий подробнее можно прочитать в разделе "Настройка действий".
Для распознавания номера/штрих-кода купона на кассе должно быть задано правило разбора по штрих-коду, которое задается в конфигурационном файле /linuxcash/cash/conf/bcode.ini
.
880*=cccccccccccc 890*=cccccccccccc
В данном примере цифры "880" и "890" являются префиксами купонов, на что указывают символы "cccccccccccc".
Начиная с версии 4.6.237 в кассовом ПО Artix реализована возможность задавать номера купонов через маску. Маска для купонов задается в параметре checkCouponMask
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/priorityapi.ini
.
; Маска купона ; По умолчанию любая последовательность символов ".*" checkCouponMask = "11.*|22.*|33.*"
Префиксы, указанные в bcode.ini
должны соответствовать префиксам или маскам в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/priorityapi.ini
.
Если префиксы в конфигурационных файлах не совпадают, то кассовое ПО не распознает вводимый номер как купон PriorityApi.
bcode.ini
необходимо отключить настройку использования интерпретации штрих-кодов при добавлении купона по кнопке useBcodeParserForAddCouponByButton
.Скидка по купону применяется автоматически при переходе в подытог.
Возврат
В системе лояльности предусмотрена возможность возврата списанных ранее баллов.
Отправка чеков
При закрытии чека продажи информация о данном чеке будет отправлена на сервер системы лояльности.