Реализованная интеграция с системой PriorityApi может не поддерживать определенные функции системы или иметь особенности их реализации. Следует уточнять полноту интеграции в соответствии с функциональными требованиями к системе лояльности.

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

При отсутствии связи с сервером отправка сообщений об операциях будет осуществляться через очередь Artix-Queue.

Конфигурирование модуля PriorityApi

Активация модуля PriorityApi определяется параметром priorityapi, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/priorityapi.ini в секции [plugins].

Наименование
Тип данных
Возможные значения
Описание
Примечания

priorityapi

строковый
  • on
  • off
Активация модуля системы лояльности 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логический
  • true
  • false
Выполнять запрос к системе лояльности без картыПо умолчанию false
checkCouponMaskстроковый
Маска купонаПо умолчанию любая последовательность символов ".*" 
sendPayCheckлогический
  • true
  • false
Отправлять запрос с оплатами чекаПо умолчанию false
sendSourcePositionIndexлогический
  • true
  • false
Передавать номер исходной позиции в чеке возврата по чеку продажиПо умолчанию false
useBonusBalanceлогический
  • true
  • false
Использовать в качестве баланса карты поле bonusBalanceПо умолчанию false
useClientInfoRequestлогический
  • true
  • false
Использовать при добавлении карты метод получения информации о клиенте

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

При значении true при добавлении карты в чек с сервера будет запрашиваться информация о клиенте. Данная информация будет отображена в окне просмотра информации о карте в поле "Дополнительная информация"

printCalculateSlipsлогический
  • true
  • false
Печатать слипы из поля printingInformation для операции calculate

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

При значении false слипы распечатаны не будут

Пример настройки
[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 необходимо:

  1. Активировать модуль PriorityApi (см.Конфигурирование модуля PriorityApi).
  2. Указать в параметре cardMode тип карты необходимой системы лояльности (см.Конфигурирование модуля PriorityApi).
  3. Завести группу бонусных карт с типом карты, совпадающим со значением параметра cardMode.
  4. Настроить подключение к серверу системы лояльности (см.Конфигурирование модуля PriorityApi).
  5. Перезапустить кассовую программу.
  6. Применить бонусную карту в чеке.

Добавление карты по номеру телефона

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

  1. Включить способ ввода "Удаленно" для группы карт (БД Dictionaries таблица Cardgroup поле inputmask = 16).
  2. Для группы карт указать:

    • маску допустимых номеров карт:

      ^\+7([0-9]{10})|^7([0-9]{10})|^8([0-9]{10})|(^9[0-9]{9})
    • правило преобразования:

      +7\1\2\3\4
    • тип карты, соответствующий значению параметра модуля cardMode.
  3. Для правила поиска карт установить значение "По номеру карты".
  4. Настроить клавишу "Добавить карту" с командой 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.

Полученные скидки автоматически применяются к чеку. Внутренние скидки суммируются со скидками системы лояльности.

Если от сервера системы лояльности получено более одной скидки, то для каждой скидки:

  1. Будет создана отдельная запись в БД Documents таблице Discitem.
  2. Идентификатор скидочного воздействия будет сохранен в поле 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.

Скидка по купону применяется автоматически при переходе в подытог.

Возврат

В системе лояльности предусмотрена возможность возврата списанных ранее баллов.

Отправка чеков

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

  • No labels