OTA_HotelRateAmountNotifRQ

Запросы

Синтаксис

Сообщение 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

Тип уведомления, применяемый к каждому <RateAmountMessage> .

Допустимые значения:

Чтобы понять, как работают эти атрибуты, ознакомьтесь с примерами .

  • Overlay: удалите все тарифы за размещение для типа номера, тарифного плана и дат, указанных в <StatusApplicationControl> , и замените их новыми тарифами.
  • Remove: удалить все существующие тарифы за размещение для типа номера, тарифного плана и дат, указанных в <StatusApplicationControl> .
  • Delta: (значение по умолчанию, если NotifType не указан) Добавьте или обновите существующие тарифы на размещение для типа номера, тарифного плана и дат, указанных в <StatusApplicationControl> .
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Область действия NotifType , применяемая к каждому <RateAmountMessage> .

Допустимые значения:

  • ProductRate: (значение по умолчанию, если NotifScopeType не указан). NotifType применяется к продуктам — комбинациям типа номера ( InvTypeCode ) и тарифного плана ( RatePlanCode ).
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.

Примечание. Если у вас есть серверная часть, которая предоставляет каналы для нескольких учетных записей, это значение должно совпадать со значением атрибута partner вашего сообщения транзакции (данные о собственности) и значением атрибута ID в элементе <RequestorID> вашего сообщения <OTA_HotelAvailNotifRQ> для тот же аккаунт.

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 , чтобы явно включить понедельники.

Если установлено значение true , другие дни недели, для которых явно не установлено значение true исключаются (по сути, они отфильтровываются из дат в пределах Start и End ).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Установите значение true или 1 , чтобы явно включить вторники.

Если установлено значение true , другие дни недели, для которых явно не установлено значение true исключаются (по сути, они отфильтровываются из дат в пределах Start и End ).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Установите значение true или 1 , чтобы явно включить среду.

Если установлено значение true , другие дни недели, для которых явно не установлено значение true исключаются (по сути, они отфильтровываются из дат в пределах Start и End ).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Установите значение true или 1 , чтобы явно включить четверг.

Если установлено значение true , другие дни недели, для которых явно не установлено значение true исключаются (по сути, они отфильтровываются из дат в пределах Start и End ).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean Установите значение true или 1 , чтобы явно включить пятницу.

Если установлено значение true , другие дни недели, для которых явно не установлено значение true исключаются (по сути, они отфильтровываются из дат в полях Start и End ).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 boolean Установите значение true или 1 , чтобы явно включить субботу.

Если установлено значение true , другие дни недели, для которых явно не установлено значение true исключаются (по сути, они отфильтровываются из дат в полях Start и End ).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean Установите значение true или 1 , чтобы явно включить воскресенье.

Если установлено значение true , другие дни недели, для которых явно не установлено значение true исключаются (по сути, они отфильтровываются из дат в пределах Start и End ).

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 , необходимо указать RateTimeUnit и UnitMultiplier . В противном случае ни то, ни другое указывать не следует.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier 0..1 Integer Количество единиц RateTimeUnits , составляющих продолжительность пребывания для данного тарифа.

Например, если значение RateTimeUnits равно "Day" , UnitMultiplier , равный 5, указывает, что тарифы, указанные в этом объекте Rate , применяются к каждой ночи при 5-дневном пребывании.

Уровень заполняемости, указанный в этом объекте Rate , будет умножен на UnitMultiplier (продолжительность пребывания), чтобы получить общую стоимость проживания.

Чтобы использовать ценообразование на основе LOS , необходимо указать RateTimeUnit и UnitMultiplier . В противном случае ни то, ни другое указывать не следует.

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

Ежедневная стоимость номера без учета налогов и сборов.

Можно указать как AmountBeforeTax так и AmountAfterTax . Если AmountBeforeTax не указан, необходимо указать AmountAfterTax . Если указано AmountBeforeTax , а AmountAfterTax не указано, то налоги и сборы необходимо указать в сообщении <TaxFeeInfo> .

Если вы используете рекламные акции, скидка применяется к AmountBeforeTax ; процентные скидки также применяются к AmountAfterTax . Поскольку это не работает с некоторыми налоговыми структурами, мы настоятельно рекомендуем указывать здесь только AmountBeforeTax и использовать <TaxFeeInfo> для указания налогов и сборов.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float Ежедневная стоимость номера с учетом применимых налогов и сборов. Если указан AmountAfterTax , отдельные сообщения <TaxFeeInfo> для каждого свойства отправлять не нужно. Этот атрибут можно использовать в сочетании с AmountBeforeTax , чтобы указать как базовую, так и общую ставку, которая может быть показана пользователям в определенных регионах.

Внимание: если вы используете рекламные акции, мы настоятельно не рекомендуем использовать суммы AmountAfterTax . Если вы хотите использовать скидки, укажите налоги и сборы с помощью сообщения <TaxFeeInfo> . Ваши скидки будут затем применены к суммам AmountBeforeTax .

Примечание. Если AmountBeforeTax не указан, необходимо указать AmountAfterTax .

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 гостя, если не указано иное.

Обратите внимание: если <AdditionalGuestAmounts> содержит плату за детей, NumberOfGuests относится только к взрослым . Если <AdditionalGuestAmounts> не указано или не содержит сборов за детей, NumberOfGuests относится к общему количеству жильцов, включая взрослых и детей.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts Контейнер для сбора сборов для дополнительных гостей.

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

Дополнительные суммы для гостей применяются следующим образом:
  • Они применяются сверх базовой заполняемости. Базовая заполняемость — это наивысшая заполняемость, указанная в <BaseByGuestAmts> , которая меньше или равна количеству взрослых в поиске пользователя.
  • Они применяются до тех пор, пока заполняемость, указанная пользователем при поиске, находится в пределах вместимости помещения.
  • <AdditionalGuestAmounts> всегда заменяет ранее указанные дополнительные суммы новыми, если NotifType имеет значение Delta или Overlay .
  • <AdditionalGuestAmounts> можно отправлять независимо от базовых ставок, только если NotifType имеет значение Delta . <BaseByGuestAmts> необходимо указать, если NotifType имеет Overlay .
  • Пустой элемент <AdditionalGuestAmounts> с NotifType , установленным в значение Delta удаляет существующие дополнительные суммы, не затрагивая базовые ставки.
  • Они применяются с использованием валюты, указанной в <BaseByGuestAmt> .

Например, предположим, что базовые ставки указаны для 1 и 2 взрослых.

  • Если пользователь ищет 3 взрослых, в качестве базового будет выбран тариф на двухместное размещение, а сверх него будет применена дополнительная плата за 1 взрослого.
  • Если пользователь ищет 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 Определяет тип дополнительного гостя: взрослый или ребенок. Допустимые варианты:
  • 10: Взрослый.
  • 8: Ребенок.

AgeQualifyingCode может быть присвоено значение 10 не более чем для одного элемента AdditionalGuestAmount .

MaxAge необходимо указать, если AgeQualifyingCode равен 8 .

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer MaxAge необходимо указать, если AgeQualifyingCode равен 8 . Его нельзя указывать, если AgeQualifyingCode равен 10 .

MaxAge должно быть целым числом от 0 до 17.

Указание значения 0 отключает дочерних агентов.

Значения больше 17 будут рассматриваться как максимально допустимое значение 17 .

Несколько возрастных диапазонов детей можно указать с помощью отдельных элементов AdditionalGuestAmount . Возрастные диапазоны должны быть непрерывными и непересекающимися.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float Сумма до вычета налогов и сборов добавляется к базовой цене за каждого дополнительного гостя.

Налоги и сборы, зависящие от возраста жильцов, необходимо указывать с помощью элемента <AgeBrackets> в сообщении <TaxFeeInfo> .

Примеры

В этом разделе представлены примеры кода, в которых показано, как:

Когда вы устанавливаете значения 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 было успешно обработано.

В каждом сообщении присутствует либо <Success> , либо <Errors> .

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors Контейнер для одной или нескольких проблем, возникших при обработке сообщения OTA_HotelRateAmountNotifRQ .

В каждом сообщении присутствует либо <Success> , либо <Errors> .

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>