iiko — подключение

Подключение iiko занимает четыре шага: получить API-ключ, собрать внешнее меню, узнать его ID и ввести данные в СРМ.


Шаг 1. Создай интеграцию в iikoWeb (получи API-ключ)#

API-ключ (apiLogin) — это «пароль» для доступа Нямбота к твоему iiko.

  1. Войди в iikoWeb.
  2. Открой «Настройки Cloud API».
  3. Нажми «Добавить интеграцию».
  4. В списке найди и выбери интеграцию Нямбот (или создай произвольную интеграцию, если Нямбота нет в каталоге).
  5. Скопируй выданный API-ключ — он понадобится в СРМ на шаге 4.

Ключ выдаётся один раз. Если потеряешь — перевыпусти интеграцию и вставь новый ключ в СРМ.


Шаг 2. Собери внешнее меню в iikoWeb#

Нямбот синхронизирует меню только через «внешнее меню» iikoWeb (это витрина с фото, названиями и ценами). Обычная номенклатура не используется — внешнее меню даёт чистые категории и отдельные модификаторы.

  1. В iikoWeb открой раздел «Внешние заказы → Внешние меню».
  2. Нажми «Создать меню».
  3. Рекомендуем выбрать автоматическую генерацию меню — iiko сам соберёт категории и блюда из твоей номенклатуры. Это быстрее и надёжнее, чем добавлять позиции вручную, и при изменениях номенклатуры меню легко пересобрать.
  4. Проверь состав: категории (например, Пицца, Роллы, Бургеры, Напитки, Соусы), блюда, цены и модификаторы.
  5. Опубликуй меню.

Если оставить меню несобранным/неопубликованным, синхронизация в Нямботе не пройдёт — поле «ID внешнего меню» в СРМ обязательно.

📋 Внешнее меню iiko — это отдельная витрина. Работай с ним как с самостоятельным меню: блюда, размеры, модификаторы (в т.ч. «можно убрать» и «добавить по вкусу»), фото и прочее добавляются вручную для каждой позиции отдельно. Например, если назначить доп-ингредиенты только одной пицце, у остальных блюд их не будет до тех пор, пока ты не добавишь модификаторы каждому блюду во внешнем меню iiko. Так устроено внешнее меню iiko — Нямбот синхронизирует ровно то, что в нём заполнено, и повлиять на это не может.

iiko обновляет данные не всегда с первого раза. После изменений (в т.ч. перегенерации внешнего меню или обмена данными с номенклатурой) перепроверь состав модификаторов и значения во внешнем меню. Если правки не подтянулись сразу — подожди немного и повтори обмен данными ещё раз. Это поведение самого iiko; убедись, что во внешнем меню всё на месте, и только потом запускай синхронизацию в Нямботе.


Шаг 3. Узнай ID внешнего меню (menu_id)#

Каждому внешнему меню iiko присваивает числовой ID — его нужно указать в СРМ.

Самый простой способ — посмотреть в адресной строке браузера: открой нужное внешнее меню в iikoWeb и найди число в URL (например, .../externalMenu/82776 → ID меню 82776).

Если у тебя несколько внешних меню (например, для разных площадок), бери ID именно того, которое хочешь показывать в Нямботе.


Шаг 4. Подключи iiko в СРМ#

  1. В СРМ открой раздел «Интеграции».
  2. На карточке iiko нажми «Подключить iiko». Дальше — четыре шага; для одной точки это одна строка в таблицах, для сети — по строке на ресторан.
  3. Шаг «Ключ». Вставь API-ключ ресторана (apiLogin) из шага 1, дай ключу название и выбери источник цен. Ключ хранится в зашифрованном виде и после сохранения не отображается. Если ключ уже заводился раньше — просто выбери его из списка, вводить повторно не нужно. Источник цен — обычно «Внешнее меню» (цены заданы прямо в витрине). Выбери «Ценовая категория», только если в iikoWeb в списке интеграций у твоего ключа стоит именно она (цены ведутся категорией в iikoChain/RMS).
  4. Шаг «Точки». Слева — организации из iiko, справа — твои торговые точки. Сопоставь вручную.
  5. Шаг «Настройки». На каждую пару: терминальная группа (касса, куда падают заказы), внешние меню iikoWeb (те, что ты собрал в шаге 2) и — при источнике цен «Ценовая категория» — категория точки. Разверни строку и сопоставь способы оплаты: без этого заказ уйдёт в кассу с ошибкой.
  6. Шаг «Готово». Проверь сводку и нажми «Подключить».

💡 Как понять свой источник цен: в iikoWeb открой «Настройки Cloud API → Интеграции» — там у каждого ключа есть колонка «Источник цен». Что стоит там, то и выбирай в Нямботе.

Разные цены по точкам сети#

Если у сети несколько точек с разными ценовыми категориями (одно и то же блюдо в центре дороже, на окраине дешевле), Нямбот держит цену для каждой точки отдельно. Меню в СРМ остаётся одним списком блюд (не плодит по строке на точку), но каждая точка в мини-приложении показывает и берёт на кассе свою цену — блюда, размера, модификатора и допа. Синхронизация одной точки не перетирает цену другой.

Где увидеть: в карточке блюда появляется блок «Цены по точкам» — базовая цена и список точек, где цена отличается. Если у всех точек цена одна — блок не показывается. Цены ведёт iiko (правятся в iikoOffice/iikoWeb, не в Нямботе).

После сохранения Нямбот сам подтянет меню — первая синхронизация запускается автоматически, в пределах минуты. Дальше она идёт по расписанию; настраивать интервал не нужно, Нямбот сам держится в лимитах iiko. Когда изменения из кассы нужны прямо сейчас — кнопка синхронизации в строке подключения.


Шаг 5. Включи приём заказов на кассе (обязательно)#

Подключённого ключа достаточно, чтобы тянуть меню. Но чтобы заказ из Нямбота реально долетел до кассы и попал на кухню, касса должна быть «на связи» с Cloud API. Проверь по порядку — без этого заказ не уйдёт (или уйдёт с ошибкой):

  1. Касса iikoFront запущена, кассовая смена открыта. Если касса выключена — заказам некуда падать.
  2. На кассе запущен транспортный плагин (iikoTransport). Проверить можно в iikoWeb: «Настройки Cloud API → Организации» — у нужной терминальной группы статус должен быть «улыбающийся» 😊 (плагин работает). Грустный 😞 или красный — плагин не запущен, заказы не примутся.
  3. Группе разрешён доступ через Cloud API. В iikoWeb: «Настройки Cloud API → Организации → [твой ресторан] → вкладка „Основное“ → „Разрешить доступ к терминальным группам“» — поставь галочку на той группе, где на кассе принимаются доставочные заказы, и сохрани.
  4. У ключа есть права на доставку. Если при подключении выбран шаблон «Все права» — этого достаточно. Если права урезаны и модуль доставки выключен, Нямбот не сможет ни читать, ни отправлять доставочные заказы.

💡 Быстрая самопроверка: статус группы 😊 + последнее подключение обновляется «секунда в секунду» в «Настройках Cloud API → Организации». Оформи тестовый заказ в боте — он должен появиться на экране «Доставка» кассы во вкладке «Новые».


Шаг 6. Вебхуки — статусы заказа в реальном времени#

Когда повар на кассе ведёт заказ по статусам (Принят → Готовится → В пути → Доставлен), эти изменения должны прилетать обратно в Нямбот — чтобы клиент в мини-приложении видел актуальный статус, а уведомления уходили вовремя. За это отвечают вебхуки iiko.

Чаще всего настраивать ничего не нужно — Нямбот подключает вебхуки сам при подключении iiko (на шаге 4). Если статусы с кассы приходят в мини-апп — всё работает, этот шаг можно пропустить.

Если статусы НЕ обновляются (заказ на кассе «В пути», а в мини-аппе всё ещё «Готовится») — пропиши вебхук вручную в iikoWeb: «Настройки Cloud API → Интеграции → [твоя интеграция] → Настройка веб-хуков».

Адрес и токен не нужно искать или придумывать — Нямбот покажет их готовыми. В СРМ открой «Интеграции» → вкладка «POS-системы» → сегмент «Вебхуки». Строка здесь — это организация iiko, а не точка: одна строка покрывает все твои точки внутри неё (колонка «Точки» показывает какие). Токен копируется прямо из строки, кнопка «Инструкция» открывает окно с адресом, токеном и пошаговой памяткой.

Перед ручной правкой попробуй кнопку «Проверить» в той же строке — она спросит у самой iiko, что там прописано сейчас. Если ответ «Не совпадает» или «Не настроено», кнопка «Перезаписать в кассе» пропишет всё автоматически, и в iikoWeb лезть не придётся.

Дальше в форме веб-хуков iikoWeb:

  1. URI — вставь адрес из окна (вид https://api.nyambot.ru/api/webhooks/iiko).
  2. Токен авторизации — вставь токен из окна ровно как есть. Не придумывай токен сам (например, своё слово) — он не совпадёт с тем, что хранит Нямбот, и статусы перестанут приходить (Нямбот ответит 401).
  3. Вкладка «Фильтры» → блок «Доставка»: включи «Статус заказа» (отметь все статусы) и «Ошибки». Остальные блоки («Заказ на стол», «Резервы») для доставки не нужны.
  4. Нажми «Применить».

💡 Сегмент «Вебхуки» доступен и просто для проверки: всегда можно подсмотреть актуальный токен и адрес и посмотреть в колонке «Последнее событие», когда касса присылала уведомление в последний раз.

⚙️ У iiko один адрес вебхуков на организацию — он общий для стоп-листа и статусов заказов. Поэтому адрес один (/api/webhooks/iiko), а какие события слать — задаётся фильтрами. По той же причине настройка одна на все точки организации: если в неё смотрят два разных API-ключа, они пишут в одну и ту же настройку кассы, и Нямбот держит для них общий токен.


Синхронизация меню: две кнопки и почему бывают паузы#

Иконка ↻ в строке точки обновляет меню одной точки. Кнопка «Синхронизировать все» на карточке кассы — все точки этой кассы разом; на сети из десятка точек имеет смысл только она.

Уходить со страницы можно. Синхронизация идёт на сервере, а не в браузере: вкладку можно закрыть и зайти позже — плашка покажет, сколько точек уже прошло и какая обрабатывается сейчас.

Почему появляются паузы. iiko разрешает одному ключу не больше 5 точек в минуту. Нямбот сам выдерживает окно и показывает обратный отсчёт — это не зависание. На сети из 10 точек полный прогон занимает пару минут, и это нормально.

Почему нельзя чаще. Все точки одного ключа тратят общую квоту iiko. Если долбить синхронизацию, касса начнёт отвечать отказами, а при повторении заблокирует ключ целиком — тогда встанут все точки сразу. Поэтому кнопки строк выключены, пока идёт любой прогон, а после серии отказов Нямбот сам берёт паузу для всего ключа.

💡 Меню и так обновляется автоматически по расписанию. Ручной запуск нужен, когда изменения из кассы нужны прямо сейчас.

🏪 У тебя больше одной точки? Всё про ключ, организации и цены по точкам — в разделе Сеть из нескольких точек.

Что появится после подключения#

  • Меню → вкладка «iiko» — импортированные категории, блюда и варианты (read-only, управляются в iiko).
  • Модификаторы → вкладка «iiko» — модификаторы и их опции из iiko.
  • Интеграции — в таблице подключений видно ID и название меню, источник цен (для «Ценовой категории» — название самой категории) и метрики (число категорий, блюд, модификаторов). Если у точек сети разные ценовые категории, эта колонка сразу показывает, какая точка по какому прайсу продаёт.

Как модификаторы iiko раскладываются по секциям мини-аппа — см. Модификаторы и мини-приложение.

Как отключить iiko от точки#

Интеграции → строка точки → корзина. Нямбот покажет список того, что удалит, и попросит подтвердить.

Удаляется всё, что приехало из кассы для этой точки:

  • меню, группы и блюда с их размерами;
  • модификаторы и ингредиенты кассы;
  • комбо и их категории;
  • загруженные фото этих позиций (файлы удаляются с сервера);
  • цены, наличие и скидки этой точки.

Остаётся: история заказов и вся аналитика по ней. Позиции в старых заказах хранятся снимком — названием, ценой и фото на момент заказа, — поэтому отчёты не «поедут».

После отключения точка возвращается на собственное меню Нямбота: меню, стоп-листы, доставка и лояльность снова управляются в СРМ.

🏪 У сети: отключение одной точки не трогает соседние. Общее меню сети остаётся у остальных точек, а ключ удаляется сам, только когда к нему не осталось ни одной точки.

⚠️ Отключение — не пауза: импортированное меню удаляется, и вернуть его можно только повторным подключением и синхронизацией.