ошибки начисления бонусов

Ошибки начисления и списания бонусов

Раздел описывает логические ошибки программы лояльности: некорректное начисление бонусов, неработающее списание, суммирование кошельков, округление и спорные кейсы по условиям ПЛ. Большинство таких ситуаций — не сбои, а корректная работа системы по настроенным условиям; задача поддержки — проверить условия и объяснить клиенту.


Кошельки не суммируются в общий баланс

Симптом. Несколько кошельков гостя не складываются в общий баланс.

Решение.

  1. Проверить типы кошельков: https://cabinet.clientomer.ru/[point_id]/wallets.types/.
  2. Найти тип first_visit_bonuses → проверить галку «Считать в общий баланс».
  3. Поставить галку.
  4. Запустить скрипт пересчёта: LoyaltyScripts::reloadBonusesBalanceV2.

Не показывает бонусы к списанию

Симптом. Бонусы к списанию не отображаются.

Причина. Частый случай — пробивают блюда, не выбранные для списания.

Общее правило. Если что-то не начисляется/списывается, проверять:

  • соответствие заказа условиям программы лояльности;
  • включённость блоков ПЛ в целом.

Нет бонусов по заказу / некорректная скидка

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

Если нет бонусов:

  1. Проверить таблицу loyalty_transactions — для начисления бонусов по заказу обязательно должна быть транзакция.
  2. Если транзакций нет — снять лог с терминала (см. «Как снимать логи с касс iiko»).
  3. Дополнительно можно проверить условия ПЛ. При неуверенности — направить проблему на доску «Тикеты от поддержки» (инструкция «Изменение условий работы программы лояльности»).

Если скидка некорректная (клиент ждёт 10%, а отображается N%):

  1. Запросить видео авторизации гостя.
  2. Проверить категорию гостя и сочетание категории со скидкой в разделе «Программа лояльности».
  3. Если проблема не ясна — снять лог с терминала и поставить задачу на доску «Тикеты тех поддержки», приложив:
    • гостя (ссылку на гостя);
    • поинт, на котором касса;
    • лог за день проблемы;
    • краткое описание, что и где отобразилось некорректно.

Правила округления бонусов

Расчёт ведётся по каждой позиции отдельно, а не над всем заказом:

окрвниз(290*0,05) + окрвниз(980*0,05) + окрвниз(230*0,05) + ... = 14 + 49 + 11 + ... = 238

Это намеренное поведение системы — не меняется.


Гостю начислены некорректные бонусы

Симптом. Клиент утверждает, что гостю начислены бонусы, не соответствующие условиям ПЛ.

Диагностика.

  1. Проверить дату начисления.
  2. Проверить, какая категория действовала на момент начисления (раздел «Обновления» в ЛК).
  3. Убедиться, что суммирование нескольких программ корректно.

Пример. По категории 5% + по ДР 20% = 25% — это корректное поведение системы.


Гостю начислен кэшбэк больше, чем установлено в брифе

Симптом. Клиент утверждает, что начислен кэшбэк 25%, что не соответствует условиям ПЛ.

Решение. Проверить условия ПЛ — обычно «лишний» процент складывается из двух начислений:

  • по категории — 5%;
  • по дню рождения — 20%.

Итого 25% — корректное суммирование. Если клиент не согласен с условиями — запросить ТЗ на обновление условий ПЛ и сформировать задачу по инструкции.


Гостю не должны были начисляться бонусы по условиям ПЛ

Симптом. Клиент сообщает, что гостю начисляются бонусы за заказы, хотя по условию должно быть только списание.

Диагностика.

  1. Проверить дату начисления бонусов (пример: 5 июня 2025).
  2. Проверить, какая категория действовала на момент начисления (пример: категория «Gold» действовала до 17 июня 2025).

Ответ клиенту (пример). На момент заказа от 05.06.2025 у гостя действовала категория «Gold» — по ней сработало условие накопления бонусов. 17.06.2025 категория «Gold» была снята сотрудником (логин AdmZanini).


Не отображаются начисленные бонусы за заказ в профиле гостя

Симптом. В ЛК заказ отображается, но начисленные бонусы за него не видны (при этом во вкладке «Бонусы по ПЛ» бонусы есть).

Причина. Используется «Версия API: №1» в интеграции продаж.

Решение. Переключить на «Версия API: №2» → перезагрузить продажи → проверить. Если не помогает — сообщить клиенту, что со стороны iiko нужно перейти на «API Olap V2.0».

Подробнее — см. iiko / «ошибки-отображения-бонусов.md».


Ошибка некорректного наименования номенклатуры

Симптом. Ошибка, связанная с именованием номенклатуры.

Причина. PHP-функция empty() возвращает true для пустых строк, 0 и NULL — отсюда ложное срабатывание при пустых/нулевых значениях наименования.

Диагностика. Использовать https://jsonformatter.org/json-parser для разбора JSON.