Группы и точки продаж
Основные понятия
Группа в понятиях системы iiko может соответствовать структурному или логическому участку учета в торговом предприятии. Например, для заведения, у которого есть залы на двух этажах, может быть зарегистрировано две группы, каждая из которых будет соответствовать отдельному этажу. Необходимость выделения групп и отделений определяется в первую очередь настройками, которые должны быть выполнены для максимально эффективного функционирования системы на предприятии.
К группе должны быть привязаны один или несколько терминалов, на которых будут регистрироваться заказы или выполняться расчет гостей. Для того чтобы на всех терминалах была актуальная информация, между ними должна происходить синхронизация данных по заказам, резервам, персональным и кассовым сменам, учетному дню. Для этого в группе выделяется так называемая «главная касса» — центральное звено в синхронизации общих данных между терминалами. В режиме «Ресторан» назначение главной кассы обязательно, в «Фастфуд» — опционально. Если главная касса не назначена, то синхронизация осуществляться не будет и каждый терминал будет иметь свою уникальную копию данных.
Точка продаж — логическая единица, обозначающая одну кассу.
Терминалу может соответствовать единственная точка продаж, несколько точек продаж или же вообще не соответствовать ни одной точки продаж. Заказ при оплате может делиться по точкам продаж в соответствии с настройками.
Ключевые типы и методы API
ITerminalsGroup
— группа; основные настройки: название (Name
), признак спрашивать ли кассира о разделении заказа на несколько мест печати (AskCashierForMultiCashRegisterPayment
).- Метод
IOperationService.GetHostTerminalsGroup
позволяет получить группу терминала, на котором запущен плагин. IPointOfSale
— точка продаж; основные настройки: название (Name
), признак «Главная касса» (IsMain
).- Метод
IOperationService.GetHostTerminalPointsOfSale
позволяет получить список точек продаж терминала, на котором запущен плагин. - Свойство
PointOfSale
позиции оплаты в заказе (IPaymentItem
) позволяет узнать точку продаж, на которой оплата была совершена (если позиция оплаты является проведенной). - Информация о точке продаж доступна в событии перехода на экран кассы
INotificationService.SubscribeOnNavigatingToPaymentScreen
. - Метод
IOperationService.NeedToSplitOrderBeforePayment
теперь возвращает объектCheckSplitResultDto
с информацией о том, как бы произошло разделение заказов по точкам продаж, если бы это происходило в данный момент на данном терминале. СвойствоCheckSplitRequiredResult
указывает, является ли разбиение заказа по местам печати допустимым/необходимым. СвойствоPointOfSale
указывает на предполагаемую точку продаж, если её можно определить однозначно.
Примеры
Пример работы с разделением заказа можно посмотреть во входящем в состав SDK плагине Resto.Front.Api.SamplePlugin (EditorTester.SplitOrder
).