ПО Artix позволяет задавать скидочные акции на ограниченное количество товара в чеке. При работе торговых сетей может возникать такая ситуация, при которой необходимо отслеживать покупки клиента и не позволять ему пользоваться данной скидкой повторно в течение определенного времени, например, в течение дня. Для осуществления контроля разработан сервис счетчиков, который будет отслеживать указанную информацию.
Конфигурирование модуля на кассе
Ведение акций со счетчиками активируется параметром enable в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/discountcounters.ini в секции [DiscountCounters]:
- при значении
trueиспользование счетчиков включено. Акции со счетчиками срабатывают, - при значении
falseиспользование счетчиков отключено. Акции, в которых заданы счетчики, не будет срабатывать на кассе.
В параметрах модуля необходимо указать хост и порт сервиса счетчиков, а также логин и пароль для аутентификации по REST при отправке запросов на получение и сохранение счетчиков.
В кассовом ПО Artix реализована возможность отправки счетчиков, если при их получении возникла ошибка. Данное поведение регулируется параметром forbidSendingOnReceiveError в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/discountcounters.ini в секции [DiscountCounters]:
- при значении
trueсчетчики не будут отправлены через очередь Artix-Queue, если возникла ошибка при их получении, - при значении
falseсчетчики будут отправлены через очередь Artix-Queue, если возникла ошибка при их получении.
Шаблон идентификатора источника изменений счетчика задается параметром idChanger в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/discountcounters.ini в секции [DiscountCounters].
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| enable | логический |
| Использование счетчиков | По умолчанию false |
| host | строковый | Имя хоста, на котором размещен сервис счетчиков | ||
| port | целочисленный | Порт, по которому выполняется подключение к сервису счетчиков | ||
| timeout | целочисленный | Таймаут ожидания ответа от сервера | По умолчанию 10 секунд | |
| user | строковый | Логин для аутентификации по REST на сервисе счетчиков | ||
| password | строковый | Пароль для аутентификации по REST на сервисе счетчиков | ||
| forbidSendingOnReceiveError | логический |
| Запретить отправку счетчиков, если при их получении возникла ошибка | По умолчанию true |
| idChanger | строковый | Шаблон идентификатора источника изменений счетчика | По умолчанию "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[04d])" |
[DiscountCounters] ; Настройки счетчиков ; По умолчанию выключены (enable = false) ;enable = false ; Имя хоста ;host = localhost ; Номер порта ;port = 8090 ; Таймаут ожидания ответа от сервера ; По умолчанию 10 секунд ;timeout = 10 ; Логин ;user = admin ; Пароль ;password = admin ; Запретить отправку счетчиков, если при их получении возникла ошибка ; По умолчанию true ;forbidSendingOnReceiveError = true ; Шаблон идентификатора источника изменений счетчика ; По умолчанию "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[04d])" ;idChanger = "%(document.shopCode[04d])%(document.cashCode[02d])%(document.shift[04d])%(document.num[04d])"
Алгоритм ведения акций со счетчиками
Для ведения в ПО Artix акций со счетчиками необходимо:
- наличие сервиса счетчиков, который устанавливается на кассовом сервере или отдельном компьютере,
- активировать модуль счетчиков
DiscountCountersв кассовом ПО, - создать акцию на основании шаблона со счетчиками в системе Artix Loyalty Management.
Порядок ведения акций следующий:
- Акция со счетчиками задается в системе Artix Loyalty Management.
- Система лояльности выгружается на кассу через кассовый сервер.
При добавлении карты клиента в чек, если сработали условия акции на кассе, к сервису счетчиков отправляется запрос о состоянии счетчиков.
Если на сервисе имеется такой счетчик, то на кассу возвращается значение счетчика. Если счетчика на сервисе нет, то он создается и ему присваивается значение 0.
Акция со счетчиком срабатывает на кассе в соответствии с условиями акции и полученным значением счетчика.После закрытия чека на сервис отправляется значение счетчика, которое добавляется к уже имеющемуся. При следующем срабатывании акции будет применено новое значение. В настоящее время счетчики не имеют срока жизни, т.е. при достижении счетчиком определенного значения акция изменит свое поведение.
При указании срока жизни счетчика, равного или превышающего
999999999дней, сервису счетчиков будет передана дата –31.12.9999.Если в чеке содержится несколько карт клиента, то отправка полученных от дисконта значений счетчиков будет осуществляться по всем картам.
Пусть задана скидочная акция на товар с ограничениями по счетчику:
"Скидка 10% на товар из каталога "Фрукты" со счетчиком "бананы" не более 5 кг".
При применении скидки на кассе на товар из каталога "Фрукты" скидка 10% будет предоставляться до тех пор, пока общее количество приобретенного товара не составит 5 кг.
Например:
1 чек. Количество товара 2 кг. Скидка 10 % будет предоставлена на 2 кг. Счетчик будет изменен со значения 0 на 2.
2 чек. Количество товара 1 кг. Скидка 10 % будет предоставлена на 1 кг. Счетчик будет изменен со значения 2 на 3.
3 чек. Количество товара 3 кг. Скидка 10 % будет предоставлена на 2 кг. На 1 кг скидка не предоставится, т.к. счетчик будет изменен с 3 на 5 и достигнет максимального значения.
На все последующие чеки скидка по данной акции предоставлена не будет.
Пусть задана скидочная акция на товары с ограничениями по счетчикам:
"Скидка 10% на товары из каталога "Фрукты" со счетчиками: "бананы" не более 5 кг, "яблоки" не более 5 кг, "персики" не более 5 кг".
При применении скидки на кассе на товары из каталога "Фрукты" скидка 10% будет предоставляться на каждый товар из каталога до тех пор, пока количество приобретенного товара не составит 5 кг.
Например:
1 позиция. "Яблоки", количество товара 2 кг. Скидка 10 % будет предоставлена на 2 кг. Счетчик для "яблоки" будет изменен со значения 0 на 2.
2 позиция. "Яблоки", количество товара 1 кг. Скидка 10 % будет предоставлена на 1 кг. Счетчик для "яблоки" будет изменен со значения 2 на 3.
3 позиция. "Бананы", количество товара 3 кг. Скидка 10 % будет предоставлена на 3 кг. Счетчик для "бананы" будет изменен со значения 0 на 3.
4 позиция. "Персики", количество товара 2 кг. Скидка 10 % будет предоставлена на 2 кг. Счетчик для "персики" будет изменен со значения 0 на 2.
5 позиция. "Бананы", количество товара 3 кг. Скидка 10 % будет предоставлена на 2 кг. На 1 кг скидка не предоставится, т.к. счетчик для "бананы" будет изменен с 3 на 5 и достигнет максимального значения.
6 позиция. "Молоко", количество товара 1 шт. Товар не входит в каталог "Фрукты". Скидка не будет предоставлена, счетчик для "молоко" будет изменен со значения 0 на 1.
После достижения каждым товаром из каталога "Фрукты" количества 5 кг скидка предоставляться не будет.
Пусть покупателю положены 1000 бонусных баллов, которыми он может оплачивать 10% от покупки.
Необходимо задать следующие скидочные акции:
- Первая акция – дает скидку 10% на чек, если не превышен лимит 1000 рублей (счетчики не превышают 1000).
Вторая акция – увеличивает счетчики на сумму скидки из первой акции со сроком жизни до 1 числа следующего месяца. Когда наступит следующий месяц, счетчики автоматически сгорят.
Пусть в зависимости от суммы покупок для покупателя действуют разные скидки:
- от 0 до 300 – 1%,
- от 300 до 800 – 2%,
- от 800 до 1500 – 3%,
- от 1500 до 2500 – 4%,
- от 2500 – 5%.
При покупки карты лояльности, сумма покупок будет копиться до конца следующего месяца. Далее сумма покупок будет обнуляться 1-го числа каждого месяца.
Необходимо задать следующие скидочные акции:
- "Накопительная скидка" – дает покупателю скидку в процентах, в зависимости от суммы покупок.
"Увеличение счетчика покупок до конца следующего месяца" – увеличивает сумму покупок до конца следующего месяца, если карту приобрели в текущем месяце. Счетчик обнуляется 1 числа.
"Увеличение счетчика покупок до конца текущего месяца" – увеличивает сумму покупок до конца текущего месяца, если карту приобрели в предыдущем месяце. Счетчик обнуляется 1 числа.
"Регистрация даты первой покупки" – необходимо установить счетчик с датой первой покупки, если она не установлена.
Пусть сумма чека равна 30.
Необходимо задать следующие скидочные акции:
- Первая акция – при закрытии чека счетчик изменится с 0 на 30.
- Вторая акция – при закрытии чека счетчик измениться с 25 на -5.
При отсутствии связи с сервером счетчиков сообщения со значениями счетчиков сохраняются в очередь Artix-Queue и передаются на сервер после восстановления связи.
Работа со счетчиками без привязки к карте
При работе торговых сетей может возникать такая ситуация, при которой необходимо предоставлять покупателям скидку на каждый N-ый чек. Для этого в кассовом ПО Artix реализована возможность работы со счетчиками без привязки к карте.
Функционал не реализован для онлайн-чеков, отложенных чеков и софт-чеков.
Конфигурирование плагина
Активация плагина для работы со счетчиками без привязки к карте определяется параметром freecounters, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/freecounters.ini в секции [plugins]. Работает только при включенном плагине discountcounters. При активированном параметре freecounters происходит получение свободных счетчиков при добавлении позиции в чек.
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| freecounters | строковый |
| Плагин для работы счетчиков без применения карты | По умолчанию Работает с плагином |
[plugins] ; Плагин для работы счетчиков, без применения карты ;freecounters = off
Удаление свободных счетчиков при возврате из подытога в режим формирования чека определяется параметром removeOnReturnFromSubtotal, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/freecounters.ini в секции [FreeCounters].
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| removeOnReturnFromSubtotal | логический |
| Удаление свободных счетчиков при возвращении из подытога | По умолчанию |
[FreeCounters] ; Удаление свободных счетчиков при возвращении из подытога ; По умолчанию false ;removeOnReturnFromSubtotal = false
Допускается задание нескольких секций с различными значениями SectionName для получения нескольких счетчиков. В каждой секции должны быть заданы следующие параметры:
| Наименование | Тип данных | Описание | Примечания |
|---|---|---|---|
| counterId | строковый | Уникальный идентификатор счетчика | По умолчанию checkcounter |
| identifier | строковый | Шаблон идентификатора, по которому начисляется и загружается счетчик | По умолчанию %(document.shopCode[04d])%(document.cashCode[02d]) |
| changeOnLoad | числовой | Значение, на которое будет изменен счетчик, перед загрузкой на кассу | По умолчанию 1.0 |
[FreeCounters.SectionName] ; Уникальный идентификатор счетчика ; По умолчанию checkcounter ;counterId = checkcounter ; Шаблон идентификатора, по которому начисляется и загружается счетчик ; По умолчанию %(document.shopCode[04d])%(document.cashCode[02d]) ;identifier = "%(document.shopCode[04d])%(document.cashCode[02d])" ; Значение, на которое будет изменен счетчик, перед загрузкой на кассу ; По умолчанию 1.0 ;changeOnLoad = 1.0



