Запросы
Синтаксис
 Сообщение 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.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было успешно обработано. В каждом сообщении присутствует либо  | 
| 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, связанный с ошибкой. Используется только значение 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>