Акция с выбором выигрышного чека случайным образом

Редактировал(а) Татьяна Брыкова 2025/12/02 08:58

Применение элементов игры, а именно — случайный отбор чеков для предоставления поощрения, стимулирует покупателей совершать больше покупок. Акции с геймификацией способны увеличить средний чек, частоту покупок и создать долгосрочное взаимодействие клиента с брендом, сделать покупателей более лояльными.

В Manzana Loyalty можно настроить акцию «Счастливый час»: случайным образом выбирать Х победителей в каждом магазине в определенный отрезок времени, и либо автоматически давать им скидку или бонус, или выводить сообщение кассиру

Рассмотрим настройку подобной акции в системе: "Каждую субботу с 9:00-12:00, приобретая товары на сумму от 2000 руб. в одном чеке,  получи шанс выиграть скидку 100% на весь чек». По внутренним правилам акции выигрышных чеков должно быть не больше 2 за указанный временной период. Временной промежуток определяются бизнес задачей проекта.

Такая акция настраивается с помощью вероятностного типа Базового правила начисления с включаемыми фильтрами по контактам,  чеку и по времени.

Воспользуемся кампанией "Demo Акции программы лояльности". На каждом проекте настраивается своя  кампания и партнер. 

На форме Базового правила необходимо заполнить параметры следующим образом:

  • Вид начисления = Скидка
  • Скидка предоставляется в размере = 100
  • От = Сумма со скидкой.
  • Тип расчёта = Процент.
  • На = Чек и/или заказ
  • Определять выигрышный чек случайным образом = Да
  • Час от = 9. Если заполнен параметр "Час от", но не указан "Час до", то правило применится от времени "от" до 24 часов суток. 
  • Час до = 12. Если заполнен параметр "до", но не заполнен "от", то правило применяется с 0 часов до времени в параметре "до". Правило не применится, если параметр "до" меньше параметра "от". 

1757316821875-438.png

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

1757317657952-989.png

1757063020092-103.png

1757063256132-423.png

Для распознавания выигрышного чека можно настроить в правиле отправку сообщения кассиру.

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

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

1757063218038-765.png

В нашем примере при таких настройках, если покупатель совершил покупку в субботу с 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. Данная настройка позволяет гибко настраивать расчет вероятности в дни, когда количество чеков существенно меньше обычного (праздники, выходные).

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

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

На основе вычисленной вероятности система случайным образом определяет, становится ли  выигрышным чек, оформленный в указанный временной промежуток и при наличии допустимого лимита для выигрыша.

Настройка вероятности выбора чека случайным образом для вывода сообщения на экран кассира о необходимости выдать бумажный купон с выигрышем осуществляется аналогичным образом в Правиле-сообщении. Дополнительно в  настройке правила указывается, по какому типу чека должно выводится сообщение (возможно только значение "мягкий и фискальный чек/заказ").

1757321436659-469.png1757321486782-399.png1757081650652-684.png

Рис. Настройка вероятностного типа Правила-сообщения для акции со случайным отбором выигрышного чека.

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

Выигрышные чеки доступны к выгрузке из базы данных системы по запросу. К выгрузке доступны параметры: название магазина, номер кассы, номер карты покупателя, дата и время чека, номер чека, сумма чека, сумма скидки по акции, количество позиций в чеке, ID номер правила, название правила, тип правила).

Ограничения в функциональности:

Лимиты по всем магазинам одинаковые в рамках одного правила.

Выигрышный чек определяется по мягкому чеку, а лимиты учитываются по фискальным чекам, есть риски перерасхода лимитов по акции.

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

Не учитываются возвраты, роллбеки, бонусы, заказы.

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

Дополнительно рекомендуем посмотреть видео Как настроить акцию с выигрышным чеком в Manzana Loyalty