ОценитьМодификации

Обзор

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

Запросы

Синтаксис

В сообщении RateModifications используется следующий синтаксис:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <CheckinDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckoutDates>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Элементы и атрибуты

Сообщение RateModifications содержит следующие элементы и атрибуты:

Элемент / @Атрибут События Тип Описание
RateModifications 1 Complex element Корневой элемент сообщения об изменении тарифа.
RateModifications / @partner 1 string Партнерская учетная запись для этого сообщения. Это строковое значение соответствует значению "Партнерский ключ", указанному на странице настроек учетной записи в Hotel Center.

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

RateModifications / @id 1 string Уникальный идентификатор для данного запроса. Это значение возвращается в ответном сообщении. Допустимые символы: az, AZ, 0-9, _ (подчеркивание) и - (тире).
RateModifications / @timestamp 1 DateTime Дата и время создания этого сообщения.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Изменение тарифов на недвижимость. Каждое изменение тарифа применяется к одному объекту недвижимости.

Примечание: Если к одному и тому же тарифу можно применить несколько изменений, применяются все изменения. Конкретный порядок не гарантируется.

RateModifications / HotelRateModifications / @hotel_id 1 string Уникальный идентификатор объекта недвижимости. Это значение должно совпадать с идентификатором отеля, указанным с помощью <id> в элементе <listing> в ленте списка отелей. Идентификатор отеля также указан в Hotel Center .
RateModifications / HotelRateModifications / @action 0..1 enum

Если action не указано, то изменения, содержащиеся в этом элементе, добавляются или обновляются для данного отеля. Если указано action="overlay" , то сначала удаляются все ранее определенные изменения для данного отеля. Затем записываются указанные здесь изменения. Если используется action="overlay" и в этом элементе не указаны изменения, то удаляются все изменения для данного отеля.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Единовременное изменение тарифа для объекта недвижимости.

Примечание: Отладка изменений тарифов затруднена, поэтому мы рекомендуем использовать их с осторожностью. Для случаев, требующих более 200 изменений тарифов, обратитесь к своему техническому менеджеру по работе с клиентами (TAM).

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Уникальный идентификатор для изменения тарифа. Максимальное допустимое количество символов — 40. Допустимые символы: az, AZ, 0-9, _ (подчеркивание), - (тире) и . (точка).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Если идентификатор не указан и не сохранено изменение тарифа с тем же id , то сохраняется данное изменение тарифа. В противном случае, если идентификатор не указан и сохранено изменение тарифа с тем же id , то обновляется существующее изменение тарифа.

Если указано значение, оно должно быть "delete" . Если указано "delete" , сохраненное изменение тарифа с тем же id будет удалено. При использовании "delete" не следует включать дочерние элементы в <ItineraryRateModification> . Кроме того, "delete" не допускается в сочетании с <HotelRateModifications action="overlay"/> .

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Для применения изменения тарифа необходимо наличие контейнера, содержащего один или несколько диапазонов дат, определяющих момент бронирования.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Для применения изменения тарифа необходимо указать диапазон дат, в течение которых должно произойти бронирование.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Начальная дата (с учетом часового пояса объекта недвижимости), включая дату начала диапазона дат. Эта дата должна быть раньше или совпадать с end датой. Если start не указана, диапазон дат фактически неограничен с точки зрения начальной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Конечная дата (с учетом часового пояса объекта недвижимости), включая дату начала, указанную в диапазоне дат. Эта дата должна совпадать с start датой или быть позже нее. Если end не указана, диапазон дат фактически не ограничен в отношении конечной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Дни недели, разрешенные в указанном диапазоне дат. Если не указано иное, разрешены все дни недели. Каждый символ в строке обозначает день недели. Например, "MTWHF" указывает, что в указанном диапазоне дат разрешены будние дни.

Допустимые символы:

  • M на понедельник
  • T на вторник
  • W означает среду
  • H для четверга
  • F — пятница
  • S означает субботу
  • U на воскресенье

Допустима любая комбинация символов.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Указывает период времени, в течение которого должно происходить бронирование относительно даты заезда (в зависимости от часового пояса объекта размещения). Например, период бронирования может быть установлен как минимум за 7 дней, но не более чем за 180 дней до заезда.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Для применения изменения тарифа необходимо соблюдение минимального количества дней, предшествующих заезду при бронировании. Если это не указано, минимального количества дней нет.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Для применения изменения тарифа необходимо указать максимальное количество дней, предшествующих заезду при бронировании. Если это не указано, максимальное количество дней отсутствует.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Контейнер для одного или нескольких диапазонов дат, определяющих, когда должна произойти регистрация заезда, чтобы изменение тарифа было применено.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Диапазон дат, указывающий, когда должна произойти регистрация заезда, чтобы изменение тарифа вступило в силу. Этот элемент не является обязательным, если вы удаляете одно или несколько изменений тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Начальная дата (с учетом часового пояса объекта недвижимости), включая дату начала диапазона дат. Эта дата должна быть раньше или совпадать с end датой. Если start не указана, диапазон дат фактически неограничен с точки зрения начальной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Конечная дата (с учетом часового пояса объекта недвижимости), включая дату начала, указанную в диапазоне дат. Эта дата должна совпадать с start датой или быть позже нее. Если end не указана, диапазон дат фактически не ограничен в отношении конечной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Дни недели, разрешенные в указанном диапазоне дат. Если не указано иное, разрешены все дни недели. Каждый символ в строке обозначает день недели. Например, "MTWHF" указывает, что в указанном диапазоне дат разрешены будние дни.

Допустимые символы:

  • M на понедельник
  • T на вторник
  • W означает среду
  • H для четверга
  • F — пятница
  • S означает субботу
  • U на воскресенье

Допустима любая комбинация символов.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Для применения изменения тарифа необходимо указать один или несколько диапазонов дат, определяющих момент выезда.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Укажите диапазон дат, когда должно произойти выселение, чтобы изменение тарифа вступило в силу. Этот параметр не требуется, если вы удаляете одно или несколько изменений тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Начальная дата (с учетом часового пояса объекта недвижимости), включая дату начала диапазона дат. Эта дата должна быть раньше или совпадать с end датой. Если start не указана, диапазон дат фактически неограничен с точки зрения начальной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Конечная дата (с учетом часового пояса объекта недвижимости), включая дату начала, указанную в диапазоне дат. Эта дата должна совпадать с start датой или быть позже нее. Если end не указана, диапазон дат фактически не ограничен в отношении конечной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Дни недели, разрешенные в указанном диапазоне дат. Если не указано иное, разрешены все дни недели. Каждый символ в строке обозначает день недели. Например, "MTWHF" указывает, что в указанном диапазоне дат разрешены будние дни.

Допустимые символы:

  • M на понедельник
  • T на вторник
  • W означает среду
  • H для четверга
  • F — пятница
  • S означает субботу
  • U на воскресенье

Допустима любая комбинация символов.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Контейнер для отображения списка пользовательских устройств, для которых возможно изменение тарифа. Если указано, изменение тарифа применяется только в том случае, если пользователь соответствует одному из перечисленных устройств. Если не указано, это не ограничивает применение изменения тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Определяет один тип пользовательского устройства, для которого возможно изменение тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Тип устройства. Значение должно быть desktop , tablet или mobile .
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

Действия, применяемые к ставке при соблюдении всех указанных условий.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Изменяет ставку, умножая значения AmountBeforeTax и AmountAfterTax на указанный множитель.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Значения AmountBeforeTax и AmountAfterTax умножаются на это значение.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Изменяет ставку, применяя к ней указанный идентификатор правила изменения ставки.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Этот идентификатор сопоставляет тариф с определением в файле определения правил тарифов . Примечание:
  • В этом поле допускается не более 40 символов.
  • Каждая ставка может быть связана только с одним правилом расчета ставки.
  • Если к одному и тому же идентификатору правила применения применяется несколько модификаций, то правилу применяется тот идентификатор, который является наименьшим по лексикографическим параметрам.
  • Если этот идентификатор не соответствует правилу расчета тарифов в файле определения правил расчета тарифов, он считается недействительным.
В этой статье вы найдете информацию о различных вариантах получения пособий по безработице по частным тарифам.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Изменяет возможность возврата средств по данной ставке до указанного значения.

При задании атрибутов обратите внимание на следующее:

  • Данное изменение полностью переписывает параметр «Возвратимая ставка» для соответствующей ставки, а не только заполненные поля.
  • Если параметр available или refundable_until_days не задан, тариф не отображается как подлежащий возврату.
  • Если available равно 0 или false , остальные атрибуты игнорируются. Ставка не отображается как подлежащая возврату, даже если один или оба других атрибута заданы.
  • Рекомендуется задать параметр refundable_until_time ; если он не задан, используется самое раннее время (полночь).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Обязательно) Установите значение 1 или true чтобы указать, допускает ли тариф полный возврат средств; в противном случае установите значение 0 или false .
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Обязательно, если available равно true ) Указывает количество дней до заезда, за которое можно запросить полный возврат средств. Значение refundable_until_days должно быть целым числом от 0 до 330 включительно.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Рекомендуется, если available равно true ) Указывает самое позднее время суток по местному времени отеля, когда принимается запрос на полный возврат средств. Это можно комбинировать с refundable_until_days , чтобы указать, например, что «возврат средств возможен до 16:00 за два дня до заезда». Если refundable_until_time не задан, значение по умолчанию равно полуночи.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Переопределяет доступность тарифа на указанное значение. Мы поддерживаем только установку тарифа в unavailable .
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Если status="unavailable" , то тариф считается недоступным, независимо от того, существует ли для него действительная цена.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Определяет пределы продолжительности пребывания, в пределах которых может применяться данное изменение тарифа. Изменение тарифа не применяется, если продолжительность пребывания выходит за пределы минимального и максимального пределов.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Минимальное количество ночей, разрешенное для применения корректировки тарифа. Если это не указано, минимальное количество ночей не установлено.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Максимальное количество ночей, разрешенное для применения изменения тарифа во время проживания. Если это значение не указано, максимального количества ночей нет.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Указывает минимальную сумму суточных тарифов на номера (с использованием большего из значений AmountBeforeTax или AmountAfterTax ), которую необходимо превысить для применения изменения тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Значение, которое должно быть превышено для применения изменения тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Контейнер для списка тарифных планов, к которым применяется изменение тарифа. Если <RatePlans> не указан, изменение тарифа применяется ко всем тарифным планам.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Указывает тарифный план. Тарифный план определяется комбинацией пакета услуг, тарифов и доступности, как это определено в сообщениях Transaction (Property Data), OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ, а также идентифицируется по PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Уникальный идентификатор тарифного плана. Это значение сопоставляется со значением PackageID в <PackageData> в сообщении транзакции (данные объекта) и с атрибутом RatePlanCode в <StatusApplicationControl> в сообщениях <OTA_HotelRateAmountNotifRQ> и <OTA_HotelAvailNotifRQ> . Максимальное допустимое количество символов — 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Контейнер для списка типов номеров, к которым применяется изменение тарифа. Изменение тарифа применяется к каждому указанному <RoomType> . Если <RoomTypes> не указан, изменение тарифа применяется ко всем номерам.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Указывает тип номера. Тип номера определяется в элементе <RoomData> в сообщении транзакции (данные объекта недвижимости) и указывается с помощью значения <RoomID> . (Значение <RoomID> также указывается атрибутом InvTypeCode в сообщениях OTA_HotelRateAmountNotifRQ.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string Уникальный идентификатор инвентаря (типа номера). Это значение сопоставляется с <RoomID> в сообщении транзакции (данные об объекте недвижимости). Максимально допустимое количество символов — 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Контейнер для одного или нескольких диапазонов дат, определяющих способ применения корректировки тарифа, например, для учета сезонных колебаний цен.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Описывает порядок применения корректировки тарифа.

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

  • all : Применяет изменение тарифа к каждой ночи в маршруте, если все даты в маршруте совпадают с датами пребывания.
  • any : Применяет изменение тарифа ко всем ночам в маршруте, если какая-либо дата в маршруте совпадает с датой в диапазоне дат пребывания.

Этот атрибут необходимо указывать всегда.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Диапазон дат, определяющий даты, когда должно быть применено изменение тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Начальная дата (с учетом часового пояса объекта недвижимости), включая дату начала диапазона дат. Эта дата должна быть раньше или совпадать с end датой. Если start не указана, диапазон дат фактически неограничен с точки зрения начальной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Конечная дата (с учетом часового пояса объекта недвижимости), включая дату начала, указанную в диапазоне дат. Эта дата должна совпадать с start датой или быть позже нее. Если end не указана, диапазон дат фактически не ограничен в отношении конечной даты.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Дни недели, разрешенные в указанном диапазоне дат. Если не указано иное, разрешены все дни недели. Каждый символ в строке обозначает день недели. Например, "MTWHF" указывает, что в указанном диапазоне дат разрешены будние дни.

Допустимые символы:

  • M на понедельник
  • T на вторник
  • W означает среду
  • H для четверга
  • F — пятница
  • S означает субботу
  • U на воскресенье

Допустима любая комбинация символов.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Если указано иное, изменение тарифа применяется только в том случае, если пользователь находится в одной из указанных стран. Если иное не указано, изменение тарифа применяется независимо от местоположения пользователя.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Тип спецификации UserCountries.

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

Если type UserCountries установлено значение include , изменение тарифа применяется к пользователям из перечисленных стран.

Если type UserCountries имеет exclude , изменение тарифа применяется к пользователям, находящимся за пределами перечисленных стран.

Если type UserCountries не задан, он рассматривается как include , и изменение тарифа применяется к пользователям из перечисленных стран.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Указывает допустимую страну пользователя для изменения тарифа.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Код страны CLDR , например, DE или FR . Обратите внимание, что для некоторых стран код страны CLDR не совпадает с двухбуквенным кодом страны ISO. Кроме того, региональные коды CLDR не поддерживаются.

Примеры

Основное сообщение

В следующем примере показано базовое сообщение RateModifications :

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Удалить одно изменение тарифа

В следующем примере показано, как удалить одно изменение тарифа для объекта недвижимости:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

Удалить все изменения тарифов

В следующем примере показано, как удалить все изменения тарифов для объекта недвижимости:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


Наложите все изменения тарифов.

В следующем примере показано, как наложить <HotelRateModifications> на объект размещения с одним или несколькими новыми изменениями тарифов. Когда action="overlay" , все сохраненные изменения тарифов удаляются перед сохранением изменений тарифов, указанных в текущем сообщении:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Множественные действия по модификации

В следующем примере показано, как выполнить несколько действий по изменению одновременно:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Отключить тарифный план для стран-пользователей

В следующем примере показано, как ограничить доступ к тарифному плану только для пользователей из Японии ( JP ):

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Ответы

Синтаксис

Сообщение RateModificationsResponse использует следующий синтаксис:

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
  </Issues>
</RateModificationsResponse>

Элементы и атрибуты

Сообщение RateModificationsResponse содержит следующие элементы и атрибуты:

Элемент / @Атрибут События Тип Описание
RateModifications 1 Complex element Корневой элемент, указывающий на успешность или проблемы, возникшие при получении сообщения запроса на изменение тарифа.
RateModificationsResponse / @timestamp 1 DateTime Дата и время создания этого сообщения.
RateModificationsResponse / @id 1 string Уникальный идентификатор из соответствующего сообщения RateModifications.
RateModificationsResponse / @partner 1 string Это сообщение отправлено на учетную запись партнера.
RateModificationsResponse / Success 0..1 Success Указывает на то, что сообщение RateModifications было успешно обработано без предупреждений, ошибок или сбоев.

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

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

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

RateModificationsResponse / Issues / Issue 1..n Issue Описание предупреждения, ошибки или сбоя, возникшего при обработке сообщения RateModifications. Подробную информацию об этих проблемах можно найти в разделе «Сообщения об ошибках состояния ленты» .
RateModificationsResponse / Issues / Issue / @code 1 integer Идентификатор проблемы.
RateModificationsResponse / Issues / Issue / @status 1 enum

Тип возникшей проблемы.

Допустимые значения: warning , error и failure .

Примеры

Успех

Ниже приведён ответ на успешно обработанное сообщение RateModifications.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</RateModificationsResponse>

Проблемы

Ниже приведён ответ на сообщение RateModifications, которое не было обработано из-за ошибок.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</RateModificationsResponse>