Groups and Points of Sale
v6
Key Concepts
A group in the context of the Syrve system can correspond to a structural or logical accounting area in a retail enterprise. For example, for an establishment with halls on two floors, two groups may be registered, each corresponding to a separate floor. The need to distinguish groups and departments is primarily determined by the settings that must be implemented for the most efficient functioning of the system in the enterprise.
One or more terminals must be linked to a group, where orders will be registered or guest payments will be processed. To ensure that all terminals have up-to-date information, data synchronization regarding orders, reservations, personal and cash shifts, and accounting days must occur between them. For this purpose, a so-called “main cash register” is designated within the group — the central link in synchronizing common data between terminals. In “Restaurant” mode, designating a main cash register is mandatory, while in “Fast Food” it is optional. If a main cash register is not designated, synchronization will not occur, and each terminal will have its unique data center.
A point of sale is a logical unit representing a single cash register.
A terminal may correspond to a single point of sale, multiple points of sale, or not correspond to any point of sale at all. An order during payment can be divided among points of sale according to the settings.
Key API Types and Methods
ITerminalsGroup— group; main settings: name (Name), a flag indicating whether to ask the cashier about splitting the order into multiple print locations (AskCashierForMultiCashRegisterPayment).- The method
IOperationService.GetHostTerminalsGroupallows you to obtain the group of the terminal on which the plugin is running. IPointOfSale— point of sale; main settings: name (Name), a flag for “Main Cash Register” (IsMain).- The method
IOperationService.GetHostTerminalPointsOfSaleallows you to obtain a list of points of sale for the terminal on which the plugin is running. - The
PointOfSaleproperty of the payment item in the order (IPaymentItem) allows you to find out the point of sale where the payment was made (if the payment item is processed). - Information about the point of sale is available in the event of transitioning to the cash register screen
INotificationService.SubscribeOnNavigatingToPaymentScreen. - The method
IOperationService.NeedToSplitOrderBeforePaymentnow returns an objectCheckSplitResultDtowith information on how the orders would be split among points of sale if this were to happen at that moment on the given terminal. TheCheckSplitRequiredResultproperty indicates whether splitting the order by print locations is permissible/necessary. ThePointOfSaleproperty indicates the presumed point of sale if it can be determined unambiguously.
Examples
An example of working with order splitting can be found in the SDK plugin Resto.Front.Api.SamplePlugin (EditorTester.SplitOrder).