Запросы
Синтаксис
Сообщение OTA_HotelRateAmountNotifRQ
использует следующий синтаксис:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="message_ID"
TimeStamp="timestamp"
Version="3.0"
NotifType="[Overlay|Delta|Remove]"
NotifScopeType="[ProductRate]">
<POS>
<Source>
<RequestorID ID="partner_key"/>
</Source>
</POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon="boolean_value"
Tue="boolean_value"
Weds="boolean_value"
Thur="boolean_value"
Fri="boolean_value"
Sat="boolean_value"
Sun="boolean_value"
InvTypeCode="RoomID"
RatePlanCode="PackageID"
RatePlanType="[26]" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="float"
AmountAfterTax="float"
CurrencyCode="currency"
NumberOfGuests="integer"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="float"
AgeQualifyingCode="[10|8]"
MaxAge="integer"/>
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Элементы и атрибуты
Сообщение OTA_HotelRateAmountNotifRQ
имеет следующие элементы и атрибуты:
Элемент/@Атрибут | События | Тип | Описание |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Корневой элемент сообщения о тарифах. |
OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | Пространство имен XML. |
OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | Уникальный идентификатор этого сообщения запроса. Это значение возвращается в ответном сообщении. Допустимые символы: az , AZ , 0-9 , _ (underscore) и - (dash) . |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | Дата и время создания этого сообщения. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | Версия сообщения OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Тип уведомления, применяемый к каждому Допустимые значения: Чтобы понять, как работают эти атрибуты, ознакомьтесь с примерами .
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | Область действия Допустимые значения:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Контейнер для указания учетной записи партнера для этого сообщения (обычно используется, если ваш сервер предоставляет каналы цен для нескольких учетных записей партнеров). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Требуется, если <POS> присутствует. Контейнер для <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Требуется, если <POS> присутствует. Определяет партнерскую учетную запись. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Партнерский аккаунт для этого сообщения. Это строковое значение представляет собой значение «Партнерского ключа», указанное на странице настроек учетной записи в Hotel Center. Примечание. Если у вас есть серверная часть, которая предоставляет каналы для нескольких учетных записей, это значение должно совпадать со значением атрибута |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Коллекция элементов <RateAmountMessage> , определяющих ставки. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Уникальный идентификатор свойства. Это значение должно соответствовать идентификатору отеля, указанному с помощью <id> в элементе <listing> в фиде списка отелей. Идентификатор отеля также указан в Hotel Center . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Контейнер для установки цен на стоимость номера (комбинация типа номера и тарифного плана в диапазоне дат). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Определяет диапазон дат, а также идентификаторы типа номера ( InvTypeCode ) и тарифного плана ( RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | Дата начала (в зависимости от часового пояса объекта), включая диапазон дат. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Конечная дата (в зависимости от часового пояса объекта), включая диапазон дат. Должно быть равно или больше start значения. Если start и end равны, обновление применяется к этой дате. Обратите внимание, что Google поддерживает данные за три года. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Установите значение true или 1 , чтобы явно включить понедельники. Если установлено значение |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Установите значение true или 1 , чтобы явно включить вторники. Если установлено значение |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Установите значение true или 1 , чтобы явно включить среду. Если установлено значение |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Установите значение true или 1 , чтобы явно включить четверг. Если установлено значение |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Установите значение true или 1 , чтобы явно включить пятницу. Если установлено значение |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Установите значение true или 1 , чтобы явно включить субботу. Если установлено значение |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Установите значение true или 1 , чтобы явно включить воскресенье. Если установлено значение |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Уникальный идентификатор инвентаря (типа помещения). Это значение сопоставляется с <RoomID> в сообщении транзакции (данные о собственности). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Уникальный идентификатор тарифного плана. Этот идентификатор сопоставляется с <PackageID> в сообщении транзакции (данные свойства). Тарифный план дополнительно определяется и упоминается в <StatusApplicationControl> как в сообщениях <OTA_HotelRateAmountNotifRQ> , так и в сообщениях <OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Идентификатор, указывающий тип модели ценообразования ARI, применимой к этому обновлению цен. Это значение следует указывать только с использованием значения 26 при использовании модели ценообразования на основе LOS . Исключение этого атрибута указывает на то, что это обновление цен на дату . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Контейнер для коллекции элементов <Rate> . Если NotifType имеет значение "Remove" , этот элемент указывать нельзя. В противном случае этот элемент необходимо указать ровно один раз. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Контейнер для коллекции элементов <BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Единица измерения продолжительности пребывания. Единственное поддерживаемое значение — "Day" , что означает, что продолжительность пребывания будет указана в днях. Чтобы использовать ценообразование на основе LOS , необходимо указать |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Количество единиц RateTimeUnits , составляющих продолжительность пребывания для данного тарифа. Например, если значение Уровень заполняемости, указанный в этом объекте Чтобы использовать ценообразование на основе LOS , необходимо указать |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Контейнер для сбора базовых сборов. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Указывает цены на номера в указанной валюте. Цена может быть указана за размещение, используя несколько элементов <BaseByGuestAmt> , каждый из которых имеет разное значение NumberOfGuests . В противном случае цена применима к максимальному количеству гостей, определенному NumberOfGuests . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float | Ежедневная стоимость номера без учета налогов и сборов. Можно указать как Если вы используете рекламные акции, скидка применяется к |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Ежедневная стоимость номера с учетом применимых налогов и сборов. Если указан AmountAfterTax , отдельные сообщения <TaxFeeInfo> для каждого свойства отправлять не нужно. Этот атрибут можно использовать в сочетании с AmountBeforeTax , чтобы указать как базовую, так и общую ставку, которая может быть показана пользователям в определенных регионах. Внимание: если вы используете рекламные акции, мы настоятельно не рекомендуем использовать суммы Примечание. Если |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Буквенный код ISO 4217 (3) для конкретной денежной единицы. См. список поддерживаемых валют . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Максимальное количество гостей, которое может быть размещено по данному тарифу. По умолчанию — 2 гостя, если не указано иное. Обратите внимание: если |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Контейнер для сбора сборов для дополнительных гостей. Этот синтаксис полезен, если дополнительные тарифы для гостей или детей изменяются в зависимости от даты. Рассмотрите возможность использования более эффективного сообщения
Например, предположим, что базовые ставки указаны для 1 и 2 взрослых.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Указывает цены на основе типа гостя, указанного с помощью AgeQualifyingCode и, если применимо, возраста гостя, указанного с помощью MaxAge . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Определяет тип дополнительного гостя: взрослый или ребенок. Допустимые варианты:
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | MaxAge необходимо указать, если AgeQualifyingCode равен 8 . Его нельзя указывать, если AgeQualifyingCode равен 10 . Указание значения Значения больше Несколько возрастных диапазонов детей можно указать с помощью отдельных элементов |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Сумма до вычета налогов и сборов добавляется к базовой цене за каждого дополнительного гостя. Налоги и сборы, зависящие от возраста жильцов, необходимо указывать с помощью элемента |
Примеры
В этом разделе представлены примеры кода, в которых показано, как:
- Настройка базовых ставок и общих ставок
- Добавление, наложение и удаление ставок
- Добавляйте, накладывайте и удаляйте дополнительные гостевые суммы.
- Настройка тарифов на основе LOS
- Добавление, наложение и удаление ставок на основе LOS
Когда вы устанавливаете значения add
, overlay
или remove
, диапазоны дат могут быть одинаковыми или разными в зависимости от ваших целей. Например, вы можете использовать overlay
, чтобы указать только несколько недель для декабрьских праздников, а не весь диапазон, установленный для сообщения «Добавить тариф». Это заменит показатели заполняемости только на этот период.
Цена за дату
Для данного номера и тарифного плана может быть максимум 50 номеров на объект. Если тарифы одинаковы для всех номеров, вам следует просто отправить максимальное количество мест по требуемой цене. Делая это, Google делает вывод, что помещения с меньшей заполняемостью также получают ту же базовую ставку.
Настройка базовых ставок и общих ставок
Пример 1
Базовая цена (без налогов и сборов) при размещении по умолчанию (двухместный номер). В этой модели налоги и сборы для объекта недвижимости должны быть определены с помощью сообщения <TaxFeeInfo>
. Базовая ставка будет более заметна для пользователей, выполняющих поиск из определенных регионов.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Пример 2
Базовая и общая ставка за размещение по умолчанию (двойное размещение). В этой модели налоги и сборы не должны определяться отдельно с помощью сообщений <TaxFeeInfo>
. Базовая ставка будет более заметна для пользователей, осуществляющих поиск из определенных регионов.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Пример 3
Общая стоимость (с налогами и сборами) при многоместном размещении. В этой модели налоги и сборы не должны определяться отдельно с помощью сообщений <TaxFeeInfo>
.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountAfterTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Пример 4
Базовая и общая стоимость для нескольких типов номеров и тарифных планов в разных диапазонах дат.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> <RateAmountMessage> <StatusApplicationControl Start="2020-05-01" End="2020-05-31" InvTypeCode="RoomID_2" RatePlanCode="PackageID_2"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" AmountAfterTax="220.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Добавление, наложение и удаление ставок
Для каждого объекта действует ограничение в 5000 продуктов (тип номера и комбинации пакетов). Используйте типы уведомлений Overlay
или Remove
, чтобы удалить ранее определенные продукты.
Добавить тарифы
Установите для NotifType
значение Delta
, чтобы добавить тарифы на размещение для RoomID_1 и PackageID_1 в период с 20 октября 2021 г. по 31 декабря 2021 г. Обратите внимание, что Google поддерживает данные за три года.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountBeforeTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Наложение ставок
Установите для NotifType
значение Overlay
, чтобы удалить все тарифы на размещение для RoomID_1 и PackageID_1 в период с 20 октября 2021 г. по 31 декабря 2021 г. и заменить их новыми указанными тарифами на размещение.
Например, если это сообщение было отправлено после сообщения «Добавить тарифы», тарифы по занятости 1, 2 и 3 будут удалены и будет сохранен только новый тариф по занятости 1. Вы также можете установить более короткий диапазон дат (например: 20 декабря 2021 г. и 31 декабря 2021 г.), чтобы заменить только некоторые показатели занятости в определенные даты, например, в праздничные дни.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Удалить тарифы
Установите для NotifType
значение Remove
чтобы удалить все тарифы на размещение для RoomID_1 и PackageID_1 в период с 20 октября 2021 г. по 31 декабря 2021 г.
Например, если это сообщение было отправлено после любого из других сообщений-примеров, показатели занятости не будут сохранены.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Добавляйте, накладывайте и удаляйте дополнительные гостевые суммы.
Добавить суммы
Установите для NotifType
значение Delta
, чтобы добавить базовые тарифы для размещения 1 и 2, а также количество дополнительных гостей для RoomID_1 и PackageID_1 в период с 20 октября 2021 г. по 31 декабря 2021 г.
Дополнительные суммы для гостей будут применяться сверх базовой ставки, которая будет определяться заполняемостью в результате поиска пользователя. Указанное пользователем количество гостей должно соответствовать вместимости RoomID_1.
В этом примере дополнительные гостевые суммы будут применены как:
- 5 долларов США для детей в возрасте от 0 до 10 лет (включительно).
- 10 долларов США для детей в возрасте от 11 до 17 лет (включительно).
- 20 долларов для взрослых.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" /> <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" /> <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Наложенные суммы
Установите для NotifType
значение Overlay
, чтобы удалить все тарифы на размещение и все дополнительные суммы для гостей для RoomID_1 и PackageID_1 в период с 20 октября 2021 г. по 31 декабря 2021 г. и заменить их новыми указанными тарифами на размещение и дополнительными суммами.
Например, если это сообщение было отправлено после сообщения «Добавить тарифы», базовые тарифы на размещение 1 и 2 будут удалены и будет сохранен только новый базовый тариф на размещение 1. Предыдущий набор дополнительных гостевых сумм будет удален, и будет сохранен только новый набор сумм. Для дополнительных гостей теперь в качестве базовой ставки будет использоваться новый тариф за размещение 1. Обратите внимание, что после этого обновления для детей не взимается дополнительная плата.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Удалить суммы
Установите для NotifType
значение « Delete
, чтобы удалить все базовые тарифы на размещение и все дополнительные суммы для гостей для RoomID_1 и PackageID_1 в период с 20 октября 2021 г. по 31 декабря 2021 г.
Например, если это сообщение было отправлено после любого из других примеров сообщений, базовые тарифы на размещение или дополнительные суммы гостей не будут сохранены.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Удалить только дополнительные гостевые суммы
Установите для NotifType
значение Delta
с пустым элементом <AdditionalGuestAmounts>
, чтобы удалить все дополнительные гостевые суммы для RoomID_1 и PackageID_1, не затрагивая базовые тарифы в период с 20 октября 2021 г. по 31 декабря 2021 г.
Например, если это сообщение было отправлено после любого из других сообщений-примеров, будут сохранены только базовые суммы.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <AdditionalGuestAmounts/> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Цены на основе LOS
Настройка тарифов на основе LOS
Пример 1
Установите цены на проживание в течение 1, 2 и 3 ночей, начиная с 18 мая 2020 г. Общая стоимость проживания в течение 1, 2 и 3 ночей в этом примере составит 100, 180 и 240 долларов США соответственно.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="1" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="2" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="90.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2" /> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Добавление, наложение и удаление ставок на основе LOS
Добавить продолжительность пребывания
При ценообразовании на основе LOS операция Delta
позволяет постепенно обновлять тарифы для диапазонов дат регистрации, указанных в <StatusApplicationControl>
, и для всех сроков пребывания, указанных UnitMultiplier
каждого дочернего элемента Rate
.
Для каждой применимой даты заезда и продолжительности пребывания необходимо указать все показатели заполняемости.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Наложение продолжительности пребывания
При ценообразовании на основе LOS операция Overlay
заменяет тарифы для всех сроков пребывания продукта и диапазона дат регистрации, указанных в <StatusApplicationControl>
.
В этом сообщении тарифы на размещение для всех сроков пребывания в указанные даты прибытия будут удалены и заменены тарифом на двухместное размещение, который определен только для продолжительности пребывания 3.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Удалить продолжительность пребывания
При ценообразовании на основе LOS операция Remove
удаляет тарифы для всех сроков пребывания продукта и диапазона дат регистрации, указанных в <StatusApplicationControl>
.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ответы
Синтаксис
Сообщение OTA_HotelRateAmountNotifRS
использует следующий синтаксис:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="timestamp"
EchoToken="echo_token"
Version="3.0">
<!-- Either Success or Errors will be populated. -->
<Success/>
<Errors>
<Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>
Элементы и атрибуты
Сообщение OTA_HotelRateAmountNotifRS
имеет следующие элементы и атрибуты:
Элемент/@Атрибут | События | Тип | Описание |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Корневой элемент для ответа на сообщение о доступности. |
OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | Дата и время создания этого сообщения. |
OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Уникальный идентификатор из связанного сообщения OTA_HotelRateAmountNotifRQ . |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Указывает, что сообщение OTA_HotelRateAmountNotifRQ было успешно обработано. В каждом сообщении присутствует либо |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Контейнер для одной или нескольких проблем, возникших при обработке сообщения OTA_HotelRateAmountNotifRQ . В каждом сообщении присутствует либо |
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Описание ошибки, возникшей при обработке сообщения OTA_HotelRateAmountNotifRQ . Подробную информацию об этих ошибках можно найти в разделе «Сообщения об ошибках статуса фида» . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | EWT OpenTravel Alliance (тип предупреждения об ошибке), связанный с ошибкой. Используется только значение 12 (Processing exception) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | ERR (код ошибки) OpenTravel Alliance, связанный с ошибкой. Используется только значение 450 (Unable to process) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | Статус исходного запроса. Используется только значение NotProcessed . |
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | Идентификатор Google для проблемы. Подробную информацию об этих ошибках можно найти в разделе «Сообщения об ошибках статуса фида» . |
Примеры
Успех
Ниже приведен ответ на успешно обработанное сообщение OTA_HotelRateAmountNotifRQ.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Success/> </OTA_HotelRateAmountNotifRS>
Ошибки
Ниже приведен ответ на сообщение OTA_HotelRateAmountNotifRQ, которое не было обработано из-за ошибок.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Errors> <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error> </Errors> </OTA_HotelRateAmountNotifRS>