Reserves

Tags: v6

For event planning, there is functionality for table reservations in the restaurant halls. Depending on the event, it is possible to plan the time and place of its holding, the guest list, and the menu in advance. Based on the level of event preparation, reserves are divided into two categories: table reservations and banquets.

Using the API, table reservations can be implemented through the website or mobile application, allowing the client to independently choose their preferred location in the hall (for example, by the window, away from the stage, or near a power outlet).

Table Reservations

This type of reserve is mainly used to guarantee the availability of a free table for the evening for a small group of guests. In the API, reserves are represented by the IReserve type, which includes the following information:

The lifecycle of a reserve is simple — it is closed either with the creation of an order at the corresponding table (ActivateReserve), if the client has arrived and the planned event has started, or with the indication of a cancellation reason (CancelReserve), if the client requested to cancel the reservation or did not arrive at the scheduled time. Additionally, a reserve can be converted into a banquet by attaching an order to it (BindReserveToOrder).

Banquets

A banquet is a combination of a reserve and an order (IReserve and IOrder). Their joint use allows for additional capabilities of the reserve to agree on the menu with the client in advance and make a prepayment. This is usually used for large events so that the restaurant can not only reserve a table (or more often an entire banquet hall) but also purchase products for the kitchen for the upcoming event, decorate the premises properly, and more.

A banquet can be created from scratch, based on an existing order (CreateBanquet), or by connecting a previously created order and reserve (BindReserveToOrder), provided that the order and reserve are at the same table and the expected number of guests matches.

Since a banquet represents a reserve linked to an order, it is closed not at the moment of guest arrival, but upon closing the order; accordingly, its lifecycle, in addition to the statuses New and Closed, contains an additional intermediate status — Started.

Deletion

Like orders, closed reserves are deleted when the corresponding cash shift is closed.

Open reserves and their associated banquet orders theoretically should exist until they are closed, but due to the peculiarities of the storage mechanism, this is not always the case. The information presented below does not relate to the API; it is an implementation detail that may change at any time, but knowing it can help avoid unpleasant surprises. Reserves and orders are stored separately, and when new versions of SyrveFront are installed, they are updated differently: reserve data is stored on the SyrveRms server, from which SyrveFront loads them at the first launch of the new version, while orders are stored and updated directly on the SyrveFront terminals. This can lead to inconsistencies: