HandyCafe Docs
owner

Рівні лояльності

Система рівнів лояльності винагороджує постійних клієнтів автоматичними знижками на основі їхньої накопиченої активності. По мірі використання кафе (витрати коштів, входи, покупки пакетів або розміщення замовлень) учасники заробляють бали лояльності. Коли загальна кількість балів перевищує поріг рівня, вони переходять на вищий рівень та отримують більшу знижку на тарифікацію сеансів.

Структура рівнів

Кожен рівень лояльності визначається чотирма полями:

Поле Опис
code Унікальний короткий код рівня (наприклад, silver, gold, vip). Використовується внутрішньо для ідентифікації та у відповідях API.
name Зрозуміла відображувана назва (наприклад, "Срібний учасник", "Золотий учасник"). Показується у профілі учасника та на екрані блокування клієнта.
threshold_points Мінімальна кількість балів лояльності для кваліфікації на цей рівень.
discount_bps Знижка на тарифікацію сеансів у базисних пунктах. 100 BPS = 1%. Значення 500 означає знижку 5%.

Рівні впорядковуються за значенням threshold_points. Учасник належить до найвищого рівня, для якого він відповідає порогу балів.

Знижки у базисних пунктах (BPS)

Знижки виражаються у базисних пунктах (BPS), а не у відсотках для уникнення помилок округлення з плаваючою точкою у фінансових розрахунках. Один базисний пункт = 0.01%, або одна сота відсотка.

Типові значення знижок:

Значення BPS Відсоток Приклад при ставці 1000 одиниць/год
250 2.5% Учасник платить 975 за годину
500 5% Учасник платить 950 за годину
1000 10% Учасник платить 900 за годину
1500 15% Учасник платить 850 за годину
2000 20% Учасник платить 800 за годину

Коли учасник з рівневою знижкою запускає сеанс, механізм тарифікації зменшує базову погодинну ставку на discount_bps рівня перед розрахунком вартості сегментів.

Події лояльності

Учасники заробляють бали через події лояльності. Кожна подія фіксує зміну балів та активність, що її спричинила:

Тип події Опис Типові бали
spend Учасник заплатив за сеанс (постоплата або списання з гаманця). Бали пропорційні витраченій сумі. Залежать від суми
usage Учасник використовував ПК або консоль для сеансу, незалежно від оплати. Бали базуються на тривалості. Залежать від хвилин
visit Учасник увійшов з клієнтського ПК. Фіксований бонус за кожне відвідування для заохочення регулярних візитів. Фіксовані за візит
topup Учасник поповнив гаманець. Бали відображають суму поповнення. Залежать від суми
order Учасник розмістив замовлення товарів (їжа, напої тощо). Бали пропорційні сумі замовлення. Залежать від суми
adjustment Ручне коригування балів адміністратором. Використовується для виправлень, промоакцій або спеціальних винагород. Будь-яке значення

Кожен запис події лояльності включає:

  • points_delta: кількість набраних (позитивне) або втрачених (негативне) балів.
  • amount_minor: грошова сума, пов'язана з подією (у мінорних одиницях валюти), якщо застосовно.
  • minutes_delta: кількість хвилин, пов'язаних з подією, якщо застосовно.
  • source_entity / source_entity_id: посилання на сеанс, замовлення або транзакцію, що згенерували подію.
  • event_at: мітка часу виникнення події.

Просування за рівнями

Просування за рівнями працює так:

  1. Учасник виконує активність (сеанс, покупка, вхід тощо).
  2. Система створює подію лояльності з відповідним points_delta.
  3. Загальні бали учасника перераховуються як сума всіх points_delta подій лояльності.
  4. Система перевіряє, чи новий підсумок відповідає порогу вищого рівня.
  5. Якщо учасник кваліфікується на новий рівень, поле tier оновлюється і нова знижка діє з наступного сеансу.

Призначення рівня також може бути встановлене вручну адміністратором, перевизначаючи автоматичний розрахунок.

Як рівневі знижки застосовуються до тарифікації сеансів

Коли механізм тарифікації розраховує вартість сегмента сеансу для учасника:

  1. Базова погодинна ціна визначається активним тарифним слотом.
  2. Якщо учасник має рівень зі значенням discount_bps, базова ціна зменшується: discounted_price = base_price * (10000 - discount_bps) / 10000.
  3. Додатково застосовуються індивідуальні знижки на рівні учасника (member_discount_bps у записі учасника), якщо присутні.
  4. Кінцева знижена ставка використовується для розрахунку вартості сегмента.

Рівневі знижки та знижки на рівні учасника можуть накладатися, надаючи учаснику комбіновану перевагу обох.

Створення та управління рівнями

Для створення нового рівня:

  1. Перейдіть до Налаштувань та відкрийте розділ Тарифи (або відповідний розділ управління рівнями).
  2. Натисніть Додати рівень.
  3. Введіть код (унікальний, у нижньому регістрі), назву (відображувану мітку), порогові бали та знижку BPS.
  4. Збережіть рівень.

Для редагування існуючого рівня оберіть його зі списку та змініть будь-яке поле. Зміни discount_bps рівня діють для всіх учасників, призначених до цього рівня, починаючи з їхнього наступного сеансу.

Для видалення рівня приберіть його зі списку. Учасники, призначені до видаленого рівня, повертаються до наступного нижчого рівня, для якого вони кваліфікуються за балами.

Приклад налаштування рівнів

Типова конфігурація з трьома рівнями може виглядати так:

Код Назва Порогові бали Знижка BPS
bronze Бронза 0 0
silver Срібло 500 500
gold Золото 2000 1000
vip VIP 5000 1500

У цій конфігурації новий учасник починає з Бронзи (без знижки). Після накопичення 500 балів від відвідувань, витрат та замовлень він автоматично переходить на Срібло зі знижкою 5%. При 2000 балах досягає Золота (10%), а при 5000 -- статусу VIP (15%).