iikoFront API SDK

Резервы

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

С помощью API можно реализовать резервирование столов через веб-сайт или мобильное приложение, предоставив клиенту возможность самостоятельно выбрать предпочтительное место в зале (например, у окна, подальше от сцены или рядом с розеткой).

Бронирование столов

Данный тип резервов применяется главным образом для того, чтобы гарантировать наличие свободного стола на вечер для небольшой группы гостей. В API резервы представлены типом IReserve, включающим в себя следующую информацию:

Жизненный цикл резерва прост — он закрывается либо с созданием заказа на соответствующем столе (ActivateReserve), если клиент пришёл и запланированное мероприятие началось, либо с указанием причины отмены (CancelReserve), если клиент попросил снять резерв или не пришёл к назначенному времени. Кроме того, резерв может быть преобразован в банкет путём присоединения к нему заказа (BindReserveToOrder).

Банкеты

Банкет — это связка резерва и заказа (IReserve и IOrder). Совместное их использование позволяет дополнительно к возможностям резерва заранее согласовать с клиентом меню и внести предоплату. Обычно это используется при проведении больших мероприятий, чтобы ресторан мог не только зарезервировать стол (а чаще целый банкетный зал), но и закупить на кухню продукты к предстоящему событию, украсить должным образом помещения и прочее.

Банкет может быть создан с нуля, на базе существующего заказа (CreateBanquet), либо путём соединения созданных ранее заказа и резерва (BindReserveToOrder), при этом необходимо, чтобы заказ и резерв находились на одном и том же столе, а ожидаемое количество гостей в них совпадало.

Поскольку банкет представляет собой резерв, связанный с заказом, он закрывается не в момент прихода гостей, а при закрытии заказа, соответственно, его жизненный цикл помимо статусов New и Closed содержит дополнительный промежуточный статус — Started.

Удаление

Как и заказы, закрытые резервы удаляются при закрытии соответствующей кассовой смены.

Открытые резервы и связанные с ними банкетные заказы теоретически должны существовать до тех пор, пока не будут закрыты, но в силу особенностей механизма их хранения это не всегда так. Представленная ниже информация не относится к API, это деталь реализации, которая может быть изменена в любой момент, но знание которой может помочь избежать неприятных неожиданностей. Резервы и заказы хранятся по отдельности и при установке новых версий iikoFront обновляются по-разному: копии резервов хранятся на сервере iikoRms, откуда iikoFront и загружает их при первом запуске новой версии, в то же время заказы хранятся и обновляются непосредственно на терминалах iikoFront. Это может приводить к несогласованности: