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

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

Все настройки лежат в файле Broni.Front.Plugin.dll.config рядом с Broni.Front.Plugin.dll.

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

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

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


Подключение к Брони

Параметр По умолчанию Описание
backendBaseUrl (пусто) Адрес сервера Брони, обычно https://broni.io. Без него не работают синхронизация зеркала и отправка счетов.
posToken (пусто) Токен площадки из личного кабинета партнёра. Уникален для ресторана, приравнивается к паролю.

Скидка

Параметр По умолчанию Описание
discountTypeName Скидка Брони Название типа скидки в iikoOffice. Должно совпадать посимвольно.
applyMode flexibleSum Способ применения: flexibleSum — фиксированная сумма в рублях (рекомендуется), percent — процент от счёта. Должен соответствовать типу скидки в iikoOffice.
dryRun true true — плагин рассчитывает скидку и пишет в журнал, но не применяет её. Режим для проверки на новой площадке. В работе — false.
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 Интервал фоновой самопроверки: поиск счетов, пропущенных, пока плагин не работал.

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

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

Полный шаблон файла

Ниже — актуальный набор параметров ровно в том виде, в каком его читает плагин версии 0.1.0. Файл сформирован из исходного кода при сборке этой страницы.

Broni.Front.Plugin.dll.config
<?xml version="1.0" encoding="utf-8"?>
<!--
  Broni.Front.Plugin 0.0.0-dev — шаблон настроек для площадки.
  Файл кладётся рядом с Broni.Front.Plugin.dll.
  Любое изменение вступает в силу только после перезапуска iikoFront.
-->
<configuration>
  <appSettings>
    <add key="resolverMode" value="mirror" />
    <add key="backendBaseUrl" value="" />
    <add key="posToken" value="" />
    <add key="discountTypeName" value="Скидка Брони" />
    <add key="applyMode" value="flexibleSum" />
    <add key="dryRun" value="true" />
    <add key="apiVersion" value="V9" />
    <add key="logLevel" value="Info" />
    <add key="sentry.dsn" value="https://6c89b258af6649068b3d4e5cca3e533e@glitchtip.dev.broni.io/4" />
    <add key="sentry.environment" value="production" />
    <add key="checkPush.enabled" value="true" />
    <add key="checkPush.spoolDir" value="" />
    <add key="checkPush.retryIntervalSeconds" value="60" />
    <add key="checkPush.sweepIntervalSeconds" value="300" />
    <add key="mirror.syncIntervalSeconds" value="60" />
    <add key="mirror.storeDir" value="" />
    <add key="mirror.pageSize" value="500" />
    <add key="mirror.backendFallback" value="true" />
    <add key="mirror.maxStalenessMinutes" value="0" />
    <add key="mirror.windowGraceMinutes" value="30" />
    <add key="mirror.retentionDays" value="7" />
    <add key="mirror.fullResyncHours" value="6" />
  </appSettings>
</configuration>