Отель: номера, PMS и гостевой сервис
Вертикаль «отель» превращает cenaly.ru в мини-PMS поверх того же движка заказов, схемы зала и броней, что и у ресторана: этажи вместо залов, номера и кровати вместо столов, фолио вместо разового чека. Это не отдельный продукт, а профиль настроек локации — при типе заведения «отель» админ-панель сама переключает терминологию и открывает нужные разделы.
Открыть: Админ-панель → Номера (тот же раздел, что «Схема зала» у ресторана — admin.cenaly.ru/tables, для отеля переименован). Раздел открывается в редакторе плана; рабочий борд номеров включается кнопкой «🛏️ Номера» в шапке — ею же переключаются обратно к схеме. Рядом живут кнопки «Типы номеров», «Тарифы», «🔌 PMS» и — у российских локаций, если не отключено расширение «Миграционный учёт», — «🛂 Миграционный учёт».
Этажи и номера#
Редактор схемы работает как обычно (Схема зала), только залы называются этажами, а вместо столов — элементы «Номер» и «Кровать» (для хостелов и общих спален). У каждого номера — подпись (нумерация с 101), и, как у стола, можно привязать QR-код камерой.
Заводить номера по одному не обязательно — кнопка «+ Добавить номера» открывает форму массового создания: диапазон (например, 201–230, максимум 500 номеров за раз), необязательный префикс, живой предпросчёт «будет создано N · этажей M», строка с номерами, которые уже существуют и будут пропущены. Тот же шаг доступен прямо в мастере онбординга при выборе вертикали «отель».
QR на номер привязывается кнопкой «Создать QR и привязать» в карточке номера, а массово — кнопкой «Создать QR для всех без кода (N)», которая проходит по всем номерам локации сразу. Печатать можно поштучно (SVG из карточки) или всё разом — листами A4.
Типы номеров и тарифы#
Кнопка «Типы номеров» открывает справочник: название (Standard/Deluxe/…), базовый тариф за ночь и вместимость. Тип назначается номеру или кровати в панели свойств на схеме — тариф оттуда автоматически подставляется в форму заселения (можно переопределить вручную на конкретном заезде).
Простейший уровень цен — сезонность: для типа номера или для всех номеров сразу задаются периоды с отдельной ценой.
Кто продаёт всерьёз, ведёт тарифные планы — отдельный менеджер рядом со справочником типов. В плане настраиваются питание (только номер, завтрак, полупансион, всё включено), производные тарифы (например, «завтрак = базовый +15 %»), цена по числу гостей с детскими возрастными корзинами и доп. местом, надбавки по дням недели, ограничения продажи (минимум и максимум ночей, окно бронирования, запрет заезда/выезда в определённые дни), политика отмены (гибкая, невозвратный, штраф в первую ночь, процент или фиксированная сумма), каналы продажи (все / только прямые / только OTA) и корпоративный код доступа. Там же — календарь цен и ограничений: цена и стоп-продажа на конкретные даты, массовая правка «тариф × период» и предпросмотр итоговой цены.
Цена ночи собирается по приоритету: календарь цен → производный тариф → собственная цена тарифного плана → сезон типа → сезон «для всех» → цена, зафиксированная при заселении → базовый тариф типа. Важно понимать две вещи: календарь сильнее договорной цены, введённой на ресепшне (отель, который ведёт календарь, ожидает именно этого), а у тарифного плана с собственной ценой сезоны не применяются вовсе — сезоны работают как запасной вариант для тех, кто планами не пользуется.
В настройках локации можно включить туристический налог — процент от тарифа с минимальной суммой за ночь, либо фиксированная сумма за ночь; налог начисляется на фолио отдельной строкой.
Заселение и выселение#
Борд номеров — рабочий экран ресепшна и службы уборки: карточка на каждый номер со статусом, балансом фолио, числом ночей, запросами гостя и кнопкой «Дозаказ», которая уводит в кассу с уже выбранным номером. Статус номера проходит по цепочке:
| Статус | Значение |
|---|---|
| Свободен | готов к заселению |
| Занят | гость проживает |
| Требует уборки | после выезда, ждёт горничную |
| Уборка | горничная убирает |
| Проверен | убран и проверен, ждёт перевода в «Свободен» |
| Не работает | выведен из эксплуатации (ремонт) |
Будущие заезды статусом номера не отображаются — они живут бронями и видны на шахматке: так номер, забронированный на следующую неделю, сегодня остаётся продаваемым.
Заселение открывает форму: тарифный план и цена за ночь (предзаполнены из типа номера) и карточка гостя — телефон, e-mail, документ, гражданство, дата рождения, заметки. Дата выезда на этом шаге не требуется: мгновенное заселение открыто «до выселения», а даты заезда-выезда есть у брони. Если гость уже останавливался раньше (совпадение по телефону или e-mail), система показывает плашку «постоянный гость» и увеличивает счётчик визитов; в карточке гостя копятся теги, аллергии, предпочтения, заметки и число неявок, а по всей базе гостей работает поиск.
При заселении открывается фолио номера, и с этого момента заказы по комнатному QR становятся возможны.
Выселение закрывает фолио одним расчётом и переводит номер в «Требует уборки»; на доске задач смены при этом появляется задача «Уборка номера N после выезда». Обратите внимание: комнатный счёт закрывает именно ресепшн при выселении — с кассы его закрыть нельзя, кнопка закрытия у комнатных счетов не показывается.
Кроме дневного борда есть шахматка (календарь на 21 день) — переключатель вида на той же странице: полосы броней и текущих заездов по номерам, видно наперёд, что свободно и когда заезжает следующий гость.
Фолио и начисления#
Фолио — лицевой счёт номера, открывается при заселении и живёт до выезда:
- каждую ночь автоматически начисляется плата за проживание — сервер проверяет отели раз в час и начисляет ночь в первый тик после 03:00 по времени локации, так что многодневное проживание копится само, без ручных действий (день заезда при этом не начисляется дважды);
- начисляется туристический налог, если включён;
- заказы, оформленные гостем из номера (room service), автоматически ложатся на фолио — привязка происходит на сервере в момент оформления заказа, сотруднику ничего вручную привязывать не нужно. Правило узкое и намеренное: на фолио попадают заказы, сделанные именно с комнатного QR-кода; пробитое на кассе, в киоске или пришедшее из агрегатора туда не уедет;
- на кассе по счёту номера доступны ручные операции: начисление, сервисный сбор, скидка, депозит и перенос позиций между счетами;
- баланс виден на карточке номера в борде и на кассе — в списке открытых счетов (в интерфейсе кассы это «счёт», термин «фолио» там не используется).
При выезде фолио закрывается одним расчётным сигналом со всеми начислениями и оплатой.
Если у отеля уже есть внешняя PMS, фолио можно не вести у нас: кнопка «🔌 PMS» переключает контур в режим внешней системы — с журналом начислений и статусами «проведено / сторно». Тогда «На счёт номера» уходит в вашу систему, а не в наш фолио.
Оговорка про адаптеры: сейчас в списке доступен только демонстрационный адаптер «Mock (демо)» — он нужен, чтобы проверить сам контур, поля подключения при нём не используются. Живые коннекторы к внешним PMS в разработке; переключаться на режим внешней системы на боевом отеле пока рано.
Room service — заказ гостя по QR#
Гость сканирует QR в номере и заказывает из меню так же, как за столиком в ресторане. Два серверных правила защищают от заказов «в никуда»:
- заказ из незаселённого номера блокируется — если по QR номера ещё нет открытого заезда, заказ автоматически отменяется с причиной «номер не заселён», а гость видит предупреждение в чек-ауте ещё до отправки заказа;
- при оформлении в занятом номере доступен способ оплаты «На счёт номера» — сумма добавляется к фолио и оплачивается при выезде вместе со всем проживанием; гость видит текст согласия с точной суммой и номером комнаты перед подтверждением.
Заявки гостя и панель приборки#
Помимо заказа еды у гостя есть кнопка сервисных заявок: полотенца, уборка, не беспокоить, побудка (с выбором времени), техническая проблема, другое. В отеле она занимает место кнопки вызова персонала — и, как и та, показывается только при включённом «вызове персонала» в настройках локации. Заявка подчиняется гейту по заселению: из свободного номера её не оформить.
На стороне персонала — блок «Запросы гостей» прямо в карточке номера на борде: счётчик активных заявок, список с типом, комментарием и временем побудки, действия «В работу» и «Готово». Обновления приходят в реальном времени.
«Мой счёт» у гостя#
В меню гостя (пункт настроек рядом с бронью и вызовом персонала) есть «Мой счёт» — гость видит список начислений (по убыванию времени) и оплат по своему фолио и итоговый баланс, без привязки к персоналу заведения. До заселения показывается пустое состояние («счёт появится после заселения»), после расчёта — отметка «Оплачено».
Брони, каналы продаж и отчёты#
Помимо мгновенного заселения у отеля есть полноценные брони с датами заезда/выезда — они видны на шахматке как отдельные полосы и переводятся в заезд одним действием на дату заезда. У брони есть источник (walk-in/админка, телефон, прямая от гостя, сайт, OTA), отмена с причиной и отметка «не приехал»; при накладке и слишком раннем заезде панель предупреждает.
Продавать можно не только конкретный номер, но и тип номера: такие брони живут неназначенными и держат квоту (сколько номеров этого типа продано на дату), а физический номер подбирается кнопкой назначения — вручную или автоматически. Блок неназначенных броней висит прямо над шахматкой, чтобы про них не забыли.
С сайта заведения гость может забронировать номер сам: выбрать даты и тариф, увидеть расчёт стоимости по сезонам и тарифному плану (с проверкой ограничений — минимума ночей, окна бронирования, стоп-продажи; максимум одной брони — 30 ночей) и получить код подтверждения. Сервер отвечает синхронно: либо подтверждает бронь и сразу закрепляет за ней свободный номер, либо честно отказывает с причиной («нет мест на эти даты», «недопустимые даты», «ограничение тарифа»). Ждать подтверждения персоналом гостю не нужно; предоплата на этом шаге не собирается. Если у локации подключён Telegram-бот, гость получает напоминания о заезде.
Каналы продаж (channel manager). Есть оба направления обмена с OTA:
- Импорт iCal — в настройках номеров вставляется ссылка экспорта из Booking.com, Airbnb или другого сервиса; внешние брони автоматически блокируют эти даты у вас, синхронизация примерно каждые 15 минут, а спорные наложения собираются в список конфликтов «разберите вручную»;
- Экспорт iCal — у каждого номера есть собственный фид (
ical-*.ics), если включена публикация занятости: ссылку добавляют календарём на стороне канала; - Двусторонний канал-менеджер (через Channex.io) — цены, ограничения и свободные номера уезжают в каналы автоматически при каждом изменении, а брони приходят обратно (неназначенными, их распределяет ресепшн). В панели подключений настраивается соответствие «тип номера × тариф» внешним, есть журнал синхронизации и кнопка «Синхронизировать сейчас», плюс ночная полная пересинхронизация.
Канал-менеджер готов технически, но подключение к живым каналам (Booking.com и другим) требует партнёрского аккаунта Channex, которого у нас пока нет: контур работает на тестовой площадке провайдера. Для реальной блокировки дат в каналах пользуйтесь импортом и экспортом iCal — они работают в обе стороны и партнёрского аккаунта не требуют.
Письма гостю. Раз в сутки отель сам пишет двум группам гостей: тем, кто заезжает завтра (напоминание о заезде), и тем, кто выехал вчера («спасибо за визит»). Письмо уходит на языке брони, а если он не указан — на языке локации. Ничего настраивать не нужно, дубликатов не бывает: одному и тому же гостю по одной броне письмо уходит один раз.
Отчёты. На борде номеров есть вкладка отчётов за период: загрузка (Occupancy), средняя цена (ADR) и доход на номер (RevPAR), а также выручка всего и отдельно по еде и напиткам, число заказов и подневная таблица «занято номеров · проживание · заказы · итого» с разбивкой по валютам.
Миграционный учёт (Россия)#
Для российских гостиниц есть отдельный контур постановки иностранных гостей на миграционный учёт — кнопка «🛂 Миграционный учёт» на борде номеров. Запись заводится автоматически при заселении; в журнале видны сроки («подать до…», «просрочено») и статусы — подготовлено, подано, подтверждено, снято с учёта при выезде. Оттуда же печатаются формы уведомлений и выгружается CSV, а реквизиты принимающей стороны заполняются один раз в настройках.
Связанные разделы#
- Схема зала — общий редактор этажей/номеров, QR-привязка
- Брони столов — тот же механизм бронирования, применённый к столикам
- Касса (POS) — вкладки фолио на кассе
- Сотрудники и смены — задачи приборки и назначение исполнителей
- Записи на услуги — похожая логика бронирования для салонов красоты
Частые вопросы#
Что если гость закажет из номера, в котором ещё никто не заселён?#
Заказ автоматически отменяется с пометкой «номер не заселён» — сервер проверяет статус заселения по каждому заказу с комнатного QR, независимо от того, что показывает клиент.
Как гость платит за room service — сразу или при выезде?#
На выбор: обычная оплата (наличные/карта на месте) или «На счёт номера» — тогда сумма попадает в фолио и оплачивается одним расчётом при выезде вместе со всем проживанием.
Можно ли синхронизировать календарь номера с Booking.com?#
Да, в обе стороны. Экспорт — iCal-ссылка номера, её добавляют календарём на стороне канала. Импорт — вставьте в настройках ссылку экспорта из Booking.com или Airbnb: внешние брони начнут блокировать даты у вас (обновление примерно каждые 15 минут). Это и есть рабочий сегодня путь. Двусторонний канал-менеджер (обмен ценами и остатками) написан, но ждёт партнёрского аккаунта у провайдера — пока он работает на тестовой площадке.
Что делает ночное начисление и можно ли его не ждать?#
Оно автоматически начисляет плату за прожитую ночь на фолио каждого заселённого номера — вручную запускать не нужно. Сервер проверяет отели раз в час и начисляет ночь сразу после 03:00 по времени вашей локации.
Пробивается ли при выселении фискальный чек?#
Нет. Выселение закрывает фолио расчётом и переводит номер в уборку; фискализация в этот путь не встроена, чек при необходимости пробивается отдельно на кассе.