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

Чек

Объект check содержит те же свойства, что и объект document, который используется в макросах при редактировании шаблонов документов, текста на экране кассира и т.д. Отличие заключается в том, что все свойства объекта check написаны в нижнем регистре.

Карта

Для использования объекта card необходимо в дисконте задавать условие по карте.


Объект card – карта


Свойство

Тип

Значение

bonusbalance

вещественный

Баланс бонусов на карте

bonusbalanceInactiveвещественныйБаланс неактивных бонусов на карте
blockedлогическийПризнак блокировки карты
cardgroupnameстроковый

Наименование группы карт

cardgrouptextстроковыйОписание группы карт
cardnametodisplayстроковыйНаименование карты для отображения при отсутствии клиента
cardstatusчисловой

Статус карты:

  • 0 – анонимная;
  • 1 – активная;
  • 2 – заблокирована.
cardsumвещественныйСумма карты
codeinternalчисловой

Внутренний номер карты в документе

dateTime

дата и время

Дата и время платежа

discountpercentвещественныйПроцент скидки

extendedoptions

строковый

Дополнительные параметры

hashстроковыйХэш номера карты

id

числовой

Идентификатор карты

inputSource

числовой

Способ ввода:

  • 1 – вручную;
  • 2 – с помощью сканера;
  • 3 – с помощью ридера.
minpointsforspendчисловой

Минимальная сумма для списания

multiplicatorвещественныйВременный мультипликатор
multiplicatorcurrentвещественныйПостоянный мультипликатор
multiplicatorbegдата и времяНачало действия временного мультипликатора
multiplicatorendдата и времяОкончание действия временного мультипликатора
nearexpirationbonusdateдата и времяБлижайшая дата истечения бонусов

number

строковый

Номер записи

operationidчисловойИдентификатор операции
operationinfoстроковыйИнформация об операции
pointsforearnвещественный

сумма баллов для начисления

pointsforspendвещественный

сумма баллов для списания

position

числовой

Номер позиции в документе

purchasesчисловой

Количество покупок

rawdataстроковый

Номер карты без преобразований

sourcedatetimeдата и времяВремя добавления карты источника (необходимо для чека возврата по чеку продажи)
spentsumвещественныйСумма списанных баллов

terminalId

строковый

Идентификатор терминала

verificationattributeчисловой

Признак верификации:

  • 0 – безусловная верификация;
  • 1 – отложенная верификация;
  • 2 – автоверификация.
verificationmethodnameстроковый

Имя метода верификации

verificationmethodtypeчисловой

Тип верификации:

  • 0 – не выбрана;
  • 1 – неизвестный тип верификации;
  • 2 – верификация не требуется;
  • 3 – автоверификация;
  • 4 – СМС;
  • 5 – Push уведомление;
  • 6 – CardsMobile.
verificationstatusчисловой

Статус верификации:

  • 0 – не верифицирована;
  • 1 – верифицирована.
verificationtypeчисловой

Идентификатор записи верификации из БД

verificationtypenameстроковый

Имя типа верификации

validitydatebegдатаНачало периода действия карты
validitydateendдатаОкончание периода действия карты



Объект cardGroup – группа карт


Свойство

Тип

Значение

bonususecase

числовой

Вариант использования бонусов:

  • 0 – скидка;
  • 1 – оплата.

cardMode

числовой

Тип карт:

  • 0 – диконтная;
  • 1 – бонусная;
  • 2 – артикс дисконт.
discounttypeintчисловой

Тип скидки:

  • 0 – процентная;
  • 1 – абсолютная;
  • 2 – индексная.

discountvalue

вещественный

Размер скидки

extraVerificationMethodsстроковый

Методы дополнительной верификации, соответствующий способу вводу

idcardстроковыйИдентификационный номер карты
idcardgroupчисловой

Идентификатор записи группы карт в БД

idclientстроковыйИдентификационный номер клиента

inputmodemask

числовой

Маска способа ввода карты

lenbeg

числовой

Начало диапазона длин номеров карт, входящих в данную группу

lenend

числовой

Конец диапазона длин номеров карт, входящих в данную группу

name

строковый

Имя группы карт

needadditionalregistrationлогический

Запрашивать дополнительную регистрацию:

  • 0 – нет;
  • 1 – да.
notaddemptycardлогический

Не добавлять в чек карты из данной группы карт, если они не найдены в БД:

  • 0 – нет;
  • 1 – да.
optionsчисловой

Правило поиска онлайн-карты:

  • 0 или NULL – карта будет получена с  сервера;
  • 1 – поиск карты будет выполнен в БД кассы.

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

(см. Правила использования битовых масок)

prefixbeg

строковый

Начало диапазона префикса номеров карт, входящих в данную группу

prefixend

строковый

Конец диапазона префикса номеров карт, входящих в данную группу

printcardinfoлогический

Печатать квитанцию с информацией о карте:

  • 0 – нет;
  • 1 – да.

regexpattern

строковый

Маска номеров карт в виде регулярного выражения

regexrule

строковый

Правила получения выделения значащей последовательности из номеров карты (регулярное выражение)

searchruleчисловой

Правило поиска карт:

  • 0 или NULL – поиск карт происходит в БД кассы в справочнике карт;
  • 1 – поиск карт происходит в БД кассы по номеру телефона;
  • 3 – поиск карт по хэшу номера карты.
showcardinfoлогический

Показывать информацию о карте:

  • 0 – нет;
  • 1 – да.

text

строковый

Текст, относящийся к группе карт

userawdataлогический

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

  • 0 или NULL – номер карты преобразуется перед отправкой на сервер в соответствии с правилом преобразования;
  • 1 – номер карты отправляется на сервер без преобразования.
valutcodeчисловойКод валюты (устанавливается для бонусных карт, не используется)
verificationmethodsстроковый

Методы верификации, соответствующий способу вводу



Объект client – клиент


Свойство

Тип

Значение

address

строковый

Адрес клиента

birthday

дата

День рождения

childrencount

числовой

Количество детей клиента

clientitemidчисловойИдентификационный номер клиента

document

строковый

Данные документа клиента (паспорта, водительского удостоверения и т.д.)

email

строковый

E-mail

extendedoptions

строковый

Дополнительные параметры

idclient

числовой

Идентификационный номер клиента

inn

строковый

ИНН

name

строковый

ФИО клиента

occupation

строковый

Род занятий

okpd

строковый

ОКПД

okpo

строковый

ОКПО

phonenumber

строковый

Телефонный номер клиента

sex

числовой

Пол клиента:

  • 0 – мужской;
  • 1 – женский.

specialdate1

дата

Первая особая дата клиента

specialdate1name

строковый

Название первой особой (специальной) даты

specialdate2

дата

Вторая особая дата клиента

specialdate2name

строковый

Название второй особой (специальной) даты

specialdate3

дата

Третья особая дата клиента

specialdate3name

строковый

Название третьей особой (специальной) даты

textстроковыйДополнительная информация о клиенте

webpage

строковый

Web-страница

zipcode

строковый

Почтовый индекс клиента



Объект organization – организации

Свойство

Тип

Значение

code

строковый

Уникальный код организации

inn

строковый

ИНН

name

строковый

Наименование организации



Объект sourcecardgroup – поиск группы карт


Свойство

Тип

Значение

bonususecase

числовой

Способ применения бонусов:

  • 0 – скидка;
  • 1 – оплата.

(не используется)

cardmode

числовой

Тип карты:

  • 0 – Дисконтная;
  • 1 – Артикс Бонус;
  • 2 – Артикс:Дисконт;
  • 5 – Карта Террасофт;
  • 6 – Социальная карта;
  • 7 – RS.Loyalty;
  • 8 – CardLab;
  • 9 – Золотая корона;
  • 10 – EPS;
  • 11 – Loymax;
  • 12 – ABMLoyalty;
  • 14 – Manzana Loyalty;
  • 17 – UDS;
  • 18 – Plazius.
discounttypeint

числовой

Тип скидки:

  • 0 – процентная;
  • 1 – абсолютная;
  • 2 – индексная.

discountvalue

вещественный

Размер скидки

extraVerificationMethodsстроковыйМетоды дополнительной верификации, соотв. способу ввода
idcardgroupчисловой

Идентификатор записи группы карт в БД

inputmodemask

числовой

Маска способа ввода карты

lenbeg

числовой

Начало диапазона длин номеров карт, входящих в данную группу

lenend

числовой

Конец диапазона длин номеров карт, входящих в данную группу

name

числовой

Наименование
needadditionalregistrationлогический

Запрашивать дополнительную регистрацию:

  • 0 – нет;
  • 1 – да.
notaddemptycardлогический

Не добавлять в чек карты из данной группы карт, если они не найдены в БД:

  • 0 – нет;
  • 1 – да.
optionsчисловой

Правило поиска онлайн-карты:

  • 0 или NULL – карта будет получена с  сервера;
  • 1 – поиск карты будет выполнен в БД кассы.

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

(см. Правила использования битовых масок)

prefixbeg

строковый

Начало диапазона префикса номеров карт, входящих в данную группу

prefixend

строковый

Конец диапазона префикса номеров карт, входящих в данную группу

printcardinfoлогический

Печатать квитанцию с информацией о карте:

  • 0 – нет;
  • 1 – да.

regexpattern

строковый

Маска номеров карт в виде регулярного выражения

regexrule

строковый

Правила получения выделения значащей последовательности из номеров карты (регулярное выражение)

searchruleчисловой

Правило поиска карт:

  • 0 или NULL – поиск карт происходит в БД кассы в справочнике карт;
  • 1 – поиск карт происходит в БД кассы по номеру телефона;
  • 3 – поиск карт по хэшу номера карты.
showcardinfoлогический

Показывать информацию о карте:

  • 0 – нет;
  • 1 – да.

text

строковый

Текст, относящийся к группе карт

userawdataлогический

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

  • 0 или NULL – номер карты преобразуется перед отправкой на сервер в соответствии с правилом преобразования;
  • 1 – номер карты отправляется на сервер без преобразования.
valutcodeчисловойКод валюты (устанавливается для бонусных карт, не используется)
verificationmethodsстроковыйМетоды верификации, соответствующий способу вводу


Принцип работы с макроподстановками в сообщениях

Макроподстановки используются для формирования сообщения, которое будет выведено на экран, если в чеке сработала скидка.

Макроподстановки принимают вид:

${<данные>:<формат>}

, где:

Примеры макроподстановок

Для вывода целочисленных данных необходимо, чтобы данные были преобразованы в строку с помощью метода str().

${str(check['num']}

Для вывода вещественных данных необходимо указать формат вывода.

${check['sumb']:0.2f}

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

${check['datetimebeg']:dddd MMMM yyyy AP}

Для вывода строк формат не нужно указывать.

${check['cashtype']}

Для доступа к вложенным объектам нужно получать поля по имени до необходимого.

${сard['card']['cardgroup']['name']}


Также над данными можно производить операции. Например, в чек добавлена бонусная карта с типом 1, чтобы изменить тип карты, нужно воспользоваться операцией вида:

Тип карты: ${str(card['card']['cardgroup']['cardmode']+ 100)}

В сообщении будет выведено "Тип карты: 101".