Разделы и статьи

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

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

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

74f894acdb33783dba47870efafb0764.png

 

В поиске предоставляются данные на год вперед от текущей даты. Забронировать можно от 1 до 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, результат поиска покажет варианты проживания с минимальной ценой по всем доступным средствам размещения по выбранным фильтрам.

 

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

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

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

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

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

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

0831482f7e4222aa87b7fd17d1d96d5b.png

 

Передается ли НДС

В теле ответа на создание и чтение брони содержатся поля:

  • НДС проживания — booking.roomstays[].ratePlan VAT;

  • НДС услуг — booking.roomstays[].services[] VAT.

 

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

Поле taxAmount содержит сумму налогов и сборов, которую оплачивает гость при заезде согласно законодательству РФ (НДС не содержит). Например:

  • Федеральный закон № 214-ФЗ от 29 июля 2017 года;

  • Закон Краснодарского края № 3690-КЗ от 27.11.2017.

 

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

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

 

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

7143857b14e63d7d55faed5d21d5c791.png

 

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

04a362c7e2e7724d9d8a0a563062fab9.png

 

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

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

  • roomStays.fullPlacementsName;

  • roomStays.roomType.placements.

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

cac2afb163c0a4a1bf037cde5e3588fe.png

 

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

 

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

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

 

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

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


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

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

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

  • roomStays.cancellationPolicy.freeCancellationPossible;

  • roomStays.cancellationPolicy.freeCancellationDeadline;

  • roomStays.cancellationPolicy.penaltyAmount.

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

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

  • freeCancellationPossible = false;

  • freeCancellationDeadline = null;

  • penaltyAmount = 4000.

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

  • freeCancellationPossible = true;

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

  • penaltyAmount = 4000.

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

  • freeCancellationPossible = true;

  • freeCancellationDeadline = null;

  • penaltyAmount = null.

  

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

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

  • 90 pt — 866 ms;

  • 95 pt — 1050 ms.

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

  • 90 pt — 1111 ms;

  • 95 pt — 1728 ms.

Кейс: как привлечь гостей в отель и сделать их постоянными клиентами

В 2021 году в модуле бронирования TravelLine появилась программа лояльности. Отель «Вега Измайлово» первым тестировал эту фишку. В кейсе расскажем, как отель внедрил программу лояльности на сайте и каких результатов добился.
Узнать больше
Кейс: как привлечь гостей в отель и сделать их постоянными клиентами