Начиная с версии 4.6.176 реализована возможность работы счетчиков в чеках возврата и возврата по чекам продажи. Также реализована возможность отрицательного изменения счетчиков.

ПО 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логический
  • true
  • false
Использование счетчиковПо умолчанию false
hostстроковый
Имя хоста, на котором размещен сервис счетчиков
portцелочисленный
Порт, по которому выполняется подключение к сервису счетчиков
timeoutцелочисленный
Таймаут ожидания ответа от сервераПо умолчанию 10 секунд
userстроковый
Логин для аутентификации по REST на сервисе счетчиков
passwordстроковый
Пароль для аутентификации по REST на сервисе счетчиков
forbidSendingOnReceiveErrorлогический
  • true
  • false
Запретить отправку счетчиков, если при их получении возникла ошибкаПо умолчанию 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.

Порядок ведения акций следующий:

  1. Акция со счетчиками задается в системе Artix Loyalty Management.
  2. Система лояльности выгружается на кассу через кассовый сервер.
  3. При добавлении карты клиента в чек, если сработали условия акции на кассе, к сервису счетчиков отправляется запрос о состоянии счетчиков.
    Если на сервисе имеется такой счетчик, то на кассу возвращается значение счетчика. Если счетчика на сервисе нет, то он создается и ему присваивается значение 0.
    Акция со счетчиком срабатывает на кассе в соответствии с условиями акции и полученным значением счетчика.

  4. После закрытия чека на сервис отправляется значение счетчика, которое добавляется к уже имеющемуся. При следующем срабатывании акции будет применено новое значение. В настоящее время счетчики не имеют срока жизни, т.е. при достижении счетчиком определенного значения акция изменит свое поведение.

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

Пример акции со счетчиком на чек

Пусть задана скидочная акция на товар с ограничениями по счетчику:

"Скидка 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% от покупки.

Необходимо задать следующие скидочные акции:

  1. Первая акция – дает скидку 10% на чек, если не превышен лимит 1000 рублей (счетчики не превышают 1000).
  2. Вторая акция – увеличивает счетчики на сумму скидки из первой акции со сроком жизни до 1 числа следующего месяца. Когда наступит следующий месяц, счетчики автоматически сгорят.

Пример акции с накопительной системой скидок

Пусть в зависимости от суммы покупок для покупателя действуют разные скидки:

  • от 0 до 300 – 1%,
  • от 300 до 800 – 2%,
  • от 800 до 1500 – 3%,
  • от 1500 до 2500 – 4%,
  • от 2500 – 5%.

При покупки карты лояльности, сумма покупок будет копиться до конца следующего месяца. Далее сумма покупок будет обнуляться 1-го числа каждого месяца.

Необходимо задать следующие скидочные акции:

  1. "Накопительная скидка" – дает покупателю скидку в процентах, в зависимости от суммы покупок.
  2. "Увеличение счетчика покупок до конца следующего месяца" – увеличивает сумму покупок до конца следующего месяца, если карту приобрели в текущем месяце. Счетчик обнуляется 1 числа.

  3. "Увеличение счетчика покупок до конца текущего месяца" – увеличивает сумму покупок до конца текущего месяца, если карту приобрели в предыдущем месяце. Счетчик обнуляется 1 числа.

  4. "Регистрация даты первой покупки" – необходимо установить счетчик с датой первой покупки, если она не установлена.

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

Примеры акций с положительным и отрицательным изменением значения счетчика

Пусть сумма чека равна 30.

Необходимо задать следующие скидочные акции:

  1. Первая акция – при закрытии чека счетчик изменится с 0 на 30.
  2. Вторая акция – при закрытии чека счетчик измениться с 25 на -5.

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

Работа со счетчиками без привязки к карте

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

Функционал не реализован для онлайн-чеков, отложенных чеков и софт-чеков.

Конфигурирование плагина

Активация плагина для работы со счетчиками без привязки к карте определяется параметром freecounters, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/freecounters.ini в секции [plugins]. Работает только при включенном плагине discountcounters. При активированном параметре freecounters происходит получение свободных счетчиков при добавлении позиции в чек.

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

По умолчанию off

Работает с плагином discountcounters

[plugins]
; Плагин для работы счетчиков, без применения карты
;freecounters = off

Удаление свободных счетчиков при возврате из подытога в режим формирования чека определяется параметром removeOnReturnFromSubtotal, который задается в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/freecounters.ini в секции [FreeCounters].

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

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

[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
  • No labels