Skip to content
ВозможностиТарифыПартнёрамБлогСправкаО насКонтакты
НачатьВойти
Назад к Блогу
guides2026-09-256 мин чтения

Мультимодальные заказы: QR, официант и телефон за одним столом

Эскишехир: группа из 5, 2 через QR, 2 через POS официанта, 1 по телефону. 2300 заказов в месяц в одной сессии. Атомарные записи и race conditions.

th

thMenu Team

thmenu.com

Вечер пятницы в Эскишехире: пятеро за столом. Двое заказывают через QR, двое — через POS официанта, пятый звонит и добавляет блюдо на вынос. Три канала, один стол, один счёт — и 2300 заказов в месяц чисто сходятся в одной table_session.

Одна сессия, много источников

Каждый стол открывает table_session с TTL 1 час. QR, POS и телефон делят один session_token; поле order_source фиксирует источник.

Сверка после смены сократилась с 40–50 минут до 3 минут.

Атомарные записи

Одновременные POST решаются Idempotency-Key через crypto.randomUUID() и атомарным db.batch() в D1.

  • QR и POS пишут без коллизий.
  • Сервер задаёт каноническую цену.
  • Shadowban проверяется отдельно для каждого источника.

Технический ответ на "Unified Orders"

Конкретно: order_source enum, общий FK table_session_id и KDS-карточки в цветах по источнику. Телефон — синий, QR — зелёный.

Возрастные гости предпочитают официанта, что даёт 18% использования, которое QR в одиночку потерял бы.

FAQ

Как телефонный заказ попадает в нужную сессию? Официант выбирает номер стола; используется открытая сессия или создаётся новая.

Два QR добавили одно блюдо одновременно? Две строки order_item, две карточки KDS — намеренно.

Что после истечения 1 часа TTL? Открытые счета сохраняются; cron 04:00 UTC чистит только закрытые сессии.

Было полезно? Поделитесь.