Прямое подключение мобильного приложения к iikoCloud — это запрос к API на каждое действие пользователя. Через неделю такой подход упрётся в лимиты, через две — в проблемы с обновлением токенов. Грамотная архитектура строится через посредника.
Приложение и сайт не дёргают iiko напрямую, а обращаются к собственному backend-сервису, который кеширует данные и общается с iiko централизованно. Он агрегирует запросы и снимает нагрузку с iikoCloud, кеширует меню, остатки и цены на 1–5 минут, управляет обновлением токенов без участия клиента и даёт единую точку для мониторинга.
Заказ из приложения сначала создаётся в нашей базе, потом асинхронно уходит в iiko. Если iiko недоступна — заказ попадает в очередь и отправляется при восстановлении. Клиент не видит «ошибки сервера», заказ не теряется.
Статусы заказа (в работе → готовится → готов → доставлен) — критичная часть UX. Передача через WebSocket с прокси-сервиса даёт мгновенное обновление в приложении клиента, в приложении курьера системы маршрутизации и в DSR-приложении управляющего.
Меню в iiko меняется — новые позиции, акции, временно недоступные блюда. Через очередь (Kafka / RabbitMQ) обновления приходят в backend и оттуда в приложение и на сайт, без расхождений на стыке.
Для сетей с десятками сервисов (iiko + 1С:ЗУП + CRM + WMS + BI + LMS) разумно строить интеграционную шину ESB — единый брокер для всех систем: меньше связанности, проще масштабирование.
В нашем кейсе KFC DSR этот подход реализован полноценно: прокси-сервис между приложением управляющего и POS-стеком сети, асинхронная обработка, кеши и очереди.