Пропустить контент
Купить

Режим «Оплата по столу» (Pay by Table)

Гость оплачивает свой заказ из зала ресторана онлайн. Заказ уже создан в iiko — клиент ищет его по номеру стола и оплачивает картой или наличными.

Как это работает

Активация

Включается модулем PayByTable (секция Tables).

НастройкаНазначениеПо умолчанию
pay_by_table_enableВключить оплату по столуno
table_online_gatewayОнлайн-шлюз оплаты
table_cache_gatewayШлюз для наличных
table_discount_gatewayШлюз для групповой скидки
table_correct_discountКоррекция скидки (−1 рубль)no
table_enable_spend_bonuses_blockingБлокировка бонусов после оплаты (1 час)no

Настройки режима pay_by_table

НастройкаНазначениеПо умолчанию
iiko_enable_pay_by_tableВключить режимyes
iiko_enable_table_ordersЗаказы по столуyes
iiko_enable_table_paymentОплата по столуyes
iiko_enable_table_managementУправление столамиyes
iiko_pay_by_table_require_phoneТребовать телефонyes
iiko_pay_by_table_auto_confirmАвтоподтверждение платежаno

Виртуальная страница /pay

Pay by Table создаёт виртуальную страницу /pay (перехват parse_request). На ней:

  1. Гость вводит/выбирает номер стола.
  2. Сайт запрашивает заказы из iiko по столу.
  3. Гость видит свой заказ, сумму, выбирает скидку и способ оплаты.
  4. После оплаты — экран успеха/ожидания/ошибки.

Страница /pay

Скидки

Pay by Table поддерживает алгоритм выбора предпочтительной скидки:

  • bonuses — бонусные скидки.
  • bonuses_fixed — фиксированная бонусная скидка.
  • category — групповая скидка по категории.

Расчёт: PayByTableDiscountMath::applyDiscount() (percent или fixed). Возможна коррекция скидки (−1 рубль) через table_correct_discount.

Бонусы

  • Бонусы учитываются через интеграцию с модулем Bonuses/BonusesFront.
  • При table_enable_spend_bonuses_blocking = yes списание бонусов блокируется на 1 час после первой оплаты (через user meta blocking_bonuses_payment, TTL 1 час).

Что видит администратор

  • В списке заказов WC — колонки table (стол), order_num (номер заказа), discounts (скидки).
  • В карточке заказа — 5 кастомных действий:
    • try_table_payment — попытать платёж.
    • try_table_customer — отправить гостя.
    • refresh_order_info — обновить из iiko.
    • force_send_payment — принудительно отправить платёж.
    • clear_this_from_queue — убрать из очереди.

Отправка платежа в iiko

Платеж и гость отправляются в iiko через фоновую очередь (BackgroundSendPayment, очередь payments_queue, cron WP_Cron_Runner('pay_by_table')).

Это значит:

  • Экран успеха показывается сразу после оплаты банком.
  • Отправка в iiko идёт асинхронно (надёжно, без таймаутов для гостя).
  • При сбое — ретраи.

SMS-авторизация гостя

Pay by Table интегрируется с SMS-авторизацией — гость идентифицируется по телефону (для бонусов).

См. также

WOO2IIKO © 2019 - 2026 Алексей Тихомиров.