Акция с выбором выигрышного чека случайным образом
Применение элементов игры, а именно — случайный отбор чеков для предоставления поощрения, стимулирует покупателей совершать больше покупок. Акции с геймификацией способны увеличить средний чек, частоту покупок и создать долгосрочное взаимодействие клиента с брендом, сделать покупателей более лояльными.
В Manzana Loyalty можно настроить акцию «Счастливый час»: случайным образом выбирать Х победителей в каждом магазине в определенный отрезок времени, и либо автоматически давать им скидку или бонус, или выводить сообщение кассиру
Рассмотрим настройку подобной акции в системе: "Каждую субботу с 9:00-12:00, приобретая товары на сумму от 2000 руб. в одном чеке, получи шанс выиграть скидку 100% на весь чек». По внутренним правилам акции выигрышных чеков должно быть не больше 2 за указанный временной период. Временной промежуток определяются бизнес задачей проекта.
Такая акция настраивается с помощью вероятностного типа Базового правила начисления с включаемыми фильтрами по контактам, чеку и по времени.
Воспользуемся кампанией "Demo Акции программы лояльности". На каждом проекте настраивается своя кампания и партнер.
На форме Базового правила необходимо заполнить параметры следующим образом:
- Вид начисления = Скидка
- Скидка предоставляется в размере = 100
- От = Сумма со скидкой.
- Тип расчёта = Процент.
- На = Чек и/или заказ
- Определять выигрышный чек случайным образом = Да
- Час от = 9. Если заполнен параметр "Час от", но не указан "Час до", то правило применится от времени "от" до 24 часов суток.
- Час до = 12. Если заполнен параметр "до", но не заполнен "от", то правило применяется с 0 часов до времени в параметре "до". Правило не применится, если параметр "до" меньше параметра "от".

Дополнительно в правиле необходимо задать включаемую фильтрацию по контактам, фильтрацию по чекам (от 2000 руб.) и по времени (каждую субботу).



Для распознавания выигрышного чека можно настроить в правиле отправку сообщения кассиру.
В секции правила «Ограничения» задается значение в поле «Количество чеков с выигрышем за данный период (в каждом магазине)». Например, оно равно 2, и задан период по часам с 9 до 12, тогда в каждом магазине могут стать выигрышными только 2 чека в данный временной промежуток. Лимит рассчитывается в офлайне раз в минуту. По окончанию суток лимиты очищаются. Магазины учитываются на основании фильтра по чекам=>Списки магазинов.
Важно: если по условиям акции выигрыш разыгрывается каждый час и в каждый час выигрышных чеков должно быть не больше 2, то акция настраивается с помощью трех правил на каждый временной отрезок - с 9-10, 10-11, 11-12. При этом в каждом правиле должно быть выставлено значение параметра "Количество чеков с выигрышем за данный период (в каждом магазине)" =2.

В нашем примере при таких настройках, если покупатель совершил покупку в субботу с 9 до 12 на сумму от 2000 руб., то его чек участвует в случайном отборе и может стать выигрышным.
Выигрышный чек определяется случайным образом по принципу расчета вероятности по формуле:
Вероятность выигрыша = (Количество выигрышных чеков) / (Среднее количество чеков в магазине в час в определенный день недели * Длительность периода в часах*Коэффициент умножения). День недели вычисляется относительно времени в чеке.
Где:
- Количество выигрышных чеков – берется значение из настройки правила в параметре секции "Ограничения "- "Количество чеков с выигрышем за данный период (в каждом магазине)".
- Среднее количество чеков в магазине в час в определенный день недели - Среднее количество чеков в магазине в конкретный день недели (в нашем примере в субботу)/ Значение партнерской настройки Loyalty.Processing.IsRandomWinning.AverageDailyReceiptCount.Hours
Функциональность подсчета чеков запускается партнерской настройкой Loyalty.Processing.IsRandomWinning.AverageDailyReceiptCount.TurnOn. Специальный джоб "calc orgunit avg daily cheque" раз в месяц ночью рассчитывает количество чеков для каждого магазина, в каждый день недели на основе исторических данных о чеках за последний месяц. Данные записываются в базу данных в таблицу loyalty.[orgunit_avg_quantity_daily_cheque] c полями:
- Идентификатор магазина
- День недели (от 1-7, где 1 это воскресенье)
- Среднее количество чеков в магазине в этот день недели за последний месяц
Поскольку есть магазины с разным режимом работы, то интервал часов для суммирования чеков определяется настройками: от Loyalty.Processing.IsRandomWinning.AverageDailyReceiptCount.HourFrom до (Loyalty.Processing.IsRandomWinning.AverageDailyReceiptCount.HourFrom + Loyalty.Processing.IsRandomWinning.AverageDailyReceiptCount.Hours). При подсчете количества чеков игнорируются чеки возврата и чеки, сумма которых строго меньше, чем значение настройки Loyalty.Processing.IsRandomWinning.ChequeSum.
- Длительность периода в часах - берется из настройки правила, считается как разница полей правила ("Час от" - "Час до"). На это значение нужно умножить Среднее количество чеков в магазине в час в определенный день недели, чтобы получить среднее количество чеков в суточный период действия правила.
- Коэффициент умножения - то значение берется из настройки Loyalty.Processing.IsRandomWinning.Ratio, если настройка Loyalty.Processing.IsRandomWinning.AverageDailyReceiptCount.TurnOn имеет значение 1, Y или y. При отсутствии настройки Loyalty.Processing.IsRandomWinning.Ratio, как системной так и партнерской, ее значение считается равным 1. Данная настройка позволяет гибко настраивать расчет вероятности в дни, когда количество чеков существенно меньше обычного (праздники, выходные).
Таким образом, вероятность выигрыша рассчитывается с учетом среднего количества чеков в магазине за количество часов действия правила и ограничения по количеству чеков с выигрышем за период по каждому магазину.
Для каждого магазина вероятность выигрыша в разный день недели отличается, поскольку отличается среднее количество чеков в каждый день недели за прошедший месяц.
На основе вычисленной вероятности система случайным образом определяет, становится ли выигрышным чек, оформленный в указанный временной промежуток и при наличии допустимого лимита для выигрыша.
Настройка вероятности выбора чека случайным образом для вывода сообщения на экран кассира о необходимости выдать бумажный купон с выигрышем осуществляется аналогичным образом в Правиле-сообщении. Дополнительно в настройке правила указывается, по какому типу чека должно выводится сообщение (возможно только значение "мягкий и фискальный чек/заказ").



Рис. Настройка вероятностного типа Правила-сообщения для акции со случайным отбором выигрышного чека.
Для получения поощрения по купону в системе предварительно должен быть настроен выпуск купона и Правило начисления поощрения за купон.
Выигрышные чеки доступны к выгрузке из базы данных системы по запросу. К выгрузке доступны параметры: название магазина, номер кассы, номер карты покупателя, дата и время чека, номер чека, сумма чека, сумма скидки по акции, количество позиций в чеке, ID номер правила, название правила, тип правила).
Ограничения в функциональности:
Лимиты по всем магазинам одинаковые в рамках одного правила.
Выигрышный чек определяется по мягкому чеку, а лимиты учитываются по фискальным чекам, есть риски перерасхода лимитов по акции.
До того как проводить фискальный чек, нельзя вносить изменения в мягкий (добавлять или удалять товар из чека), в противном случае касса в процессинг отправит уже новый мягкий чек и выигрыша не будет.
Не учитываются возвраты, роллбеки, бонусы, заказы.
Правила вероятностного типа не могут быть комплектами и персональными акциями.
Дополнительно рекомендуем посмотреть видео Как настроить акцию с выигрышным чеком в Manzana Loyalty