Grupy i Punkty Sprzedaży
Podstawowe definicje
W Syrve grupa może odpowiadać jednostce strukturalnej lub logicznej w sklepie. Na przykład, jeśli lokal ma dwie kondygnacje z salami jadalnymi, można zarejestrować dwie grupy — po jednej na każdą kondygnację. Grupy i sekcje definiuje się w ustawieniach. Takie ustawienia powinny być wykonane, aby system działał prawidłowo.
Grupa musi mieć jeden lub więcej terminali do rejestrowania zamówień i obsługi płatności. Aby zapewnić dostępność informacji w czasie rzeczywistym na wszystkich terminalach, dane takie jak zamówienia, rezerwacje, zmiany osobiste i kasowe oraz dzień transakcji muszą być synchronizowane. W tym celu należy dodać tzw. „główną kasę” do grupy. Ta kasa jest centralnym elementem synchronizacji danych między terminalami. W trybie „Restauracja” główna kasa jest wymagana, natomiast w trybie „Fast Food” jest opcjonalna. Jeśli główna kasa nie zostanie określona, synchronizacja nie będzie miała miejsca, a każdy terminal będzie miał swoją własną kopię danych.
Punkt sprzedaży to jednostka logiczna odpowiadająca jednej kasie.
Terminal może być powiązany z jednym POS, kilkoma POS lub żadnym. W momencie płatności zamówienia mogą być dzielone między POS zgodnie z ustawieniami.
Kluczowe typy i metody API
ITerminalsGroup— to grupa. Podstawowe ustawienia: nazwa (Name), atrybut wskazujący, czy kasjerzy powinni być pytani o wykonanie podzielonego wydruku (AskCashierForMultiCashRegisterPayment).- Metoda
IOperationService.GetHostTerminalsGrouppozwala pobrać grupę terminali, na której działa wtyczka. IPointOfSale— punkt sprzedaży; podstawowe ustawienia: nazwa (Name), atrybut „Główna kasa” (IsMain).- Metoda
IOperationService.GetHostTerminalPointsOfSalepozwala pobrać listę punktów sprzedaży powiązanych z terminalem, na którym działa wtyczka. - Właściwość
PointOfSaleelementu płatności zamówienia (IPaymentItem) pozwala zidentyfikować POS, w którym dokonano płatności (jeśli płatność została zaksięgowana). - Szczegóły POS można znaleźć w zdarzeniu przejścia do ekranu kasy
INotificationService.SubscribeOnNavigatingToPaymentScreen. - Obecnie metoda
IOperationService.NeedToSplitOrderBeforePaymentzwraca obiektCheckSplitResultDtoz informacjami o podziale zamówień między punktami sprzedaży, jakby miało to miejsce w danym momencie na tym terminalu. WłaściwośćCheckSplitRequiredResultwskazuje, czy podzielony wydruk jest dozwolony/wymagany. WłaściwośćPointOfSalewskazuje wyznaczony POS, jeśli można go jednoznacznie określić.
Przykłady
Przykład podzielonego zamówienia można znaleźć we wtyczce Resto.Front.Api.SamplePlugin (EditorTester.SplitOrder) jako część SDK.