Техническая документация

Интеграция Restometrics с системой автоматизации iiko

Настоящий документ описывает техническую архитектуру интеграции программного обеспечения Restometrics с системой автоматизации предприятий общественного питания iiko: поддерживаемые версии, используемые API-методы, лицензионные требования, совместимость. Документ актуализируется по мере изменения интеграции.

Раздел 1

Таблица версионности и совместимости

Основная страновая таблица интеграции — в соответствии с требованиями к технической документации партнёров iiko.

СтранаВерсия iikoВерсия RestometricsПлагины iikoКомментарий
Российская Федерация ≥ 5.5 backend 1.0.0 / frontend 0.2.0 Backend-only интеграция через API iiko корпорации. Плагины iiko не используются.

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

Раздел 2

Минимальная поддерживаемая версия iiko

Минимальная поддерживаемая версия — iiko 5.5 и выше. Граница обусловлена переходом iiko на OLAP API версии 2 в формате JSON и введением обязательного фильтра по дате в OLAP-запросах начиная с этой версии. На более ранних версиях корректный сбор аналитических данных невозможен.

На актуальных версиях iiko (серии 7.x и 8.x) интеграция работает штатно.

Раздел 3

Совместимость и graceful degradation

Restometrics использует паттерн runtime feature detection: при обращении к OLAP-полю, не поддерживаемому версией iiko клиента, сервер получает ошибку «неизвестное поле», коллектор корректно обрабатывает её и переходит к следующему запросу без прерывания сбора остальных данных.

Это означает, что статические version-gates не применяются: сервис подключается к любой поддерживаемой версии iiko, а недоступные в данной версии показатели просто не собираются. В пользовательском интерфейсе соответствующие секции отображают либо сообщение об отсутствии данных, либо скрываются до появления доступных данных.

Опциональные поля и поведение при их недоступности

Функция RestometricsПоведение при недоступном OLAP-поле
Фудкост и маржа по блюдамСобираются только выручка и количество продаж; карточки маржи показывают «нет данных по ТТК»
Аналитика по зонам ресторана (бар, веранда и т. д.)Вкладка «Зоны» скрывается до появления поддержки в iiko
Аналитика по каналам (зал / доставка / самовывоз)Вкладка «Каналы» скрывается; разделение по типам заказа недоступно
Разделение скидок по типамСкидки собираются единой категорией без типизации
Категории блюд в ABC-анализеFallback на группировку по группам без подкатегорий
Подробный журнал удалённых позицийФункция Exception-анализа отключается
15-минутная почасовая детализацияFallback на часовую детализацию

Минимальная функциональность (выручка по дням, количество чеков, средний чек, количество гостей, рейтинг блюд и сотрудников) работает на всех поддерживаемых версиях iiko, начиная с 5.5.

Раздел 4

Используемые лицензии iiko

Для подключения к Restometrics клиенту требуется одна активная лицензия iiko.

Лицензия iikoТребуется?Назначение
iikoAPIServerДаДоступ к корпоративному API iiko, API OLAP-отчётов. Единственная необходимая лицензия.
iikoAPIFrontНетRestometrics не работает на стороне Front (кассы).
iikoAPIFront WebНет
iikoAPIPaymentНетПлатёжные операции iiko не используются.

Если у ресторана работает стандартный дашборд iikoOffice, лицензия iikoAPIServer уже присутствует. Дополнительные лицензионные затраты для подключения Restometrics не требуются.

Раздел 5

Версии компонентов Restometrics

КомпонентВерсия
Серверная часть (backend)1.0.0
Клиентская часть (frontend SPA)0.2.0

Среда выполнения

Раздел 6

Используемые методы API iiko

Restometrics обращается исключительно к корпоративному API iiko (iikoAPIServer) через защищённый канал HTTPS. Ниже — полный перечень используемых методов.

Тип APIМетодНазначение в Restometrics
iikoAPIServerАутентификацияПолучение токена сессии с API-паролем подключения
iikoAPIServerЗавершение сессииКорректное освобождение лицензии API
iikoAPIServerOLAP-отчёт SALESВыручка, топ блюд, статистика персонала, типы оплат, скидки, удаления, каналы, зоны
iikoAPIServerOLAP-отчёт DELIVERIESАналитика доставки (при наличии доставочных подразделений)
iikoAPIServerOLAP-отчёт TRANSACTIONSАкты ручного списания (модуль «Списания»), аналитика денежных потоков
iikoAPIServerОстатки склада (v2/reports/balance/stores)Текущие складские остатки в разрезе точек и номенклатуры (модуль «Склад»)
iikoAPIServerСписок подразделенийАвтоматическое получение списка точек клиента

Ориентировочная нагрузка на API iiko

Нагрузка на сервер iiko клиента в режиме штатной эксплуатации — одно подключение:

ПоказательЗначение
Средняя нагрузкаменее 0,1 операции в секунду (ops/sec)
Пиковая нагрузка в режиме первоначальной загрузки истории (единоразово при подключении нового подразделения)до 2 ops/sec на 1–5 минут
Пиковая нагрузка в режиме штатной эксплуатации (инкрементальный сбор)до 0,5 ops/sec (серия из нескольких запросов подряд раз в 5 минут)

Все OLAP-запросы формируются с соблюдением стандартных ограничений iiko API, включая обязательные фильтры по дате и ограничение на количество полей в одном запросе. Параллельных OLAP-запросов к одному и тому же подключению Restometrics не выполняет — для соблюдения рекомендаций iiko по работе с OLAP API.

Раздел 7

Методы, не используемые в интеграции

Restometrics декларирует, что работает исключительно с методами iiko API, указанными в разделе 6. Недокументированные методы не используются. Для полноты технической документации ниже приводятся классы методов iiko, с которыми интеграция не взаимодействует.

Класс методов iikoПричина отсутствия использования
OLAP API v1 (XML-формат)Вся интеграция реализована на OLAP API v2 в формате JSON.
OLAP-отчёт STOCK (reportType=STOCK)Данные об остатках из OLAP не используются. Складской модуль работает напрямую через v2/reports/balance/stores (задокументированный REST-метод), указанный в разделе 6.
Работа со справочниками (номенклатура, технологические карты, рецепты)Данные о блюдах и себестоимости извлекаются из OLAP-отчётов в виде готовых агрегатов.
Методы iikoAPIFront и iikoAPIPaymentRestometrics не работает на стороне кассовых терминалов и не выполняет платёжных операций.

При расширении функциональности в будущих релизах перечень используемых методов (раздел 6) обновляется с публикацией изменений согласно разделу 10.

Раздел 8

Иные интеграции и технологии iiko

Restometrics интегрируется исключительно с системой автоматизации iiko. Интеграция с иными системами автоматизации предприятий общественного питания не реализована.

Раздел 9

Плагины iiko

Restometrics не использует плагины iiko.

Интеграция реализована по архитектурной схеме «backend-to-backend»: сервер Restometrics подключается к серверу iiko клиента через официальное API корпорации (iikoAPIServer). Установка плагинов на кассы iikoFront или в офисную часть iikoOffice не требуется.

Следствия этого подхода для клиента

Раздел 10

Безопасность соединений

Раздел 11

Процедура уведомления об изменениях

Тип измененияСпособ уведомления
Изменение минимальной поддерживаемой версии iikoEmail всем активным пользователям + публикация на настоящей странице не менее чем за 14 дней до вступления изменения в силу
Мажорный релиз серверной или клиентской частиУведомление в интерфейсе приложения; публикация в release notes; при критичных изменениях — email
Добавление или удаление используемых методов iiko APIОбновление настоящей страницы с указанием даты изменения
Масштабные инциденты (недоступность сервиса свыше 15 минут)Email активным пользователям; статус-страница сервиса
Настоящий документ подлежит актуализации при любом из перечисленных событий. Текущая версия опубликована на странице https://restometrics.ru/tech. Дата последнего обновления указывается в нижней части страницы.