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

Агент Брони для r_keeper 7 — обзор

Что делает агент

Агент — это служба Windows, которая работает на кассовом сервере r_keeper 7 и связывает его с Брони. Она:

  • заводит в r_keeper резерв под будущую бронь и снимает его при отмене брони;
  • применяет скидку гостя к счёту — суммой, по условиям брони;
  • отмечает посадку гостя, печать пречека и закрытие счёта;
  • передаёт в Брони закрытые оплаченные счета — по ним считается комиссия;
  • синхронизирует залы, столы и план зала ресторана.

Персонал ресторана с агентом не взаимодействует: официанты работают в r_keeper как обычно.

Бронь — это резерв, а не открытый заказ

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

Для отдельных площадок режим можно переключить на немедленное создание заказа — это настройка на стороне Брони, менять на кассовом сервере ничего не нужно.

Скидка применяется без интернета

Условия скидок по будущим броням агент забирает заранее и держит у себя. В момент расчёта гостя связь с Брони не нужна: скидка посчитается, даже если интернет в ресторане в этот момент лежит.

Как он подключается

Агент сам обращается к Брони по HTTPS: примерно раз в 20 секунд отправляет состояние и забирает задания. Внутри сети он работает с кассовым сервером r_keeper по локальному XML-интерфейсу.

r_keeper 7 (midserv)  ←── локальная сеть ──→  агент Брони  ──── HTTPS 443 ───→  Брони

Входящие подключения не нужны

Открывать порты наружу, выделять внешний IP или менять правила входящего трафика на межсетевом экране не требуется. Достаточно, чтобы с кассового сервера был доступен https://broni.io.

Устойчивость к обрывам связи

Всё, что нужно отправить в Брони, складывается в очередь на диске и повторяется до подтверждения. Отключение интернета не приводит к потере закрытых счетов: после восстановления связи очередь уходит сама.

Раз в 5 минут агент дополнительно сверяет недавно закрытые заказы в r_keeper со своей очередью — на случай, если сервер был выключен.

Требования

Требования делятся на две группы: бронирование работает на любой типовой установке r_keeper, скидка в счёте требует отдельной лицензии и настроенного типа скидки. Если заведение подключает Брони ради скидок (обычный случай) — нужны обе группы.

Для бронирования

Требование Значение
Где ставится Кассовый сервер r_keeper 7 (тот, где работает midserv)
ОС Windows Server 2016+ или Windows 10/11
Проверенная версия r_keeper 7.26.5
Интерфейс r_keeper XML-интерфейс midserv включён, по умолчанию порт 15151
Учётная запись r_keeper Сотрудник с правами на чтение заказов и работу с бронями
Права для установки Локальный администратор (регистрация службы Windows)
Сеть Исходящий HTTPS (443) к broni.io
Данные площадки Код привязки из личного кабинета партнёра

Дополнительно для скидки в счёте

Требование Значение Если не выполнено
Лицензия r_keeper «XML: Save Order» Приобретается у поставщика r_keeper и ставится на кассовый сервер. Нужна каждому заведению отдельно Скидка не применяется, в журнале — 5239
Тип скидки в r_keeper Допускает вторую строку скидки в одном заказе. Проверяется только опытом (см. ниже), не по настройкам Скидка применяется один раз и не пересчитывается при дозаказе, в журнале — 3053
Права станции на этот тип скидки Тип разрешён станции и сотруднику, от имени которых работает агент (коды станции и сотрудника задаются в личном кабинете) Скидка не применяется ни у кого, в журнале — 3149
Тип скидки указан в Брони Личный кабинет партнёра → Интеграции → r_keeper Агент не применяет скидку и не сообщает об ошибке — ему нечего применять

Лицензию и тип скидки готовят ДО запуска

Ошибка здесь не мешает установке: агент встанет, брони пойдут, счета уедут — и только скидка молча не появится в чеке. Поэтому лицензию покупают, а тип скидки проверяют заранее, а не в день запуска.

Как проверить тип скидки

Подходит ли тип — не видно в настройках r_keeper: типы с одинаковыми на вид флагами ведут себя по-разному, и «разрешено несколько скидок» в карточке типа ничего не гарантирует. Проверяют только опытом:

  1. Откройте пробный заказ, добавьте позицию.
  2. Примените выбранный тип скидки.
  3. Добавьте ещё позицию и примените тот же тип второй раз.

Прошла вторая строка — тип подходит. Ошибка 3053 — нужен другой тип, 3149 — у станции нет прав. Разбор обеих в Диагностике.

Проверять нужно на каждой площадке: и лицензия, и справочник скидок у каждого заведения свои.

Что появится на кассовом сервере

Всё хранится в одной папке рядом с sidecar.exe; в системе регистрируется одна служба.

Файл или каталог Что это
sidecar.exe сам агент, один исполняемый файл
sidecar.yaml настройки подключения, создаётся при привязке
secrets.bin пароль r_keeper и токен площадки, зашифрованы средствами Windows (DPAPI)
data\state.db служебный кэш отслеживаемых заказов
data\spool\ очередь отправки: pending, sent, dead
logs\sidecar.log журнал работы, ротация, хранение 7 дней

Имя службы Windows — broni-rk7-sidecar.

Пароли не покидают кассовый сервер

Учётные данные r_keeper шифруются средствами Windows и привязываются к конкретной машине. В Брони они не передаются.

Дальше

Установка Параметры настройки Диагностика