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

Параметры настройки плагина iiko

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

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

Плагин создаёт этот файл при первом запуске и записывает его полный путь в журнал. Рядом с Broni.Front.Plugin.dll лежит только образец venue.config.sample — тот же набор параметров со значениями по умолчанию и пустым токеном. Плагин его не читает; он нужен, чтобы было что скопировать.

Обновление не трогает настройки

Файл лежит не в папке плагина, поэтому «удалите папку и распакуйте новый архив» не может стереть токен площадки. Там же, в %APPDATA%\Broni.Front.Plugin\, живут зеркало броней и очередь счетов.

Изменения применяются после перезапуска iikoFront

Плагин читает файл один раз при старте.

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

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

При обычной установке заполняется только posToken. Адрес сервера Брони вводить не нужно: плагин знает его из своей сборки.


Параметры площадки

Параметр По умолчанию Описание
posToken (пусто) Токен площадки из личного кабинета партнёра. Уникален для ресторана, приравнивается к паролю. Единственный параметр, который нужно заполнить при установке.
discountTypeName Скидка Брони Название типа скидки в iikoOffice. Должно совпадать посимвольно.
applyMode flexibleSum Способ применения: flexibleSum — фиксированная сумма в рублях (рекомендуется), percent — процент от счёта. Должен соответствовать типу скидки в iikoOffice.

Полный вид файла

Ниже — venue.config ровно в том виде, в каком его создаёт плагин версии 0.4.0. Файл сформирован из исходного кода при сборке этой страницы.

venue.config
<?xml version="1.0" encoding="utf-8"?>
<!--
  Broni.Front.Plugin 0.0.0-dev — настройки площадки.
  Рабочий файл: %APPDATA%\Broni.Front.Plugin\venue.config
  Плагин создаёт его при первом запуске и пишет полный путь в журнал.
  Рядом с Broni.Front.Plugin.dll лежит только образец venue.config.sample;
  он не читается и при обновлении перезаписывается.
  Любое изменение вступает в силу только после перезапуска iikoFront.
-->
<configuration>
  <appSettings>
    <add key="posToken" value="" />
    <add key="discountTypeName" value="Скидка Брони" />
    <add key="applyMode" value="flexibleSum" />
  </appSettings>
</configuration>

Служебные параметры (меняются по указанию поддержки)

Параметров ниже в venue.config и в образце нет — плагин берёт их значения из кода. Они продолжают работать: достаточно дописать нужную строку <add key="…" value="…" /> в venue.config тем же способом, что и параметры площадки.

Без указания поддержки менять не нужно

Значения по умолчанию рассчитаны на обычный ресторан. Эти параметры описаны здесь для разбора инцидентов и настройки тестовых стендов, а не для повседневной работы.

Подключение и режим работы

Параметр По умолчанию Описание
backendBaseUrl (из сборки плагина) Адрес сервера Брони. Определяется сборкой: рабочий дистрибутив обращается к https://broni.io, тестовый — к тестовому контуру. Задаётся вручную только на стенде разработки.
dryRun false true — плагин рассчитывает скидку и пишет в журнал, но не применяет её. Способ прогнать установку вхолостую, см. проверочный режим.
resolverMode mirror Откуда берутся условия скидки: mirror — из локального зеркала, работает без интернета (рекомендуется); backend — запрос в Брони при каждом расчёте счёта, при обрыве связи скидки не будет.

Офлайн-зеркало броней

Плагин заранее скачивает будущие брони с условиями скидок и хранит их на кассе, поэтому расчёт счёта не зависит от связи. Значения по умолчанию подходят подавляющему большинству ресторанов.

Параметр По умолчанию Описание
mirror.syncIntervalSeconds 60 Как часто подтягивать новые и изменённые брони, в секундах.
mirror.fullResyncHours 6 Как часто полностью пересобирать зеркало. Страховка от пропущенных изменений. 0 — выключить.
mirror.storeDir (пусто) Каталог хранения. Пусто — %APPDATA%\Broni.Front.Plugin\reservations.
mirror.pageSize 500 Размер страницы при загрузке. Менять не требуется.
mirror.backendFallback true Если брони нет в зеркале (например, её создали минуту назад) — попробовать запросить условия у Брони онлайн.
mirror.maxStalenessMinutes 0 Через сколько минут без синхронизации перестать применять скидки. 0 — применять всегда (рекомендуется): собственный интервал действия есть у каждой брони.
mirror.windowGraceMinutes 30 Допуск на расхождение часов кассы, в минутах: на столько расширяется интервал действия брони.
mirror.retentionDays 7 Сколько дней хранить прошедшие брони перед удалением.

Отправка закрытых счетов

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

Параметр По умолчанию Описание
checkPush.enabled true Отправлять закрытые оплаченные счета в Брони. Выключать не следует: без этого не считается комиссия.
checkPush.spoolDir (пусто) Каталог очереди. Пусто — %APPDATA%\Broni.Front.Plugin\checks.
checkPush.retryIntervalSeconds 60 Интервал повторной отправки неотправленных счетов, в секундах.
checkPush.sweepIntervalSeconds 300 Интервал фоновой самопроверки: поиск счетов, пропущенных, пока плагин не работал.

Служебное состояние

Параметр По умолчанию Описание
agent.stateDir (пусто) Каталог служебного состояния плагина: настройки, полученные от Брони, и номер их ревизии. Пусто — %APPDATA%\Broni.Front.Plugin\agent. Менять не требуется.

Журналы и диагностика

Параметр По умолчанию Описание
logLevel Info Подробность журнала: Error, Warn, Info, Debug. Для разбора проблемы временно поставьте Debug.
logShip.enabled true Передавать журнал плагина в Брони, чтобы поддержка разбирала проблемы, не запрашивая файлы с кассы. Нужен заполненный posToken, иначе плагин напишет предупреждение и оставит журнал только на кассе. Какие записи попадают в Брони, решает сама Брони: logLevel выше относится к журналу на кассе, он ведётся полностью в любом случае. Отправка ошибок (sentry.dsn) от этого параметра не зависит и настраивается отдельно — см. строку ниже.
apiVersion V9 Версия интерфейса front.api. Менять только по указанию поддержки Брони.
sentry.dsn (приходит с сервера) Адрес приёмника ошибок Брони. Задаётся на стороне Брони и доставляется плагину при выходе на связь — прописывать его на кассе не нужно и в дистрибутиве его нет. Плагин отправляет туда только собственные ошибки: данные гостей и содержимое счетов не передаются. До первого успешного выхода на связь отправка ошибок выключена.
sentry.environment (из сборки плагина) Метка окружения в отчётах об ошибках: рабочий дистрибутив помечает события как production, тестовый — как dev.