Сайт гостиницы: как подбирать номера для взрослых и детей

На сайте гостиницы семья указывает двух взрослых и двух детей. Система находит два двухместных номера и предлагает оплатить: суммарно четыре места есть. Но в выбранном тарифе этих номеров дети не размещаются, а в другом варианте можно поселить одного взрослого с двумя детьми в трёхместном номере. Для разработки сайта мало поля «число гостей» — нужно определить допустимое размещение внутри каждого номера.
Какой ответ должен получить гость
Перед заказом модуля бронирования решите, показывает сайт только отдельные номера или умеет собирать одно размещение из нескольких. Во втором случае в результате нужны не просто названия категорий, а понятное распределение: кто живёт в каждом номере, сколько стоит весь выбранный период и какие ограничения действуют. Гость должен иметь возможность изменить состав до оплаты.
Сначала соберите правила объекта и источник наличия. Если у гостиницы уже есть PMS или внешний модуль, проверьте, поддерживает ли он нужный подбор и что передаёт на сайт. Разработка красивой формы сама по себе не добавит недостающую логику в чужой сервис. Возможно, задача решается его настройкой; возможно, нужны свой подбор и отдельное подтверждение доступности.
Три ограничения вместо одного числа мест
Для учебной проверки ниже у каждого конкретного доступного номера есть общий предел гостей, отдельный предел взрослых и отдельный предел детей. Все три применяются одновременно. При общем пределе три значения «до двух взрослых» и «до двух детей» не разрешают заселить двух взрослых и двух детей: вместе их четверо.
В документации Booking.com Connectivity описаны отдельные максимумы общего числа проживающих, взрослых и физически размещаемых детей. Но одинаковое слово children в разных интерфейсах не гарантирует одинаковый смысл. В документации Demand API детские параметры также связаны с возрастом и правом на детскую цену. Нельзя без проверки переносить лимит льготного тарифа в поле физической вместимости собственной системы.
| ID | Всего гостей | Взрослых не больше | Детей не больше | Готовая цена за весь период | Что проверить |
|---|---|---|---|---|---|
| D1 | 2 | 2 | 0 | 4 000 ₽ | Можно разместить одного взрослого, детей нельзя |
| D2 | 2 | 2 | 0 | 4 500 ₽ | Второй такой номер не решает задачу размещения детей |
| T1 | 3 | 2 | 2 | 7 000 ₽ | Один взрослый и двое детей помещаются; двое взрослых и двое детей — нет |
| F1 | 4 | 2 | 2 | 12 500 ₽ | Вся семья может жить вместе в рамках введённых ограничений |
| Подбор по минимальной сумме | D1: один взрослый; T1: один взрослый и двое детей | 11 000 ₽ | Это два номера; при ограничении одним выбирается F1 за 12 500 ₽ | ||
Цены и номера вымышлены. Две дешёвые строки D1 и D2 вместе стоят 8 500 рублей и дают четыре места, но не допускают детей. Поэтому простой выбор по сумме цен и общему количеству мест ошибается. В учебной форме в каждом использованном номере должен быть хотя бы один взрослый. Это принятое условие модели, а не юридическая оценка размещения несовершеннолетних.
Зафиксируйте, что именно минимизирует подбор
Наш инструмент перебирает допустимые распределения без потери гостей и находит минимальную сумму готовых цен. Он учитывает ограничение на число номеров. Если суммы равны, предпочитает меньше номеров, затем стабильно выбирает один вариант по ID и распределению. Все равнозначные решения не перечисляются.
Этот результат не обязан быть лучшим для семьи. Для гостей может быть важнее жить вместе, иметь смежные двери, определённые кровати или доступную среду. Этих параметров в форме нет. Возможность ограничить подбор одним номером показывает, почему предпочтение гостя нельзя заменять единственным критерием «дешевле».
Что меняется, если цена зависит от состава
Если один и два взрослых оплачиваются по-разному, фиксированная цена номера больше не подходит. Понадобятся предложения для конкретных составов или расчёт по правилам поставщика. Возраст ребёнка может влиять на право размещения, доплату, питание и спальное место. Укажите возраст на дату проживания по принятому процессу и сверяйте источник условий, а не угадывайте его по числу детей.
Отдельно различайте категорию и физический номер. Пять строк одной категории не означают пять доступных номеров. В нашем примере каждый ID уникален и используется не больше одного раза. Для реального сайта необходимо связать подбор с актуальным остатком, ограничениями тарифа и повторной проверкой перед подтверждением.
Что передать разработчику вместе с дизайном
- Небольшую обезличенную таблицу допустимых составов и пояснение смысла каждого ограничения.
- Источник наличия и цен, ответственного за правила детей и порядок обновления этих данных.
- Примеры удачного и невозможного размещения, включая ситуацию «мест достаточно, но состав не подходит».
- Требования к результату: распределение по номерам, итог на весь срок, ограничения и действие при изменении предложения перед оплатой.
Проверьте на приёмке два взрослых и двух детей в двух номерах, тот же состав в одном, ребёнка при нулевом детском лимите и лишнего гостя сверх общей вместимости. При отсутствии решения сайт должен предложить изменить запрос или обратиться к администратору, а не расселить детей автоматически в отдельный номер или скрыто увеличить вместимость.
Посадочная страница разработки сайта гостиницы помогает выбрать состав проекта и способ подключения модуля. Этот материал дополняет её отдельным сценарием подбора, который стоит согласовать до расчёта работ. Сохраните учебное распределение как пример ожидаемого поведения, а реальные условия проверьте с владельцем объекта и поставщиком бронирования.
Подобрать номера по составу гостей и фиксированной цене
Учебные составы без возраста. В каждом используемом номере хотя бы один взрослый; одновременно соблюдаются общий, взрослый и детский максимумы. Каждая строка доступна один раз, заранее проверена на весь срок. Цена фиксирована за весь срок для любого допустимого состава. Минимум общей суммы, затем меньше номеров, затем детерминированный один вариант. Нет дат, реального наличия, связи гостей, возрастов, кроватей, питания, сборов, тарифных правил, оплаты или бронирования. Пределы формы технические, не нормативные. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.
Материалы для проверки
Если нужна реализация
Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.
