Перейти к основному содержимому

Ресторан

Модуль закрывает зал: гость сканирует QR-код на столе, открывает меню, заказывает сам, кухня видит заказ на экране, счёт закрывается на кассе.

Меню — это не отдельный справочник, а тот же каталог. Позиция попадает в меню, если помечена как видимая в нём, а её категория входит в список категорий меню. Наличие и списание считаются по филиалу, указанному в настройках.

Столы

Стол — носитель QR-кода. У него есть имя или номер, зона (веранда, второй этаж), вместимость и постоянный публичный токен, который зашит в QR-ссылку. Токен неугадываемый: подобрать чужой стол по номеру нельзя.

Счёт стола

Пока гости сидят, на столе открыт один счёт. Он копит все отправки заказа за одно посещение. Счёт проходит состояния: открыт → ожидает оплаты → закрыт (или отменён).

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

Счёт «живой» ограниченное время: брошенный с вечера стол не подхватит утренний гость. Закрытие счёта и отправка новой позиции с телефона гостя не могут произойти одновременно — тут стоит блокировка, иначе позиция уехала бы в уже закрытый счёт.

Тикеты и экран кухни

Каждая отправка заказа гостем — отдельный тикет. Тикет идёт на станцию — кухня, бар или без станции — и проходит статусы: новый → подтверждён → готовится → готов → подан. Отменённый тикет остаётся в истории.

Экран кухни (KDS) показывает тикеты в реальном времени и сопровождает новые звуком. Экран филиальный: бар одного зала не видит заказы соседнего.

Позиции тикета — снапшот: название, цена, выбранные модификаторы и себестоимость фиксируются на момент заказа. Потом можно переименовать блюдо или поднять цену — старый чек не изменится.

Предоплата и постоплата

Режим оплаты выбирается настройкой:

  • Постоплата — тикет уходит на кухню сразу, гость платит на выходе;
  • Предоплата — тикет создаётся удержанным: он не показывается на экране кухни и не звучит, пока оплата не подтверждена.

Отдельно настраивается, должен ли официант подтверждать заказ гостя перед отправкой на кухню, и берётся ли процент за обслуживание.

Онлайн-оплата, как и в магазине, работает через платёжную сессию с провайдером-заглушкой и закрыта для продакшена до подключения реального эквайринга.

Позвать официанта

Гость может позвать официанта прямо из меню — сигнал придёт в зал. Функция включается настройкой: там, где официанта нет, кнопка не нужна.

Деньги

Закрытый счёт превращается в заказ с зафиксированной себестоимостью. Дальше он участвует в общей отчётности наравне с продажами кассы — отдельного «ресторанного» учёта денег нет.

Профили

Модуль настраивается под формат: кофейня (быстрый оборот, предоплата), бар, кафе с обслуживанием. Профиль меняет набор умолчаний, а не логику.

Связь с другими модулями

  • Каталог — позиции меню, варианты и модификаторы.
  • Склад — списание ингредиентов по филиалу.
  • Касса — закрытие счёта и оплата.
  • Отчёты — выручка и себестоимость зала.

Типовые сценарии

  • Раздать QR-коды по столам и разгрузить официантов на пиковых часах.
  • Запустить кофейню в режиме предоплаты: без оплаты кухня заказ не видит.
  • Разделить экраны кухни и бара, чтобы каждый видел только своё.
  • Посчитать, сколько реально приносит зал с учётом себестоимости блюд.