Перейти к содержанию

Установка плагина для iiko

Установка выполняется на каждом рабочем месте iikoFront, где рассчитываются счета. Всё делается один раз; дальнейшие настройки приходят с сервера Брони.

Порядок важен

Сначала шаг 1 (тип скидки в iikoOffice) — без него плагин не сможет применить скидку и будет писать ошибку в журнал.


Шаг 1. Создайте тип скидки в iikoOffice

В iikoOffice → Розничные продажи → Скидки и надбавки создайте скидку:

Поле Значение
Название Скидка Брони
Тип Скидка
Способ расчёта Гибкая сумма (сумма задаётся при применении)
Применяется На весь заказ

Название должно совпадать с параметром discountTypeName в настройках плагина (значение по умолчанию — Скидка Брони). Если в вашей номенклатуре скидка названа иначе, поправьте параметр, а не название в iikoOffice.

После создания выгрузите изменения на кассы и убедитесь, что у роли кассира есть право применять эту скидку.


Шаг 2. Получите токен площадки

В личном кабинете партнёра Брони, раздел Интеграции → iiko, скопируйте токен площадки (posToken) — длинную строку, уникальную для ресторана. Это единственное значение, которое нужно ввести на кассе: адрес сервера Брони плагин знает из своей сборки.

Токен площадки — это пароль

Он даёт доступ к данным броней ресторана. Не пересылайте его в мессенджерах и не сохраняйте в общедоступных файлах. При компрометации перевыпустите токен в личном кабинете — старый сразу перестанет работать.


Шаг 3. Скачайте дистрибутив

Скачать плагин 0.4.0 (833.4 КБ)

Файл: broni-iiko-plugin-0.4.0.zip · Версия: 0.4.0 · Опубликован: 2026-08-01
SHA-256: 83a1b26199494e6f0cacf3ae86fa43a5d20aae7dc08a0d4c930c08d6193e95d6

Проверьте контрольную сумму — она должна совпасть со значением выше:

Get-FileHash -Algorithm SHA256 "$env:USERPROFILE\Downloads\broni-iiko-plugin-0.4.0.zip"

Ссылка всегда ведёт на текущую версию

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


Шаг 4. Распакуйте плагин

  1. Закройте iikoFront на этом рабочем месте — работающий процесс держит файлы плагина открытыми.
  2. Распакуйте архив в каталог плагинов iikoFront:

    C:\Program Files\iiko\iikoRMS\Front.Net\Plugins\
    
  3. Убедитесь, что получилась структура:

    …\Front.Net\Plugins\Broni.Front.Plugin\
        Broni.Front.Plugin.dll
        Manifest.xml
        Newtonsoft.Json.dll
        System.Reactive.dll
        System.Runtime.CompilerServices.Unsafe.dll
        System.Threading.Tasks.Extensions.dll
        System.ValueTuple.dll
        venue.config.sample
    

    Файла с настройками площадки в архиве нет и быть не должно: они лежат в %APPDATA% (шаг 5), а venue.config.sample — только образец.

Вложенной папки быть не должно

Частая ошибка — путь вида …\Plugins\Broni.Front.Plugin\Broni.Front.Plugin\. iikoFront такой плагин не найдёт. Файл Manifest.xml должен лежать ровно на один уровень ниже Plugins.

Каталог находится в C:\Program Files\, поэтому распаковка потребует подтверждения прав администратора.


Шаг 5. Пропишите токен площадки

Настройки площадки лежат не в папке плагина, а в профиле пользователя:

%APPDATA%\Broni.Front.Plugin\venue.config

Именно поэтому обновление плагина их не теряет. Порядок:

  1. Скопируйте venue.config.sample из папки плагина в %APPDATA%\Broni.Front.Plugin\ и переименуйте копию в venue.config. Каталога ещё нет — создайте его. Права администратора для этого не нужны.

    $dir = "$env:APPDATA\Broni.Front.Plugin"
    New-Item -ItemType Directory -Force -Path $dir | Out-Null
    Copy-Item "C:\Program Files\iiko\iikoRMS\Front.Net\Plugins\Broni.Front.Plugin\venue.config.sample" `
              "$dir\venue.config"
    
  2. Откройте venue.config в Блокноте и вставьте токен из шага 2:

    <add key="posToken" value="ВСТАВЬТЕ_ТОКЕН_ПЛОЩАДКИ" />
    

Остальные параметры менять при первой установке не нужно — значения по умолчанию рассчитаны на обычный ресторан. Полный справочник: Параметры настройки.

Файл должен лежать в профиле той учётной записи, под которой работает iikoFront

%APPDATA% у каждого пользователя свой. Если iikoFront запускается под отдельной учётной записью (например, как служба), файл нужен в её профиле. Проверить просто: при запуске плагин пишет в журнал полный путь к файлу, который он прочитал.

Файла нет — плагин создаст его сам

Если шаг пропустить, при первом запуске плагин создаст venue.config по правильному пути со значениями по умолчанию и напишет этот путь в журнал. Токен всё равно придётся вписать и перезапустить iikoFront.


Шаг 6. Проверочный запуск

Запустите iikoFront и откройте журнал:

%APPDATA%\iiko\CashServer\Logs\plugin-Broni.Front.Plugin.log

Признаки нормального старта:

  • запись о подключении плагина к хосту front.api;
  • строка старта с путём к прочитанному venue.config;
  • сообщение об успешной синхронизации зеркала броней (mirror);
  • отсутствие строк уровня ERROR.

Теперь проверьте на реальной брони: посадите гостя за забронированный через Брони стол, откройте заказ и перейдите к расчёту. В счёте должна появиться «Скидка Брони» с рассчитанной суммой, а в журнале — строка о применении скидки с номером брони.

Скидки нет?

Загляните в Диагностику — там разобраны частые причины: стол не сопоставлен, бронь вне интервала действия, зеркало не синхронизировалось.


Шаг 7. Проверочный режим без применения скидки

Плагин применяет скидку сразу — отдельно «включать боевой режим» не нужно. Если на новой площадке хочется сначала прогнать сценарий вхолостую, добавьте в venue.config служебный параметр:

<add key="dryRun" value="true" />

и перезапустите iikoFront. В этом режиме плагин делает всё, кроме собственно применения скидки, и пишет в журнал строки вида:

[dryRun] would apply discount …

Такая строка означает: бронь найдена, сумма рассчитана, применение пропущено намеренно.

Чтобы вернуться к обычной работе, удалите эту строку (или поставьте value="false") и снова перезапустите iikoFront.

Изменение настроек требует перезапуска

Плагин читает venue.config только при запуске. Любая правка вступает в силу после перезапуска iikoFront.


Проверка установки

Пройдите полный сценарий на тестовой брони:

  1. Создайте бронь в Брони на стол этого ресторана.
  2. Посадите гостя, откройте заказ на этом столе в iikoFront.
  3. Добавьте позиции и перейдите к расчёту → в счёте должна появиться «Скидка Брони» с рассчитанной суммой.
  4. Закройте счёт оплатой.
  5. Через несколько минут проверьте в личном кабинете партнёра, что визит отобразился как состоявшийся.
  6. Там же, в разделе Интеграции → iiko, площадка должна отображаться как активная с текущей версией плагина.

Если все шесть пунктов прошли — установка завершена.

Плагин сам отмечается на связи

Пока iikoFront работает, плагин периодически сообщает Брони, что он жив, и передаёт свою версию и размер очереди неотправленных счетов. Так на стороне Брони сразу видно, что площадка замолчала, — а не выясняется задним числом, по несошедшимся визитам. На кассе это никак не проявляется: если сообщить о себе не удалось, плагин просто продолжает работать.


Обновление

Обновление ставится поверх предыдущей версии:

  1. Закройте iikoFront.
  2. Удалите папку Broni.Front.Plugin и распакуйте новый архив.
  3. Запустите iikoFront.

Ничего сохранять и возвращать не нужно: настройки площадки (venue.config), зеркало броней и очередь счетов лежат в %APPDATA%\Broni.Front.Plugin\, а в папке плагина нет ни одного файла с вашими значениями — только образец venue.config.sample. Поэтому удаление папки целиком безопасно и является штатным способом обновления.

Временное отключение

Добавьте точку в начало имени папки:

…\Plugins\.Broni.Front.Plugin\

iikoFront пропускает такие каталоги. Перезапустите iikoFront — плагин не загрузится. Чтобы вернуть, уберите точку и снова перезапустите.

Удаление

Закройте iikoFront, удалите папку …\Plugins\Broni.Front.Plugin\ и, при необходимости, %APPDATA%\Broni.Front.Plugin\ — там лежат настройки площадки (venue.config с токеном), зеркало броней и очередь счетов. Тип скидки в iikoOffice можно оставить — сам по себе он ни на что не влияет.