процессинг

Процессинг

Что такое процессинг

Процессинг — процесс обработки данных о заказе между рестораном и ReMarked через API. Касса передаёт данные о госте и заказе, процессинг рассчитывает скидки и бонусы, проводит транзакции и возвращает результат для печати на чеке/пречеке.

Как работает

ПЛ ReMarked начинает отрабатывать по гостю в тот момент, когда в таблице loyalty_transactions транзакция переходит в статус success. Для этого не нужно ждать, пока заказ загрузится из iiko или других систем — данные приходят с кассы напрямую.

Нет транзакции в таблице = гостя не чекинили через плагин ReMarked.

Жизненный цикл транзакции (через Loyalty API v2)

  1. guest/get — авторизация гостя по карте/телефону.
  2. order/update — предрасчёт скидок и доступного лимита списания бонусов.
  3. transaction/makeorupdate — создание предтранзакции (transaction_id).
  4. order/bill — формирование счёта при списании бонусов (опционально).
  5. transaction/confirm — подтверждение при закрытии заказа → статус success.
  6. transaction/rollback — откат при отмене.

Кошельки

Кошелёк — счёт гостя для хранения бонусов определённого типа. Гость может иметь несколько кошельков (например, основной бонусный, акционный). Хранятся в таблице cl_wallets, связаны с типом (type_id).

  • Кошельки, у типа которых задан признак учёта в общем балансе, суммируются в агрегированный баланс гостя (cl_guests.bonuses).
  • Управление балансами извне доступно через дополнительное API (Wallets.Get/Refill/Withdraw) и сервисные методы LoyaltyScripts (пересчёт и перенос балансов).

Дублирование кошельков одного типа у гостя приводит к раздваиванию баланса — см. «Дублирование кошельков (RCA)».

Категории гостей

Категория — уровень/сегмент гостя в программе лояльности (например, SILVER / GOLD / PLATINA), от которого зависят механики скидок и начислений.

  • Категория хранится в карточке гостя.
  • Назначается автоматически (по сценариям — сумма продаж, переход по уровню) или вручную в личном кабинете.
  • Управление категориями извне — через дополнительное API (Category.Get, GuestCategories.Get/Add/Del); для дистанционного присвоения у категории должен быть включён признак api_add=true.