Перейти к содержанию

Бонусные уровни

Бонусные уровни находятся в /admin/new/settings/bonuses и реализованы в BonusBundle. Система поддерживает накопление баллов и динамическое изменение уровня клиента.

Настройка уровней и бонусов

  • Базовый уровень задаёт минимальный кешбэк (процент начисления).
  • Для каждого уровня указываются: название, порог по сумме заказов за период, процент кешбэка и, при необходимости, дополнительные привилегии (акции, меню, персональные промокоды).
  • Ограничение на оплату бонусами и прочие правила задаются в конфиге bonus_rules (минимальная сумма заказа, исключённые товары/категории, доля оплаты бонусами).
  • Дополнительный фиксированный бонус можно закрепить за конкретным клиентом (например, +2% персонально).

Пример настроек

Уровень Сумма за период Кешбэк
Базовый 0 ₽ 3%
Серебро 3 500 ₽ 5%
Золото 5 000 ₽ 7%
Платина 7 000 ₽ 10%

Максимальная оплата бонусами: 25% от суммы заказа (задаётся в bonus_rules).

Как работает расчёт уровней

  1. Сбор данных — учитываются завершённые заказы клиента за расчётное окно (по умолчанию: текущий месяц по текущее число; для планового пересчёта окно задаётся в calculate_time, обычно последние 30 дней).
  2. Повышение уровня — после каждого оплаченного заказа выполняется пересчёт. В течение месяца уровень может только расти: если сумма в окне дотянулась до следующего порога, кешбэк повышается.
  3. Снижение уровня — выполняется плановым пересчётом по крону. Если за расчётное окно сумма не дотянула до текущего порога, уровень снижается до последнего подходящего порога.
  4. Пересчёт по расписанию — раз в месяц запускается плановый пересчёт. В этом запуске разрешено понижение уровня, поэтому именно после него клиенты видят «обнуление» или понижение при недоборе.
  5. История — все смены уровня пишутся в bonus_levels_log с указанием суммы периода и старого/нового процента.

Начисление и списание

  • Начисляется процент от суммы заказа, подходящей под бонусы (учитываются исключения из bonus_rules). Повышенный кешбэк по акциям перекрывает уровень, если процент акции выше.
  • При оплате бонусами срабатывает ограничение на долю списания. Остаток оплачивается деньгами.
  • Если заказ отменён или пересчитан, связанные бонусные транзакции помечаются как отклонённые.

Типовые сценарии и ответы клиентам

Порог меняется с 1 числа. Что будет с текущими уровнями?

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

Клиент на платине, но по новым порогам не набирает сумму. Понизится ли уровень?

Да, после планового пересчёта система возьмёт сумму заказов за окно (обычно ~30 дней) и поставит уровень, чей порог выполнен. Если выполнен только порог серебра — кешбэк станет 5%.

Клиент на золоте и хочет остаться на серебре после ужесточения порогов. Что делать?

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

Пример с новыми порогами (3%/0 ₽, 5%/3 500 ₽, 7%/5 000 ₽, 10%/7 000 ₽, списание 25%):

  • Клиент сделал в ноябре заказов на 5 200 ₽ → получил золото (7%).
  • С 1 декабря вступают новые пороги: в личном кабинете остаётся золото.
  • Если в декабре клиент не закажет ничего, то при плановом пересчёте (1 января 05:30) сумма за расчётное окно будет <3 500 ₽ → уровень снизится до базового (3%).
  • Если в декабре клиент доберёт до 3 600 ₽, но не до 5 000 ₽, при пересчёте получит серебро (5%).
  • В любое время декабря при новом заказе кешбэк считается уже по новым порогам: если сумма в окне перевалила за 7 000 ₽, процент поднимется до 10% сразу после оплаты заказа.

Коммуникации

  • При смене уровня автоматически отправляется push/SMS (шаблоны — Шаблоны сообщений).
  • Используйте сегменты «Новый уровень» в рассылках, чтобы поддерживать вовлечённость.

Отчётность и контроль

  • Раздел «Бонусы (отчёты)» показывает распределение клиентов по уровням и средний чек.
  • Журнал bonus_levels_log фиксирует все изменения и помогает расследовать спорные ситуации (дата, сумма периода, старый/новый процент).
  • После изменения порогов убедитесь, что плановый пересчёт прошёл успешно (проверяйте системный журнал cron на сервере).