База знаний

Узнайте о главных возможностях наших решений. Получите помощь, когда вам понадобится.

Search API — поиск доступных размещений

Search API — поиск доступных размещений

Ценообразование в Exely

Отель устанавливает цену на каждый тариф, категорию номера, тип места и дату. Например:


В поиске предоставляются данные на год вперед от текущей даты. Максимально количество дней между параметрами arrivalDate и departureDate равно 100. Максимальное количество дней между датой arrivalDate и текущей датой — 365.


Брутто и нетто цены

Передаются те цены, которые отельер настроит в своём личном кабинете. Мы передаем цены, не зная брутто это или нетто. Наценки и скидки создаются на стороне канала.


Фильтры в агрегационном поиске

В методе search/api/properties/room-stays/search можно указать фильтры:

По наличию питания — поле mealPreference.mealType. В запросе можно передать следующие значения:

  • All — отображение минимального по стоимости варианта проживания по каждому объекту размещения.

  • MealOnly — отображение минимального по стоимости варианта проживания с включенным в стоимость тарифа питанием по каждому объекту размещения. Если в объекте размещения отсутствует такой вариант проживания, этот объект размещения не выводится.

  • MealPriority — отображение минимального по стоимости варианта проживания с включенным в стоимость тарифа питанием по каждому объекту размещения. Если в объекте размещения отсутствуют такие варианты проживания, этот объект размещения также выводится в ответе.

По типу питания — поле mealPreference.mealsIncluded. В запросе можно передать значения возможных вариантов питания, которые доступны в ответе метода content/v1/meal-plans, а также в ответе методов content/v1/properties — отображение всей информации о доступных объектах размещения и content/v1/properties{propertyId} — отображение информации по конкретному объекту размещения.

Результат поиска показывает минимальные по стоимости варианты проживания с включенным в стоимость тарифа конкретными типом питания по каждому объекту размещения. Например, если в запросе указать только значения «BreakFast», в ответе можно получить минимальные по стоимости варианты проживания с включенным в стоимость тарифа питанием только типа «BreakFast». При этом в ответе будут отсутствовать варианты «AllInlusive» или «HalfBoard».

Фильтр по типу питания можно использовать только при наличии питания типа «MealOnly» или «MealPriority».

По минимальной и максимальной стоимости проживания — поля pricePreference.minPrice и pricePreference.maxPrice.

Эти поля являются необязательными. Если передать значения полей в API, результат поиска покажет варианты проживания с минимальной ценой по всем доступным средствам размещения по выбранным фильтрам.


Поиск раннего заезда, позднего выезда и услуг за дополнительную плату по конкретному проживанию

Вам доступен дополнительный функционал для получения раннего заезда и позднего выезда (РЗПВ) и услуг за дополнительную плату. Подробности читайте в статьях «Как каналу продавать ранний заезд и поздний выезд через Exely Connect» и «Как каналу продаж продавать услуги через Exely Connect».


Работа с апартаментами

В агрегационном поиске отображаются варианты проживания с минимальной ценой в рамках апартаментов, которые находятся по разным адресам. Чтобы все апартаменты отображались в агрегационном поиске, необходимо:

  • в настройках указать тип объекта размещения — «Апартаменты»;

  • выбрать режим для квартир и апартаментов, который подключается через службу клиентской поддержки Exely;

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

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


Налоги и сборы (кроме VAT)

Поле taxAmount содержит сумму налогов и сборов, которую оплачивает гость при заезде.


Тип питания в размещении RoomStay

Для одного RoomStay доступно только одно питание. В системе Exely отель может добавить в тариф только одну услугу с типом питания. Поэтому mealPlanCode является строковым типом данных.


Что делать, если запрос в «api/search/v1/properties/ {propertyId}/room-stays» не содержит ошибок и на него не приходит ответ


Обратите внимание на поля «arrivalDate» и «departureDate» — в них должны быть указаны даты в будущем:


Расселение гостей в номере

В результатах поиска возвращаются поля:

  • roomStays.fullPlacementsName;

  • roomStays.roomType.placements.

В placements перечислены не конкретные места, а типы условий для размещения гостей. В ответе видно, что два взрослых размещаются на основных местах, ребенок в возрасте 2 года на основном месте, а ребенок в возрасте 5 лет на дополнительном месте.


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


Расшифровка дополнительного места

Расшифровки дополнительных мест нет. Поэтому нельзя узнать — диван это или, например, детская кроватка.


Блоки доступности номеров

В результатах поиска вариантов размещений доступность зависит от выбранного отельером блока доступности в каждом тарифном плане. Подробности читайте в статье «Как работать с разными блоками доступности номеров». Тарифы передаются в каналы продаж только по одному блоку доступности.


Правила отмены бронирований

В каналы продаж передаются правила отмены бронирований, настроенные в экстранете Exely. Сумма штрафа может быть разной в зависимости от даты отмены, если у средства размещения настроены различные условия отмены.

В результатах поиска возвращаются следующие поля:

  • roomStays.cancellationPolicy.freeCancellationPossible;

  • roomStays.cancellationPolicy.freeCancellationDeadline;

  • roomStays.cancellationPolicy.penaltyAmount.

В зависимости от полученных значений в полях правила отмены интерпретируются так.

Бронирование является невозвратным, при этом штраф за отмену на текущую дату составляет 100 (в последующие даты размер штрафа может быть другим), при получении следующих значений:

  • freeCancellationPossible = false;

  • freeCancellationDeadline = null;

  • penaltyAmount = 100.

Отмена бронирования бесплатна до 30.09.2025 12:00. После этого времени штраф за отмену составит 100 (в последующие даты размер штрафа может быть другим), при получении следующих значений:

  • freeCancellationPossible = true;

  • freeCancellationDeadline = 2025-09-30T12:00;

  • penaltyAmount = 100.

Штраф за отмену не взимается при отмене в любую дату, при получении следующих значений:

  • freeCancellationPossible = true;

  • freeCancellationDeadline = null;

  • penaltyAmount = null.


Статистика времени ответа на запросы

Поиск вариантов проживаний по конкретному средству размещения:

  • 90 pt — 866 ms;

  • 95 pt — 1050 ms.

Поиск вариантов проживания с минимальной ценой по всем доступным средствам размещения:

  • 90 pt — 1111 ms;

  • 95 pt — 1728 ms.


Нужна помощь? Свяжитесь с нами

Задать вопрос