iiko — подключение
Подключение iiko занимает четыре шага: получить API-ключ, собрать внешнее меню, узнать его ID и ввести данные в СРМ.
Шаг 1. Создай интеграцию в iikoWeb (получи API-ключ)#
API-ключ (apiLogin) — это «пароль» для доступа Нямбота к твоему iiko.
- Войди в iikoWeb.
- Открой «Настройки Cloud API».
- Нажми «Добавить интеграцию».
- В списке найди и выбери интеграцию Нямбот (или создай произвольную интеграцию, если Нямбота нет в каталоге).
- Скопируй выданный API-ключ — он понадобится в СРМ на шаге 4.
Ключ выдаётся один раз. Если потеряешь — перевыпусти интеграцию и вставь новый ключ в СРМ.
Шаг 2. Собери внешнее меню в iikoWeb#
Нямбот синхронизирует меню только через «внешнее меню» iikoWeb (это витрина с фото, названиями и ценами). Обычная номенклатура не используется — внешнее меню даёт чистые категории и отдельные модификаторы.
- В iikoWeb открой раздел «Внешние заказы → Внешние меню».
- Нажми «Создать меню».
- Рекомендуем выбрать автоматическую генерацию меню — iiko сам соберёт категории и блюда из твоей номенклатуры. Это быстрее и надёжнее, чем добавлять позиции вручную, и при изменениях номенклатуры меню легко пересобрать.
- Проверь состав: категории (например, Пицца, Роллы, Бургеры, Напитки, Соусы), блюда, цены и модификаторы.
- Опубликуй меню.
Если оставить меню несобранным/неопубликованным, синхронизация в Нямботе не пройдёт — поле «ID внешнего меню» в СРМ обязательно.
📋 Внешнее меню iiko — это отдельная витрина. Работай с ним как с самостоятельным меню: блюда, размеры, модификаторы (в т.ч. «можно убрать» и «добавить по вкусу»), фото и прочее добавляются вручную для каждой позиции отдельно. Например, если назначить доп-ингредиенты только одной пицце, у остальных блюд их не будет до тех пор, пока ты не добавишь модификаторы каждому блюду во внешнем меню iiko. Так устроено внешнее меню iiko — Нямбот синхронизирует ровно то, что в нём заполнено, и повлиять на это не может.
⏳ iiko обновляет данные не всегда с первого раза. После изменений (в т.ч. перегенерации внешнего меню или обмена данными с номенклатурой) перепроверь состав модификаторов и значения во внешнем меню. Если правки не подтянулись сразу — подожди немного и повтори обмен данными ещё раз. Это поведение самого iiko; убедись, что во внешнем меню всё на месте, и только потом запускай синхронизацию в Нямботе.
Шаг 3. Узнай ID внешнего меню (menu_id)#
Каждому внешнему меню iiko присваивает числовой ID — его нужно указать в СРМ.
Самый простой способ — посмотреть в адресной строке браузера: открой нужное внешнее меню в iikoWeb и найди число в URL (например, .../externalMenu/82776 → ID меню 82776).
Если у тебя несколько внешних меню (например, для разных площадок), бери ID именно того, которое хочешь показывать в Нямботе.
Шаг 4. Подключи iiko в СРМ#
- В СРМ открой раздел «Интеграции».
- На карточке iiko нажми «Подключить iiko». Дальше — четыре шага; для одной точки это одна строка в таблицах, для сети — по строке на ресторан.
- Шаг «Ключ». Вставь API-ключ ресторана (apiLogin) из шага 1, дай ключу название и выбери источник цен. Ключ хранится в зашифрованном виде и после сохранения не отображается. Если ключ уже заводился раньше — просто выбери его из списка, вводить повторно не нужно. Источник цен — обычно «Внешнее меню» (цены заданы прямо в витрине). Выбери «Ценовая категория», только если в iikoWeb в списке интеграций у твоего ключа стоит именно она (цены ведутся категорией в iikoChain/RMS).
- Шаг «Точки». Слева — организации из iiko, справа — твои торговые точки. Сопоставь вручную.
- Шаг «Настройки». На каждую пару: терминальная группа (касса, куда падают заказы), внешние меню iikoWeb (те, что ты собрал в шаге 2) и — при источнике цен «Ценовая категория» — категория точки. Разверни строку и сопоставь способы оплаты: без этого заказ уйдёт в кассу с ошибкой.
- Шаг «Готово». Проверь сводку и нажми «Подключить».
💡 Как понять свой источник цен: в iikoWeb открой «Настройки Cloud API → Интеграции» — там у каждого ключа есть колонка «Источник цен». Что стоит там, то и выбирай в Нямботе.
Разные цены по точкам сети#
Если у сети несколько точек с разными ценовыми категориями (одно и то же блюдо в центре дороже, на окраине дешевле), Нямбот держит цену для каждой точки отдельно. Меню в СРМ остаётся одним списком блюд (не плодит по строке на точку), но каждая точка в мини-приложении показывает и берёт на кассе свою цену — блюда, размера, модификатора и допа. Синхронизация одной точки не перетирает цену другой.
Где увидеть: в карточке блюда появляется блок «Цены по точкам» — базовая цена и список точек, где цена отличается. Если у всех точек цена одна — блок не показывается. Цены ведёт iiko (правятся в iikoOffice/iikoWeb, не в Нямботе).
После сохранения Нямбот сам подтянет меню — первая синхронизация запускается автоматически, в пределах минуты. Дальше она идёт по расписанию; настраивать интервал не нужно, Нямбот сам держится в лимитах iiko. Когда изменения из кассы нужны прямо сейчас — кнопка синхронизации в строке подключения.
Шаг 5. Включи приём заказов на кассе (обязательно)#
Подключённого ключа достаточно, чтобы тянуть меню. Но чтобы заказ из Нямбота реально долетел до кассы и попал на кухню, касса должна быть «на связи» с Cloud API. Проверь по порядку — без этого заказ не уйдёт (или уйдёт с ошибкой):
- Касса iikoFront запущена, кассовая смена открыта. Если касса выключена — заказам некуда падать.
- На кассе запущен транспортный плагин (iikoTransport). Проверить можно в iikoWeb: «Настройки Cloud API → Организации» — у нужной терминальной группы статус должен быть «улыбающийся» 😊 (плагин работает). Грустный 😞 или красный — плагин не запущен, заказы не примутся.
- Группе разрешён доступ через Cloud API. В iikoWeb: «Настройки Cloud API → Организации → [твой ресторан] → вкладка „Основное“ → „Разрешить доступ к терминальным группам“» — поставь галочку на той группе, где на кассе принимаются доставочные заказы, и сохрани.
- У ключа есть права на доставку. Если при подключении выбран шаблон «Все права» — этого достаточно. Если права урезаны и модуль доставки выключен, Нямбот не сможет ни читать, ни отправлять доставочные заказы.
💡 Быстрая самопроверка: статус группы 😊 + последнее подключение обновляется «секунда в секунду» в «Настройках Cloud API → Организации». Оформи тестовый заказ в боте — он должен появиться на экране «Доставка» кассы во вкладке «Новые».
Шаг 6. Вебхуки — статусы заказа в реальном времени#
Когда повар на кассе ведёт заказ по статусам (Принят → Готовится → В пути → Доставлен), эти изменения должны прилетать обратно в Нямбот — чтобы клиент в мини-приложении видел актуальный статус, а уведомления уходили вовремя. За это отвечают вебхуки iiko.
Чаще всего настраивать ничего не нужно — Нямбот подключает вебхуки сам при подключении iiko (на шаге 4). Если статусы с кассы приходят в мини-апп — всё работает, этот шаг можно пропустить.
Если статусы НЕ обновляются (заказ на кассе «В пути», а в мини-аппе всё ещё «Готовится») — пропиши вебхук вручную в iikoWeb: «Настройки Cloud API → Интеграции → [твоя интеграция] → Настройка веб-хуков».
Адрес и токен не нужно искать или придумывать — Нямбот покажет их готовыми. В СРМ открой «Интеграции» → вкладка «POS-системы» → сегмент «Вебхуки». Строка здесь — это организация iiko, а не точка: одна строка покрывает все твои точки внутри неё (колонка «Точки» показывает какие). Токен копируется прямо из строки, кнопка «Инструкция» открывает окно с адресом, токеном и пошаговой памяткой.
Перед ручной правкой попробуй кнопку «Проверить» в той же строке — она спросит у самой iiko, что там прописано сейчас. Если ответ «Не совпадает» или «Не настроено», кнопка «Перезаписать в кассе» пропишет всё автоматически, и в iikoWeb лезть не придётся.
Дальше в форме веб-хуков iikoWeb:
- URI — вставь адрес из окна (вид
https://api.nyambot.ru/api/webhooks/iiko). - Токен авторизации — вставь токен из окна ровно как есть. Не придумывай токен сам (например, своё слово) — он не совпадёт с тем, что хранит Нямбот, и статусы перестанут приходить (Нямбот ответит 401).
- Вкладка «Фильтры» → блок «Доставка»: включи «Статус заказа» (отметь все статусы) и «Ошибки». Остальные блоки («Заказ на стол», «Резервы») для доставки не нужны.
- Нажми «Применить».
💡 Сегмент «Вебхуки» доступен и просто для проверки: всегда можно подсмотреть актуальный токен и адрес и посмотреть в колонке «Последнее событие», когда касса присылала уведомление в последний раз.
⚙️ У iiko один адрес вебхуков на организацию — он общий для стоп-листа и статусов заказов. Поэтому адрес один (
/api/webhooks/iiko), а какие события слать — задаётся фильтрами. По той же причине настройка одна на все точки организации: если в неё смотрят два разных API-ключа, они пишут в одну и ту же настройку кассы, и Нямбот держит для них общий токен.
Синхронизация меню: две кнопки и почему бывают паузы#
Иконка ↻ в строке точки обновляет меню одной точки. Кнопка «Синхронизировать все» на карточке кассы — все точки этой кассы разом; на сети из десятка точек имеет смысл только она.
Уходить со страницы можно. Синхронизация идёт на сервере, а не в браузере: вкладку можно закрыть и зайти позже — плашка покажет, сколько точек уже прошло и какая обрабатывается сейчас.
Почему появляются паузы. iiko разрешает одному ключу не больше 5 точек в минуту. Нямбот сам выдерживает окно и показывает обратный отсчёт — это не зависание. На сети из 10 точек полный прогон занимает пару минут, и это нормально.
Почему нельзя чаще. Все точки одного ключа тратят общую квоту iiko. Если долбить синхронизацию, касса начнёт отвечать отказами, а при повторении заблокирует ключ целиком — тогда встанут все точки сразу. Поэтому кнопки строк выключены, пока идёт любой прогон, а после серии отказов Нямбот сам берёт паузу для всего ключа.
💡 Меню и так обновляется автоматически по расписанию. Ручной запуск нужен, когда изменения из кассы нужны прямо сейчас.
🏪 У тебя больше одной точки? Всё про ключ, организации и цены по точкам — в разделе Сеть из нескольких точек.
Что появится после подключения#
- Меню → вкладка «iiko» — импортированные категории, блюда и варианты (read-only, управляются в iiko).
- Модификаторы → вкладка «iiko» — модификаторы и их опции из iiko.
- Интеграции — в таблице подключений видно ID и название меню, источник цен (для «Ценовой категории» — название самой категории) и метрики (число категорий, блюд, модификаторов). Если у точек сети разные ценовые категории, эта колонка сразу показывает, какая точка по какому прайсу продаёт.
Как модификаторы iiko раскладываются по секциям мини-аппа — см. Модификаторы и мини-приложение.
Как отключить iiko от точки#
Интеграции → строка точки → корзина. Нямбот покажет список того, что удалит, и попросит подтвердить.
Удаляется всё, что приехало из кассы для этой точки:
- меню, группы и блюда с их размерами;
- модификаторы и ингредиенты кассы;
- комбо и их категории;
- загруженные фото этих позиций (файлы удаляются с сервера);
- цены, наличие и скидки этой точки.
Остаётся: история заказов и вся аналитика по ней. Позиции в старых заказах хранятся снимком — названием, ценой и фото на момент заказа, — поэтому отчёты не «поедут».
После отключения точка возвращается на собственное меню Нямбота: меню, стоп-листы, доставка и лояльность снова управляются в СРМ.
🏪 У сети: отключение одной точки не трогает соседние. Общее меню сети остаётся у остальных точек, а ключ удаляется сам, только когда к нему не осталось ни одной точки.
⚠️ Отключение — не пауза: импортированное меню удаляется, и вернуть его можно только повторным подключением и синхронизацией.