Лояльность
Доступ — тариф «Pro» и выше плюс право Лояльность (loyalty.manage) для настройки и корректировок. Просмотр баланса клиента — в рамках права Просмотр базы клиентов (customers.view). Владелец может всё. По умолчанию настройка и корректировки доступны Администратору и Менеджеру.
Программа лояльности — это кэшбэк бонусами. Клиент получает % от оплаченного заказа на бонусный счёт и может оплатить бонусами часть следующего заказа. Программа работает поверх базы клиентов: бонусы привязаны к карточке клиента и общие на всё заведение (накопил в одном филиале — потратил в другом).
1 бонус = 1 ₽. Бонусы — это внутренняя скидка, не деньги: их нельзя вывести, только потратить на заказы.
Как включить
Настройки — в разделе Акции → вкладка «Лояльность» (тариф Pro). Включите программу и задайте:
- Базовый % начисления — сколько процентов от оплаченной деньгами суммы заказа вернётся бонусами (например, 5%). Действует, если не сработал уровень или исключение.
- Лимит оплаты бонусами — какую долю заказа клиент может закрыть бонусами (например, до 50%). Остальное он доплачивает деньгами.
Уровни (для заведений с заказами) — чем больше клиент потратил за всё время, тем выше базовый %: например, до 50 000 ₽ — 5%, дальше — 10%. Уровень считается по сумме всех завершённых заказов клиента и двигает только базовую ставку.
Исключения по категориям — для отдельной категории можно задать свой % начисления (не зависит от уровня: напитки 1%, алкоголь 0% — перебивает базовую ставку и уровень) И/ИЛИ свой % списания (сколько этой категории можно оплатить бонусами, например напитки — только 20% вместо общих 50%). Любую из двух осей можно не задавать — тогда берётся базовое значение.
Пока программа выключена — бонусы не начисляются и не списываются. Существующие балансы при этом сохраняются.
Как начисляются бонусы
Бонусы начисляются автоматически, когда заказ завершён (переходит в статус из группы «Выполнен»). Ставка считается по каждой позиции: категория с исключением — по своему %, остальные — по ставке текущего уровня клиента (или базовой, если уровней нет). База — сумма, оплаченная деньгами (подытог за вычетом скидок и уже списанных бонусов), без стоимости доставки. Начисление происходит один раз на заказ — повторная смена статуса ничего не задваивает.
Позиция дешевле нуля не бывает. Если у блюда выбрана удешевляющая опция (размер меньше базового, «половина порции»), и она уводит цену позиции в минус — такая позиция считается за 0 ₽, а не вычитается из соседних. Это касается и суммы чека, и базы начисления, и лимита списания: раньше такая позиция занижала бонусы гостю.
Клиент видит будущее начисление сразу. На оформлении заказа показывается «начислится N бонусов», а в истории бонусов клиента появляется строка со статусом «ожидает» — ещё до завершения заказа. В баланс бонусы попадают только когда заказ завершён (ожидающая строка превращается в начисление). Если заказ отменён до завершения — ожидающее начисление просто исчезает, баланса оно не касалось.
Бонусы копятся только у зарегистрированных клиентов — тех, кто вошёл через Telegram. Гостю, который просто оставил телефон при заказе, бонусы не начисляются: программа лояльности рассчитана на зарегистрированных клиентов (которым потом можно слать акции и напоминания).
Заказ или счёт за столом, оформленный сотрудником. Когда оператор принимает заказ или рассчитывает гостя за столом, он может привязать клиента по номеру телефона — в форме заказа и в окне расчёта чека. В окне расчёта чека привязка автоматическая: как только введён полный номер и клиент найден в базе — он сразу привязывается к чеку (отдельную кнопку жать не нужно). Чтобы убрать привязанного клиента — нажмите ✕ рядом с ним (откроется поле ввода, можно привязать другого); убрать нельзя, пока висит запрос на списание. Если клиента с таким номером нет — карточка не создаётся (покажите QR для регистрации в боте). Бонусы при завершении начислятся, только если клиент зарегистрирован (входил через Telegram); гостю по телефону начисления не будет, пока он не зарегистрируется.
Бронь столика → клиент на чеке. Если гостя посадили за стол из брони (кнопка «Посадить за стол» в брони), его клиент наследуется на чек автоматически — бонусы за столовый чек начислятся забронировавшему без ручной привязки. При ручном открытии стола (мимо брони) клиента привязывает оператор. Привязывайте/проверяйте клиента до расчёта чека — начисление считается в момент завершения.
Списание бонусов за столом. В окне расчёта чека, когда клиент привязан и у него есть бонусы, появляется поле «Списать бонусы». Оператор вводит сумму (в пределах лимита) и нажимает кнопку — клиенту приходит в Telegram запрос с кнопками «✅ Списать» / «❌ Отмена». Списание проходит только после подтверждения клиентом (оператор сам бонусы не списывает — это защита от злоупотреблений). Пока ждём подтверждения, скидка по чеку залочена; после подтверждения итог уменьшается на сумму списания, и можно принимать оплату. Запрос живёт 5 минут; оператор может отменить его или уже подтверждённое списание (бонусы вернутся клиенту). Списать можно только зарегистрированному клиенту — новому покажите QR для регистрации (кнопка в том же окне): клиент сканирует, попадает прямо в Telegram-бота, делится номером и регистрируется. После этого оператор находит его по телефону и начисляет/списывает бонусы. QR можно распечатать и положить на стол.
Отмена заказа возвращает всё к исходному: начисленные за него бонусы списываются обратно, а если клиент оплачивал заказ бонусами — бонусы возвращаются ему.
Как клиент тратит бонусы
Списать бонусы могут только клиенты, вошедшие через Telegram (гость по телефону — нет). На оформлении заказа авторизованный клиент видит свой баланс и переключатель «Списать бонусы»: спишется максимум, разрешённый лимитом и балансом, а итог заказа уменьшится. Лимит считается по позициям — если у категории задан свой % списания, она вносит в общий лимит свою долю (например, напитки можно закрыть бонусами только на 20%, остальное меню — на общие 50%). Пока лимит считается, переключателя нет. Лимит списания зависит от состава заказа, поэтому на оформлении он пересчитывается на сервере. В это время (обычно доли секунды) клиент видит строку «Считаем, сколько из них можно списать в этом заказе». Если расчёт так и не пришёл — например, из заведения ушло слишком много запросов подряд, — строка остаётся, и клиенту предложено обновить страницу. Списать бонусы в этом состоянии нельзя: лучше не дать списать, чем показать лимит больше разрешённого и потерять заказ на оплате.
В личном кабинете клиента есть раздел Бонусы (доступен из меню под иконкой профиля) — баланс и история начислений/списаний.
Баланс и ручная корректировка
В карточке клиента есть блок Лояльность: текущий баланс и лента операций (начисления, списания, возвраты, корректировки). Кнопка Корректировать (право loyalty.manage) позволяет вручную начислить или списать бонусы с указанием причины — например, компенсация за неудобство. Баланс не может уйти в минус.
Все операции по бонусам хранятся в журнале счёта (леджере) — это источник истины, по нему всегда можно свериться.