Дашборд
📍 Город
📈 Почасовая статистика за сегодня
👥 Нагрузка на сотрудников
Последние заказы
🏙 Города доставки
Нажми на город, чтобы редактировать его зону. Каждый город — свои районы, радиус и условия доставки.
Статус доставки
Центр города и радиус
Проверка адреса клиента
Если выключен — клиент вне зоны увидит предупреждение, но сможет оформить заказ.
Когда клиент вводит адрес, сайт автоматически находит улицу из этого списка и подтверждает доставку. Если улицы не найдено — покажет предупреждение (в строгом режиме заказ не оформится). Графу «Твой район» при оформлении мы убрали.
Условия доставки
Добавить промокод
Действующие промокоды
Цены, наличие и фото
«📷» — загрузить своё фото, «↺» — вернуть оригинал, «🗑» — удалить блюдо (своё — навсегда, стандартное — можно восстановить). Цена — в рублях.
🗂 Категории меню
Новые разделы сразу появляются на сайте в ленте категорий. Блюда в созданный раздел добавляются через «+ Добавить блюдо».
🍸 Меню бара (заведение)
Панель бара (POS) всегда показывает всё меню доставки (раздел «Меню» слева) — здесь добавляются позиции, которых нет на сайте: коктейли, крепкий алкоголь, блюда только для зала. Итоговое меню бара = меню доставки + эти позиции.
➕ Добавить сотрудника
Сотрудник привязан к городу: в панели staff.html видит и меняет статусы только заказов своего города. Доступа к настройкам, зоне, промокодам и меню у него нет.
👥 Сотрудники
⚙️ Оплата доставки курьеру
Это цена, которую заведение платит курьеру за доставку одного заказа — не путать с ценой доставки для гостя (она настраивается в разделе «Города», отдельно для каждого города). Если курьеру дают ещё один заказ, а у него уже есть другой незавершённый заказ поблизости (адрес рядом по карте, в пределах указанного радиуса) — второй заказ считается «попутным» и оплачивается по сниженной ставке, как одна поездка. Близость определяется автоматически — по геокодированию адреса через Яндекс, тем же ключом, что указан в разделе «Курьеры на карте» (вкладка ниже). Ставка снимается «снимком» в момент, когда курьер берёт заказ в доставку — более позднее изменение этих настроек не меняет задним числом уже посчитанные доставки.
💰 Зарплата курьеров
Выберите курьера и период — система сама посчитает, сколько заказов он доставил. После отметки «оплачено» этот период для этого курьера больше нельзя выбрать повторно — так деньги не заплатят дважды за одни и те же доставки.
История выплат
🕒 Начало и окончание смены
Открывает и закрывает смену администратор или менеджер — не сам сотрудник. Здесь весь персонал города, а не только те, кто стоит в плановом графике ниже: во время большой загрузки можно начать смену и тому, кого в графике не было.
🗓 Добавить смену
Проверка на пересечение смен у одного сотрудника — автоматически. Сотрудник видит свои смены в своей панели (staff.html).
📅 График
🔐 Доступ по городам
Ты — главный администратор (Пенза). Создавай администраторов для других городов: они смогут входить в эту админку и управлять только своим городом (зона, заказы, дашборд). Промокоды, меню, персонал и настройки останутся только у тебя.
—
Справочник — все города России (352). Выбранный город автоматически появится в системе с центром и радиусом по умолчанию. При входе администратор города выбирает город из списка и вводит свой логин и пароль.
🌆 Городские администраторы
⚠️ Заканчиваются продукты
🚫 Блюда, снятые с продажи (продукт ≤1% остатка)
Продажа автоматически возобновится после пополнения продукта выше 1%.
🥫 Продукты на складе
📋 Технологические карты блюд
Задайте, сколько каждого продукта уходит на блюдо. При заказе продукты автоматически списываются со склада.
📜 История списаний
🗺️ Яндекс.Карты — ключ API
Чтобы видеть курьеров на карте, нужен бесплатный API-ключ JavaScript API Яндекс.Карт — получить можно в кабинете разработчика Яндекса. Ключ хранится вместе с остальными настройками заведения на сервере.
📍 Курьеры сейчас на линии
Координаты обновляются, пока у курьера открыто приложение — не только когда он «в пути» с заказом. Курьер пропадает с карты, если не выходил на связь дольше 3 минут (закрыл приложение или пропал интернет).
🎁 Бонусная программа
Баллы начисляются клиенту автоматически, когда его заказ переходит в статус «доставлен», и списываются в личном кабинете при оформлении следующего заказа. Если заказ с уже списанными баллами потом отменят — баллы вернутся клиенту.
👤 Клиенты личного кабинета
🖥️ Роль этого сервера
ID узла: —
Один и тот же «Рандэву» может стоять сразу на нескольких компьютерах: на сайте (вся база, обычно удалённо), на компьютере заведения (бар, планшеты, планшет администратора) и на отдельном компьютере кухни (кухонные мониторы). Выберите готовый набор или отметьте нужное вручную — выключенные страницы на этом сервере просто не открываются (404).
🔄 Синхронизация между серверами
Каждый сервер (сайт / бар заведения / кухня заведения) — это отдельный полный экземпляр базы. Изменения (заказы, меню, клиенты, бонусы, персонал) объединяются между всеми узлами почти мгновенно — сразу после записи и вдобавок фоновой проверкой каждые ~20 секунд на случай, если узел временно был недоступен.
Другие серверы (партнёры)
🗄️ Резервные копии базы
Автобэкапы создаются при старте сервера и вручную. Хранится до 12 копий (ротация). Файлы — в папке backups/ рядом с программой (или рядом с exe).
🖴 Ежедневный бэкап на резервный компьютер
Отдельный (четвёртый) компьютер — не узел синхронизации, он
ничего не раздаёт и ни с кем не обменивается: раз в сутки на него просто копируется файл со всей базой.
Путь может быть локальной папкой, буквой сетевого диска или сетевым путём вида \\ИМЯ-ПК\Бэкапы.
⚡ СБП — оплата по QR-коду
Реквизиты используются для формирования QR на сайте, в Telegram-приложении и в панели персонала. На боевом сайте вместо демо-стрки подключается СБП-эквайринг — тогда QR генерирует платёжная система.
🔔 Звук новых заказов на кухне
Настройка действует для всех KDS-экранов. После подтверждения заказа администратором кухня получает заказ мгновенно через WebSocket, без обновления страницы. Здесь можно отдельно включить звук, выбрать сигнал, громкость и количество повторов.
Настройка ещё не сохранена.
📡 Push-уведомления о статусе заказа
Адрес сервера с `server/push-server.js`. Клиент подпишется на push после заказа, а при смене статуса здесь уведомление придёт в приложение. Пусто — только локальные уведомления.
Push-сервер печатает этот токен в консоли при первом запуске (и сохраняет рядом в `.push-token`). Без него, если сервер запущен без переменной PUSH_API_TOKEN, разослать push всем подписчикам мог кто угодно, кто знает адрес сервера.
🧾 ККТ / ОФД, 🍷 ЕГАИС, 🥩 Меркурий и 🏷 Честный знак
Настройки для рабочего места за барной стойкой и склада. Важно: сведения в госсистемы передаются не напрямую из этой панели — здесь настраивается адрес шлюза-посредника (ККТ/ОФД, УТМ ЕГАИС, ВетИС.API «Меркурий», ГИС МТ «Честный знак»), который реализует протокол интеграции. Перед включением автоматической отправки проверьте реквизиты организации и параметры своего шлюза.
🥩 Меркурий (ВетИС.API)
Отслеживает сырьё животного происхождения (мясо, птица, молочные продукты и т.п.) по ветеринарно-сопроводительным документам (ВСД): поступление партии на склад и списание при продаже блюда. Отметьте такие продукты галочкой «🥩 Животного происхождения» в разделе «Склад и техкарты».
🏷 Честный знак (маркировка)
Вывод из оборота маркированного товара (упакованная вода, пиво и другие напитки с кодом маркировки) в момент розничной продажи. Отметьте такие позиции галочкой «🏷 Честный знак» в разделах «Меню» / «Меню бара» и укажите код маркировки (Data Matrix / SGTIN) конкретной единицы товара при продаже.
Настройки ещё не загружены.
🛡️ Защита от ДДоС и сканирования
Встроенная защита сервера: щит от потока запросов (флуд/ДДоС), временный бан адресов за сканирование несуществующих/служебных путей (типичный признак автоматического сканера уязвимостей) и лимит одновременных соединений с одного адреса. Блокировка подбора пароля по логину (после нескольких подряд неверных попыток) работает всегда, независимо от переключателя ниже — это базовая защита учётных записей, а не часть щита от ДДоС.
Настройки ещё не загружены.
Журнал (последние события)
🤖 Яндекс SmartCaptcha
Защищает вход в личный кабинет (на сайте и в Telegram-приложении) от автоматической массовой регистрации ботами — заменяет собой простую капчу («сколько будет X + Y») виджетом Яндекса. Ключи выдаются в кабинете Yandex Cloud (сервис SmartCaptcha): ключ клиента (site key) — открытый, вшивается прямо в страницу; ключ сервера (server key) — секретный, используется только здесь, на сервере, для проверки токена.
Настройки ещё не загружены.
🍸 Рабочее место бармена / POS
Отдельный кассовый экран с быстрым выбором блюд, столом/заказом, оплатой и автоматической передачей заказа на кухню. Откройте /pos на компьютере за барной стойкой.
🖥 Открыть POSНастройка ещё не сохранена.
📱 Планшет за столом (гостевое меню + заказ)
Отдельная страница /table — сначала гость выбирает свой стол, потом видит меню заведения, сам добавляет блюда и отправляет заказ на кухню (оплата — потом, как и с панели бара); есть кнопка «Позвать официанта». Тот же список столов и то же меню, что и на панели бара. Есть также отдельный /admin-tablet — планшет администратора, дублирующий панель бара (подтверждение заказов из зала, вызовы официанта).
🌐 Подключение по Wi-Fi (планшеты, бар, курьер — с других устройств)
Если устройство — ЭТОТ ЖЕ компьютер, где запущен сервер, ничего настраивать не нужно. Для отдельного устройства по Wi-Fi (планшет, бар, курьер) сервер сам создал секретный код доступа — просто откройте на этом устройстве одну из ссылок ниже, код сохранится там и вводить его второй раз не нужно.
Сменить логин
Логин, под которым главный администратор входит в панель (сейчас: —).
Сменить пароль
Резервная копия настроек
Формат — JSON. Скопируй содержимое поля, чтобы сохранить бэкап. Импорт применяет настройки на сайт.