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> всегда заменяет ранее указанные дополнительные суммы новыми, если NotifTypeDelta или Overlay .
  • <AdditionalGuestAmounts> может быть отправлен независимо от базовых ставок только в том случае, если NotifType имеет значение Delta . <BaseByGuestAmts> необходимо указать, если NotifType имеет Overlay .
  • Пустой элемент <AdditionalGuestAmounts> с NotifType , установленным на Delta удаляет существующие дополнительные суммы, не влияя на базовые ставки.
  • Они применяются с использованием валюты, указанной в <BaseByGuestAmt> .

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

  • Если пользователь ищет троих взрослых, в качестве базовой ставки будет выбрана стоимость двухместного размещения, а сверху будет применена дополнительная сумма за 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.10.2021 по 31.12.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.10.2021 по 31.12.2021 и заменить их новыми указанными расценками за размещение.

Например, если это сообщение было отправлено после сообщения «Добавить тарифы», тарифы для заполняемости 1, 2 и 3 будут удалены, и будет сохранён только новый тариф для заполняемости 1. Вы также можете указать более короткий диапазон дат (например, 20.12.2021 и 31.12.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.10.2021 по 31.12.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.10.2021 по 31.12.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.10.2021 по 31.12.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.10.2021 по 31.12.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.10.2021 по 31.12.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.05.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, связанный с ошибкой. Используется только значение 12 (Processing exception) .
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer Код ошибки OpenTravel Alliance (ERR), связанный с ошибкой. Используется только значение 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>