Купон представляет собой документ (обычно на бумажном носителе), содержащий уникальный или неуникальный код (штрих-код), предоставляющий право на получение указанной в документе либо в условиях проводимого предложения скидки.

Неуникальные купоны

Шифрование номера купона

Система лояльности кассового ПО Artix позволяет проводить акции с выдачей и гашением купонов. Данные купона могут быть напечатаны на чеке в открытом виде (печать EAN13) или зашифрованы (печать QR). Формат купона (EAN13 или QR-код) задается в системе лояльности Loyalty Management при настройке купона.

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

Правило интерпретации задается в конфигурационном файле /linuxcash/cash/conf/bcode.ini.

777777*=XXXXXXS*

В данном примере цифры "777777" являются префиксом купона, на что указывают символы XXXXXX. Символ S показывает, что данные купона будут зашифрованы.

Префикс, указанный в bcode.ini, должен также быть прописан в параметре prefixForEncryptedCoupon в конфигурационном файле /linuxcash/cash/conf/ncash.ini в секции [Misc].

Если префиксы в конфигурационных файлах не совпадают, то кассовое ПО не распознает вводимый номер как купон.

Наименование
Тип данных
Описание
Примечания
prefixForEncryptedCouponчисловойПрефикс зашифрованного номера купона

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

Данный префикс используется только кассой.


[Misc]
...
;префикс зашифрованного номера купона
;prefixForEncryptedCoupon = 777777

Купоны в чеке

Для настройки и применения купонов в дисконтной системе Artix предназначены функции для работы с купонами.

Добавление купона в чек осуществляется несколькими способами:

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

При добавлении купона в чек проверяются:

  1. Срок действия купона.
    Если срок действия купона еще не наступил или уже истек, то на экран выводится соответствующее сообщение с указанием срока действия. Купон при этом в чек не добавляется.
  2. Акция, которой соответствует купон.
    Если в чек для гашения (применения скидки по купону) уже был добавлен другой купон, соответствующий той же акции, то купон в чек не добавляется.

Количество купонов в чеке продажи на выдачу не ограничено.

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

Для сторнирования одного или нескольких купонов из чека необходимо в утилите администрирования Yuki на клавишу настроить действие "Удаление купона" с командой COMMAND_COUPON_DELETE и параметром deleteAllCoupons:

При закрытии чека продажи данные о купоне, который был выдан или погашен в чеке, сохраняются в БД Documents в таблицу Couponitem в поле generatednumber (для неуникальных купонов совпадает с полем number):

Уникальные купоны

Начиная с версии 4.6.215 реализована возможность добавления в чек нескольких уникальных купонов, действующих в рамках одной акции.

Кассовое ПО Artix позволяет выдавать уникальные купоны и отслеживать их статус на сервере купонов.

Генерация уникальных купонов осуществляется в кассовой программе при помощи плагина onlineCoupon.

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

Уникальные купоны могут быть выданы как в чеке продажи, так и в чеке возврата/возврата по чеку продажи, задается в дисконтной акции с помощью параметра "Спецификаторы" в утилите администрирования Yuki или в купонной акции системы лояльности Artix Loyalty Management.

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

Для использования уникальных купонов на кассе необходимо активировать плагин параметром onlineCoupon в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/onlinecoupon.ini в секции [plugins].

Наименование
Тип данных
Возможные значения
Описание
Примечания
onlineCouponстроковый
  • on
  • off
Активация плагина работы с онлайн-купонамиПо умолчанию off


[plugins]
;Онлайн-купоны
;onlineCoupon = off

Настройка плагина онлайн-купонов выполняется в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/onlinecoupon.ini в секции [OnlineCoupon].

Наименование
Тип данных
Описание
Примечания
prefixстроковыйПрефикс онлайн-купона

Длина префикса определяется количеством печатаемых символов для определенного формата штрих-кода. Количество символов в штрих-коде определяется как n-9, непечатаемые символы не учитываются, например, контрольная сумма. Если в штрих-коде допустимы только цифры, то префикс может состоять только из цифр.

Например, для штрих-кода в формате EAN13 не более 3 цифр.

hostстроковыйАдрес сервера онлайн-купонов
portчисловойПорт подключения к серверу онлайн-купонов

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

timeoutчисловойТаймаут обращения к серверу онлайн-купоновПо умолчанию 5 секунд.
userстроковыйИмя пользователя для авторизации на бонусном сервере
passwordстроковыйПароль для авторизации на бонусном сервере
allowMultipleCouponsPerCampaignлогическийРазрешить добавление в чек нескольких купонов, выданных по одной акцииПо умолчанию false.


[OnlineCoupon]
; Настройка плагина онлайн купонов

; Префикс онлайн купона
; для штрих-кода в формате EAN13 не более 3 цифр
;prefix = 888

; Адрес сервера онлайн купонов
;host = localhost

; Порт
;port = 8080

; Таймаут запроса к серверу онлайн купонов
; значение по умолчанию 5
;timeout = 5

; Имя пользователя для авторизации на сервере
;user =

; Пароль для авторизации на сервере
;password =

; Разрешить добавление в чек нескольких купонов, выданных по одной акции
; значение по умолчанию false
;allowMultipleCouponsPerCampaign = false

Правило интерпретации задается в конфигурационном файле /linuxcash/cash/conf/bcode.ini.

888*=OOO*

В данном примере цифры "888" являются префиксом купона. Этот же префикс должен быть указан в параметре prefix в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/onlinecoupon.ini. Символ O показывает, что номер купона является уникальным. Если префиксы в конфигурационных файлах не совпадают, то кассовое ПО не распознает вводимый номер как купон.

Префикс может быть задан только один. При необходимости использования нескольких префиксов следует указать префикс для каждой акции в системе лояльности Loyalty Management. При добавлении купона префикс считывается из акции, если в акции префикс не задан, то из конфигурационного файла /linuxcash/cash/conf/ncash.ini.d/onlinecoupon.ini.

Работа с купонами

Генерация купонов

В кассовой программе при срабатывании купонной акции, заведенной в системе лояльности Loyalty Management, генерируется уникальный номер купона (префикс + сгенерированный уникальный идентификатор).

Размер номера купона зависит от типа штрих-кода:

Наименование

Тип данных

Описание

Примечания

QRчисловойРазмер генерируемого номера купона для штрих-кода типа QRПо умолчанию 9 символов
CODE128числовойРазмер генерируемого номера купона для штрих-кода типа CODE128По умолчанию 9 символов


[OnlineCoupon.Size]
; Настройка размера генерируемого номера купона в зависимости от типа штрих-кода
; Для EAN13 настройка недоступна

; Размер генерируемого номера купона для штрих-кода типа QR
; значение по умолчанию 9 символов
;QR = 9

; Размер генерируемого номера купона для штрих-кода типа CODE128
; значение по умолчанию 9 символов
;CODE128 = 9

При закрытии чека печатается купон со штрих-кодом, состоящим из префикса и сгенерированного уникального идентификатора, номер купона записывается в поле generatednumber в таблицу Couponitem БД Documents. В БД сервера купонов записывается информация о номере купона, полученном от системы лояльности и указанном в акции (поле number), и сроках его жизни. Купону будет присвоен статус выданного.

Печать купонов перед закрытием чека

Купоны могут быть напечатаны перед закрытием чека, данное поведение регулируется параметром printBeforeClose в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/artixcoupon.ini в секции [ArtixCoupon]:

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


[ArtixCoupon]
; Печать купонов перед закрытием чека
; По умолчанию false
;printBeforeClose = false

Гашение купонов

Для срабатывания скидки по купону необходимо добавить купон в чек:

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

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

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

По номеру купона определяется акция и применяется скидка в чеке.

При добавлении в чек нескольких купонов, соответствующих одной акции, срабатывает только первый. При закрытии чека на экран выводится список неиспользованных купонов, которые необходимо вернуть покупателю. Для купонов, которые не были использованы, в БД Documents в таблице Couponitem записывается status = 3.

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

Сторнирование купонов

Для сторнирования одного или нескольких купонов из чека необходимо в утилите администрирования Yuki на клавишу настроить действие "Удаление купона" с командой COMMAND_COUPON_DELETE и параметром deleteAllCoupons:

Отличие уникальных (онлайн) и неуникальных купонов

Акции на выдачу и гашение купонов (предоставление скидки по купону) задаются в системе лояльности Loyalty Management. Обработка данных для разных типов купонов и используемых форматов печати отличается:

Тип купонаФормат печати купонаИспользование сроков жизниИспользование префикса купона из настроек кассыИспользование префикса купона из настроек Loyalty ManagementСпособ добавления на кассе
НеуникальныйEAN13Не используются, срок жизни определяется сроком действия акции на гашениеНе используется, на купоне печатается только префикс из Loyalty Management

Печатается на чеке при выдаче купона. Для того чтобы при считывании купона касса распознала введенный номер префикс из акции на гашение, заданной в Loyalty Management, должен соответствовать правилам разбора штрих-кода, указанным в bcode.ini.

сканирование / ручной ввод


   
CODE128
QRИспользуются сроки жизни купонов и срок действия акции на гашение

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

Используется, при выдаче купона префикс и сроки жизни купона шифруются и записываются в QR-код.

При считывании купона для гашения номер купона расшифровывается и подставляется в чек.

УникальныйEAN13Передается на сервер купонов при выдаче купона, при гашении купона запрашивается на сервере, и по этому префиксу определяется к какой акции относится купон и предоставляется соответствующая скидка.
CODE128
QR

Просмотр информации о купоне

В кассовом ПО Artix реализована возможность настройки отображения информации о купоне после его добавления. Отображаемая информация регулируется настройками couponInfo в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/gui.ini в секции [GUI.SelectedPositionInfo]. Настройки отображения информации о купоне задаются параметром couponInfo<N>, где <N> это порядковый номер строки. Максимальное количество отображаемых строк – 5. Подробнее о правилах формирования значений для параметра couponInfo<N> можно прочитать в разделе "Правила форматирования".

[GUI.SelectedPositionInfo]
...
; Параметры отображения информации о выделенном купоне. Не более 5 полей
;couponInfo1 = "Купон %(coupon.number[s])"