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