Системы лояльности торгового предприятия чаще всего направлены на определенную группу людей, объединенных некоторыми характеристиками. Скидки и бонусы в этом случае предоставляются для определенной категории покупателей. Функции для работы с клиентом и картой позволяют персонифицировать скидки, организуя акции направленного действия.
age – Проверка возраста клиента
age()
-- функция возвращает количество полных лет, если указана дата рождения клиента, 0
– если дата не указана.
cf.age() >= 63 Скидка сработает, если возраст клиента больше или равен 63 (пенсионер).
hasClientOptions – Наличие опции у клиента
hasClientOptions([options])
– функция сработает, если клиенту назначена указанная опция.
Параметры функции:
options
– опция клиента.
Опция клиента – это признак клиента, который задается при добавлении клиента в базу, например, блондинка, студент и т. д.
cf.hasClientOptions([u"блондинка"]) Скидка сработает, если клиент имеет опцию "блондинка".
birthdayDate – В день рождения
birthdayDate(firstDay,lastDay)
– функция сработает, если день рождения клиента входит в заданный интервал.
Параметры функции:
firstDay
– количество дней до дня рождения;lastDay
– количество дней после дня рождения.
cf.birthdayDate(2,3) Скидка будет действовать, если чек открыт в день рождения клиента, либо 2 дня до и 3 дня после дня рождения.
birthdayDateIn – День рождения в интервале
birthdayDateIn(beginDate, endDate)
– функция сработает, если день рождения клиента входит в указанный диапазон дат.
Параметры функции:
beginDate
– начальная дата интервала;endDate
– конечная дата интервала.
cf.birthdayDateIn("2014-1-1","2014-1-31") Скидка действует, если день рождения клиента в январе. Время открытия чека не проверяется.
specialDate – В памятную дату
specialDate(firstDay, lastDay, datename)
– функция сработает, если чек открыт в памятную дату клиента или в заданный диапазон дней до/после нее. Специальная дата задается для каждого клиента индивидуально.
Параметры функции:
firstDay
– количество дней до даты;lastDay
– количество дней после даты;datename
– название специальной даты.
cf.specialDate(1,1,u"specialdate1") Скидка для клиента действует, если чек открыт в "специальную дату 1" и 1 день до и после нее.
specialDateIn – Памятная дата в интервале
specialDateIn(beginDate, endDate,
– функция сработает, если специальная дата клиента входит в указанный диапазон дат.datename)
Параметры функции:
beginDate
– начальная дата интервала;endDate
– конечная дата интервала;datename
– название специальной даты.
cf.specialDateIn("2014-3-1","2014-3-31",u"specialdate1") Скидка с таким условием сработает если клиент имеет специальную дату №1 в марте.
noCardInCheck – Отсутствие карты в чеке
noCardInCheck()
– функция сработает, если в чеке нет ни одной карты.
cf.noCardInCheck() Скидка будет действовать, если в чеке нет ни одной карты.
isVerificated – Признак верификации карты
isVerificated()
– функция сработает в том случае, если карта прошла верификацию.
cf.isVerificated() Скидка будет действовать, если карта, добавленная в чек, прошла верификацию.
hasVerificationTypes – Наличие способов верификации
hasVerificationTypes(["type"])
– функция сработает в том случае, если у группы карт, к которой принадлежит введенная карта, имеются все перечисленные в параметре способы верификации.
Параметры функции:
type
– способ верификации.
Если параметр type
не задан, то функция проверит наличие каких-либо способов верификации группы карт:
- при наличии способов – функция сработает;
- при отсутствии способов – функция не сработает.
При работе функции атрибут верификации не учитывается.
cf.hasVerificationTypes(["SMS", "AUTO"]) Функция будет действовать, если для группы, к которой принадлежит карта, заданы способы верификации SMS и AUTO.
Задана акция оплаты бонусами с условиями:
- Разрешено оплачивать бонусами 10% от суммы чека
- Задано условие cf.hasVerificationTypes(["SMS", "AUTO"])
Пример 1
При формировании чека в него добавлена карта. В группе карт указан способ верификации "SMS".
Функция проверяет способы верификации. Так как в группе карт указан только 1 из способов верификации, то при переходе в подытог сумма бонусов для оплаты рассчитана не будет. При попытке оплатить бонусами на экран кассира будет выведено сообщение "Невозможно потратить баллы".
Пример 2
При формировании чека в него добавлена карта. В группе карт указан способ верификации "SMS" и "AUTO".
Функция проверяет способы верификации. Так как в группе карт указаны оба способа верификации, то при переходе в подытог рассчитывается сумма бонусов для оплаты. Далее оплата баллами производится по алгоритму верификации карты при оплате.