В кассовом ПО Artix реализована возможность выполнения действия при срабатывании определенной акции или скидки. Для этого необходимо в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/discountactions.ini:

  1. Активировать плагин discountactions в секции [plugins].

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

    Активация плагина для работы со скидочными действиями

    По умолчанию on
    Пример настройки
    [plugins]
    discountactions = on
  2. Создать секции [DiscountActions.N] и [SpendBonusActions.N], где <N> является кодом акции или скидки. Выполнение действий возможно:
    • DiscountActions –  при переходе в подытог,
    • SpendBonusActions–  после оплаты бонусами.
    В параметре command необходимо указать команду, которая будет использоваться.

    Параметр byDiscountCode отвечает за то, будет использован код акции или скидки для скидочных действий:

    • при значении true используется код скидки,
    • при значении false используется код акции.

    В качестве аргументов команды могут быть использованы параметры команды (см. пример ниже).

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

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


    byDiscountCodeлогический
    • true
    • false
    Применение действия на акцию или скидкуПо умолчанию false
    arg.<аргумент>строковый
    Аргументы команды
    Пример настройки
    ; Настройка действий
    ; Для добавления действия необходимо добавить секцию вида
    ;[<Actions>.<Код акции/скидки>]
    ;command = COMMAND_CARD
    ;repeat = false
    ;byDiscountCode = false
    ;arg.<argument> = param
    ; где Actions - действия, которые выполняются при срабатывании определенной акции/скидки
    ;  * DiscountActions - действия при переходе в подытог
    ;  * SpendBonusActions - действия после оплаты бонусами
    ; Код акции/скидки - код акции/скидки, при срабатывании которой будет выполняться действие
    ; command - команда
    ; repeat - скидочное воздействие срабатывает при каждом переходе в подытог
    ; byDiscountCode - применение действия на акцию или скидку
    ; arg.<argument> - аргументы команды  
    
    ;[DiscountActions.N]
    ;command = COMMAND_CARD
    ;repeat = false
    ;byDiscountCode = false
    ;arg.arg1 = param1
    ;arg.arg2 = param2
    
    ;[SpendBonusActions.N]
    ;command = COMMAND_ADD_ALLOWED_VALUTS
    ;byDiscountCode = true
    ;arg.allowedValuts = "1,3"

Скидочные действия при переходе в подытог

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

Пусть в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/discountactions.ini заданы следующие настройки:

[DiscountActions.2]
command = COMMAND_CARD
repeat = true
byDiscountCode = false
arg.dialogtitle = Участие в акции
arg.dialogmessage = Чек участвует в акции Кока-Кола! Введите номер телефона клиента
arg.dialogokbuttonmsgid = inputTextFormOkBtn
arg.dialogcancelbuttonmsgid = inputTextFormCancelBtn
arg.dialoginputpattern = +7(999)999-99-99
arg.forcedverifiedinput = true

Необходимо создать 2 группы карт:

  1. Группа карт с маской для номера телефона, способ ввода "Вручную".
  2. Группа карт с наименованием и маской "Отмена", способ ввода "Вручную".

Если в чеке есть скидочное действие, то при переходе в подытог на экран будет выведен диалог:

  • Для согласия на участие в акции введите номер телефона, нажмите клавишу "< -" (стрелка влево) и подтвердите действие клавишей "Ввод". В чек будет добавлена карта покупателя с введенным номером.
    При возврате в режим формирования и повторном переходе в подытог на экран вновь будет выведен диалог для ввода номера телефона. Для автоматического удаления ранее введенной карты необходимо использовать настройку deleteCardByBackFormingMode .
    После закрытия чека номер карты будет записан в БД Documents таблицу Carditem .

  • Для отказа от участия в акции нажмите клавишу "->" (стрелка вправо) и подтвердите действие клавишей "Ввод". В чек будет добавлена карта с наименованием "Отмена".
    После закрытия чека в БД Documents таблицу Carditem поле number будет сохранено значение "Отмена".

Для изменения текста кнопок "ОК" или "Отмена" в файле перевода *.msg можно использовать уже существующие идентификаторы (inputTextFormOkBtn="ОК"или inputTextFormCancelBtn="Отмена") или задать уникальный идентификатор с текстом:

Пример уникального идентификатора в ru.msg
discountActionOkButton = "Регистрация"

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

Использование идентификатора в discountactions.ini
[DiscountActions.1]
command = COMMAND_CARD
;byDiscountCode = false
arg.dialogtitle = Участие в акции
arg.dialogmessage = Чек участвует в акции «ВЫИГРАЙ 100 ПУТЁВОК В ДЕТСКИЙ ЛАГЕРЬ». Для участия в акции Вам необходимо ввести свой номер телефона
arg.dialoginputpattern = +7(999)999-99-99
arg.dialogokbuttonmsgid = discountActionOkButton
Для измененного сообщения кнопки "Отмена" должна быть создана группа карт с соответствующей маской номеров карт.

Скидочные действия при выборе определенного вида оплаты

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

Пример регистрации номера телефона покупателя при выборе типа оплаты

Пусть в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/discountactions.ini заданы следующие настройки:

[DiscountActions.22]
command = COMMAND_CARD
byDiscountCode = false
arg.dialogtitle = Участие в акции
arg.dialogmessage = Чек участвует в акции "Скидка при оплате через СБП". Введите номер телефона клиента
arg.dialogokbuttonmsgid = inputTextFormOkBtn
arg.dialogcancelbuttonmsgid = inputTextFormCancelBtn
arg.dialoginputpattern = +7(999)999-99-99
arg.forcedverifiedinput = true
Для акции должен быть указан спецификатор "При выборе вида оплаты". Для скидки должно быть добавлено условие "Код валюты".

Необходимо создать 2 группы карт:

  1. Группа карт с маской для номера телефона, способ ввода "Вручную".
  2. Группа карт с наименованием и маской "Отмена", способ ввода "Вручную".

После выбора вида оплаты, соответствующего условиям акции, на экран будет выведен диалог:

  • Для согласия на участие в акции введите номер телефона, нажмите клавишу "<-" (стрелка влево) и подтвердите действие клавишей "Ввод". В чек будет добавлена карта покупателя с введенным номером.

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

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

  • Для отказа от участия в акции нажмите клавишу "->" (стрелка вправо) и подтвердите действие клавишей "Ввод". В чек будет добавлена карта с наименованием "Отмена".
    После закрытия чека в БД Documents таблицу Carditem поле number будет сохранено значение "Отмена".

Для изменения текста кнопок "ОК" или "Отмена" в файле перевода *.msg можно использовать уже существующие идентификаторы (inputTextFormOkBtn="ОК"или inputTextFormCancelBtn="Отмена") или задать уникальный идентификатор с текстом:

Пример уникального идентификатора в ru.msg
discountActionOkButton = "Регистрация"

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

Использование идентификатора в discountactions.ini
[DiscountActions.1]
command = COMMAND_CARD
;byDiscountCode = false
arg.dialogtitle = Участие в акции
arg.dialogmessage = Чек участвует в акции «ВЫИГРАЙ 100 ПУТЁВОК В ДЕТСКИЙ ЛАГЕРЬ». Для участия в акции Вам необходимо ввести свой номер телефона
arg.dialoginputpattern = +7(999)999-99-99
arg.dialogokbuttonmsgid = discountActionOkButton
Для измененного сообщения кнопки "Отмена" должна быть создана группа карт с соответствующей маской номеров карт.

Скидочные действия после оплаты бонусами

Пример добавления разрешенных валют для оплаты

Пусть в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/discountactions.ini заданы следующие настройки:

[SpendBonusActions.91]
command = COMMAND_ADD_ALLOWED_VALUTS
byDiscountCode = true
arg.allowedValuts = "1,4"

Необходимо:

  1. Создать  акцию на списание бонусов с кодом 91.
  2. Добавить в чек карту лояльности.
  3. Перейти  в подытог, списать бонусы по акции с кодом 91.
  4. При выборе:
    • кода валюты, не указанного  в allowedValuts, на экран выводится ошибка:
    • кода валюты, указанного в allowedValuts, чек оплачивается. 
      После закрытия чека код оплаты будет записан в БД Documents таблицу Moneyitem .
  • No labels