Транзакция (данные о собственности)

Запросы

Синтаксис

В сообщении Transaction (Property Data) используется следующий синтаксис:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
             id="message_ID"
             partner="partner_key">
  <PropertyDataSet action="[overlay|delta]">
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>HotelID</Property>
    <RoomData>
      <!-- (Required) One room ID per RoomData element -->
      <RoomID>RoomID</RoomID>
      <Name>
        <Text text="room_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="room_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the rate plans allowed for this room type to
        those listed here. If specified, don't specify AllowableRoomIDs. -->
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID</AllowablePackageID>
      </AllowablePackageIDs>
      <Capacity>max_number_of_occupants</Capacity>
      <AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
      <ChildCapacity>max_number_of_child_occupants</ChildCapacity>
      <OccupancySettings>
        <MinOccupancy>min_number_of_occupants</MinOccupancy>
        <MinAge>min_age_of_occupants</MinAge>
      </OccupancySettings>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="bed_width"/>
             <Length unit="cm" number="bed_length"/>
           </Bed>
           <!-- Include with any additional beds. -->
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>[shared|private]</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>[smoking|non_smoking]</Smoking>
        <BathAndToilet relation="[together|separate]">
          <Bath bathtub="[false|true]" shower="[false|true]"/>
          <Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <!-- (Optional) Defines the type of views from the room. -->
          <!-- Example: <OceanView/> -->
        </Views>
      </RoomFeatures>
    </RoomData>
    <PackageData>
      <!-- (Required) One package ID per PackageData element -->
      <PackageID>PackageID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the room types allowed for this rate plan to
        those listed here. If specified, don't specify AllowablePackageIDs. -->
      <AllowableRoomIDs>
        <AllowableRoomID>RoomID</AllowableRoomID>
      </AllowableRoomIDs>
      <!-- Add Loyalty point information -->
      <MilesIncluded>
        <LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
        <!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
        <NumberOfMiles>integer</NumberOfMiles>
      </MilesIncluded>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      ...
      <Meals>
        <Breakfast
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
        <Dinner
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
      </Meals>
      <CheckinTime>checkin_time</CheckinTime>
      <CheckoutTime>checkout_time</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

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

Сообщение «Транзакция (данные об объекте недвижимости)» содержит следующие элементы и атрибуты:

Элемент / @Атрибут События Тип Описание
Transaction 1 Complex element В реализации ARI это корневой элемент сообщения, определяющего типы номеров и пакеты услуг для одного объекта недвижимости.
Transaction / @timestamp 1 DateTime Дата и время создания этого сообщения.
Transaction / @id 1 string Уникальный идентификатор для данного запроса. Это значение возвращается в ответном сообщении. Допустимые символы: az, AZ, 0-9, _ (подчеркивание) и - (тире).
Transaction / @partner 1 string Партнерская учетная запись для этого сообщения. Это строковое значение соответствует значению "Партнерский ключ", указанному на странице настроек учетной записи в Hotel Center.

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

Transaction / PropertyDataSet 1.. PropertyDataSet Контейнер для определения типов номеров и пакетов услуг для одного объекта недвижимости.

Рекомендуется отправлять <PropertyDataSet> только один раз, и обновлять его следует только в случае необходимости внесения изменений.

Transaction / PropertyDataSet / @action 0..1 enum

Тип обновления, применяемого к определениям стоимости номеров.

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

  • overlay : Заменяет все ранее определенные <RoomData> и <PackageData> для свойства. Допустимы только <RoomData> и <PackageData> из текущего сообщения.
  • delta : Добавляет ранее неопределенные <RoomData> и <PackageData> или изменяет существующие.

Этот атрибут является необязательным и по умолчанию имеет значение delta , если не указан.

Transaction / PropertyDataSet / Property 1 string Уникальный идентификатор объекта недвижимости. Это значение должно совпадать с идентификатором отеля, указанным с помощью <id> в элементе <listing> в ленте списка отелей. Идентификатор отеля также указан в Hotel Center .
Transaction / PropertyDataSet / RoomData 0..n RoomData

Описывает комнату.

Примечание: Требуется наличие хотя бы одного из следующих типов данных: <RoomData> или <PackageData> .

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Уникальный идентификатор типа номера. Это значение используется в качестве ссылки на атрибут InvTypeCode в элементе <StatusApplicationControl> в сообщениях <OTA_HotelAvailNotifRQ> , <OTA_HotelRateAmountNotifRQ> и <OTA_HotelInvCountNotifRQ> .
Transaction / PropertyDataSet / RoomData / Name 1 Name Контейнер для названия категории номера на одном или нескольких языках.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Указывает название категории номера на одном из языков.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string Название категории номера на языке, указанном в атрибуте language .
Transaction / PropertyDataSet / RoomData / Description 1 Name Контейнер для описания категории номера на одном или нескольких языках.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Указывает описание категории номера на одном из языков.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string Описание категории номера на языке, указанном в атрибуте language .
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string Двухбуквенный языковой код .
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Контейнер для элементов <AllowablePackageID> .

Если указан параметр <AllowablePackageIDs> , то тип номера, идентифицированный параметром <RoomID> в родительском элементе <RoomData> , может сочетаться только с тарифными планами, определенными элементами <AllowablePackageID> .

Если <AllowablePackageIDs> не указан, тип номера, идентифицированный параметром <RoomID> в родительском элементе <RoomData> может быть объединен с любым тарифным планом.

Используйте либо <AllowablePackageIDs> , либо <AllowableRoomIDs> , но не оба одновременно.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Указывает PackageID тарифного плана, который можно комбинировать с данным типом номера. Тарифный план определяется комбинацией пакета, тарифов и доступности. PackageID соответствует RatePlanCode в сообщениях OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer Максимальное количество взрослых и детей, которое может физически вместить номер. Это значение должно быть больше или равно любому значению NumberOfGuests , которое вы указываете вместе с тарифами.

Значение параметра <Capacity> должно быть положительным целым числом от 1 до 99 включительно. Пример можно посмотреть здесь .

Примечание: Если параметр <Capacity> не задан, количество разрешенных гостей считается неограниченным. Если этот параметр не задан, но определены параметры ExtraGuestCharges или AdditionalGuestAmounts , цены могут быть сгенерированы для любого количества гостей. Мы рекомендуем задать параметр <Capacity> , если определены параметры ExtraGuestCharges или AdditionalGuestAmounts чтобы гарантировать, что цены не будут отображаться для недопустимых вариантов размещения.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer Максимальное количество взрослых, которое может физически вместить номер. Это значение должно быть больше или равно любому значению NumberOfGuests , которое вы указываете вместе с тарифами.

Значение параметра <AdultCapacity> должно быть положительным целым числом от 1 до 99 включительно. Пример можно посмотреть здесь .

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer Максимальное количество детей, которое может физически вместить комната.

Значение параметра <ChildCapacity> должно быть положительным целым числом от 1 до 99 включительно. Пример можно посмотреть здесь .

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings Настройки, позволяющие ограничивать или изменять требования к количеству людей в номере.

Элемент <OccupancySettings> принимает в качестве дочерних элементов следующие элементы:

  • <MinOccupancy> : Минимальное количество гостей, которое может разместиться в номере. Например, если установлено значение 2 , этот номер нельзя забронировать для одного гостя.

    Значение параметра <MinOccupancy> должно быть положительным целым числом от 1 до 99 включительно.

  • <MinAge> : Минимальный возраст для всех гостей, проживающих в номере. Например, если установлено значение 18 , этот номер можно забронировать только для групп, в которых все гости достигли 18 лет или старше.

    Значение параметра <MinAge> должно быть положительным целым числом от 0 до 99 включительно.

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

Не все дочерние элементы обязательно должны быть включены.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL URL-адрес и, при необходимости, подпись к фотографии указанного номера или пакета номеров. Для номера или пакета номеров можно указать несколько <PhotoURL> .

Этот элемент принимает следующие дочерние элементы:

  • <URL> : Указывает местоположение фотографии. Местоположение должно быть общедоступным (не за брандмауэром) и должно включать протокол ( http:// ).
  • <Caption> : Определяет подпись к фотографии. Этот элемент принимает один дочерний элемент, <Text> , который имеет два обязательных атрибута: Text и language . Атрибут Text — это подпись, а атрибут language задает двухбуквенный код языка, например en .
<PhotoURL>
 <URL>http://www.example.com/image1.jpg</URL>
 <Caption>
  <Text text="A bright way to enjoy your
   mornin' cuppa tea." language="en"/>
  <Text text="Une façon lumineuse pour profiter
   de votre tasse de thé." language="fr"/>
 </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / RoomFeatures 0..1 <RoomFeatures> Содержит информацию об особенностях номера.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 enum

Указывает на стиль номера в японском отеле.

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

  • western : Номер в западном стиле с кроватями.
  • japanese : Комната в японском стиле с футонами.
  • japanese_western : Номер в японско-западном стиле, оборудованный как кроватями западного типа, так и футонами в японском стиле.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object В номере столько <Bed> , сколько в нем есть. Обратите внимание, что японские футоны здесь учитывать не следует.

Каждая <Bed> имеет следующие характеристики:

  • size (необязательно): Допустимые значения: single , semi_double , double , queen и king .
Каждый элемент <Bed> имеет следующие дочерние элементы:
  • <Width> (необязательно): Задает ширину кровати. Должен содержать значение атрибута " unit измерения" в cm и number атрибута, указывающий ширину кровати в целых сантиметрах.
  • <Length> (необязательно): Задает длину кровати. Должен содержать атрибут unit со значением cm и атрибут number с длиной кровати в целых сантиметрах.
Пример:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite 0.. enum Добавьте этот элемент, если номер является люксом.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Добавьте этот элемент, если это капсульный номер.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Независимо от того, делится ли эта комната с другими жильцами, такими как владельцы или другие гости, допустимыми являются shared и private ценности.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Укажите этот элемент, если данное помещение представляет собой жилье на открытом воздухе, не имеющее стационарных стен, водопровода и системы климат-контроля. Например, гостиничные номера не являются жильем на открытом воздухе, в то время как кемпинги, где гости размещаются в палатках, и парки для автодомов, куда гости приезжают на собственных автодомах, являются жильем на открытом воздухе.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Предусмотреть этот элемент следует, если помещение приспособлено для людей с ограниченной подвижностью.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Указывает, является ли номер номером для некурящих или для курящих. Допустимые значения: non_smoking и smoking .
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Содержит информацию о наличии ванны и туалета в номере.

Атрибут:

  • relation (необязательно): Указывает, как ванна и туалет расположены относительно друг друга. Допустимые значения: together , например, ванная комната, где ванна и туалет находятся вместе в одном помещении; и separate , где для ванны и туалета выделены отдельные зоны. Этот атрибут не следует устанавливать, если в помещении нет ни ванны, ни туалета.

Данный элемент может содержать следующие дочерние элементы (по желанию):

  • <Bath> (необязательно): Наличие этого элемента указывает на то, что в комнате есть ванна.

    Атрибуты следующие:

    • bathtub (необязательно): указывает, что в ванной комнате есть ванна. Допустимые значения: 0 (или false ) и 1 (или true ).
    • shower (необязательно): указывает, что в ванной есть душ. Допустимые значения: 0 (или false ) и 1 (или true ).
  • <Toilet> (необязательно): Наличие этого элемента указывает на то, что в этом помещении есть туалет.

    Атрибуты следующие:

    • electronic_bidet (необязательно): указывает, что в унитазе установлено электронное биде . Допустимые значения: 0 (или false ) и 1 (или true ).
    • mobility_accessible (необязательно): указывает, что туалет доступен для людей с ограниченными возможностями передвижения. Допустимые значения: 0 (или false ) и 1 (или true ).

Пример:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum Этот элемент следует предусмотреть, если в номере есть отдельная ванная комната под открытым небом.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Укажите этот элемент, если в этом помещении есть кондиционер.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Добавьте этот элемент, если в комнате есть балкон или веранда.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object Допустимые варианты включают:

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

Transaction / PropertyDataSet / PackageData 0..n PackageData

Контейнер для элементов, описывающих характеристики тарифа и термины, не являющиеся частью фактического описания номера.

Примечание: Требуется наличие хотя бы одного из следующих типов данных: <RoomData> или <PackageData> .

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID в этих сообщениях соответствует RatePlanCode в сообщениях OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name Контейнер для названия пакета на одном или нескольких языках.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text Указывает название пакета на одном из языков.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string Название пакета на языке, указанном в атрибуте language .
Transaction / PropertyDataSet / PackageData / Description 1 Description Контейнер для описания упаковки на одном или нескольких языках.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text Указывает описание пакета на одном языке.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string Описание пакета на языке, указанном атрибутом language .
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string Двухбуквенный языковой код .
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Контейнер для элементов <AllowableRoomID> .

Если указан параметр <AllowableRoomIDs> , тарифный план, идентифицированный параметром <PackageID> в родительском элементе <PackageData> , может быть объединен только с типами номеров, определенными элементами <AllowableRoomID> .

Если <AllowableRoomIDs> не указан, тарифный план, идентифицированный параметром <PackageID> в родительском элементе <PackageData> может быть объединен с любым типом номера.

Используйте либо <AllowablePackageIDs> , либо <AllowableRoomIDs> , но не оба одновременно.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Указывает идентификатор номера (RoomID) типа номера, который может использоваться с данным тарифным планом. Тип номера определяется в элементе <RoomData> .
Transaction / PropertyDataSet / PackageData / MilesIncluded 0..1 MilesIncluded Добавьте информацию о бонусных баллах к пакетам услуг в зависимости от того, как определены тарифные планы или сами пакеты. Укажите элемент <MilesIncluded> внутри элемента <PackageData> , который определяет тарифный план. Элемент <MilesIncluded> имеет следующий дочерний элемент:
  • LoyaltyCampaignID : Уникальный идентификатор, который определяет конкретную программу лояльности, настроенную и обновленную в Google. Он добавляет баллы лояльности к цене номера в отеле.

    Чтобы включить элемент <MilesIncluded> , идентификатор кампании должен быть настроен в конфигурации кампании лояльности. Конкретные детали того, как Google использует баллы лояльности в результатах поиска, определяются конфигурацией кампании лояльности.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>

    Примечание: В редких случаях вы можете добавить <NumberOfMiles> под элемент <MilesIncluded> , чтобы указать, что план всегда начисляет фиксированное количество баллов, независимо от маршрута. Подробнее об <MilesIncluded> см. в <PackageData> .

Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Позволяет указать, что тариф подлежит полному возврату или отмене. Если этот параметр не указан, информация о возврате средств не отображается.

Примечание: Мы рекомендуем установить все атрибуты. Если один или несколько атрибутов не установлены, генерируется предупреждающее сообщение о состоянии ленты.

Если вы не укажете никаких параметров, ставка не будет отображаться как подлежащая возврату.

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

  • Если параметр available или refundable_until_days не задан, тариф не отображается как подлежащий возврату.
  • Если available равно 0 или false , остальные атрибуты игнорируются. Ставка не отображается как подлежащая возврату, даже если один или оба других атрибута заданы.
Transaction / PropertyDataSet / PackageData / 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 включительно.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (Настоятельно рекомендуется, если available равно true ) Указывает самое позднее время суток по местному времени отеля, когда будет удовлетворен запрос на полный возврат средств. Это можно комбинировать с refundable_until_days , чтобы указать, например, что «возврат средств возможен до 16:00 за два дня до заезда». Если refundable_until_time не задан, значение по умолчанию равно полуночи.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Указывает, включен ли завтрак в стоимость номера данного типа. Допустимые значения: 0 (или false ) и 1 (или true ).

Рекомендуется использовать <Meals> вместо <BreakfastIncluded> .

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time Заезд возможен в самое раннее время по местному времени отеля. Время должно быть менее 24:00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Максимально возможное время выезда по местному времени отеля.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Указывает, предоставляется ли в номере бесплатный доступ в интернет, в то время как в других номерах эта услуга отсутствует. Не следует устанавливать этот параметр в отеле, предоставляющем бесплатный интернет во всех номерах. Этот параметр не применяется к проводному или беспроводному интернету в номерах, который недоступен для гостей. Допустимые значения: 0 (или false ) и 1 (или true ).
Transaction / PropertyDataSet / PackageData / Meals 0..1 Object Содержит информацию о блюдах, входящих в этот набор.

Элемент <Meals> принимает два необязательных дочерних элемента, <Breakfast> и <Dinner> , которые имеют следующие атрибуты:

  • included (обязательно): Установите значение 1 (или true ), если в стоимость входит завтрак/ужин; в противном случае установите значение 0 или false .
  • in_room (необязательно): Установите значение 1 (или true ), если у гостей есть возможность позавтракать/поужинать в номере, в котором они проживают; в противном случае установите значение 0 (или false ).
  • in_private_space (необязательно): Установите значение 1 (или true ), если у гостей есть возможность завтракать/ужинать в помещении (кроме номера, в котором они проживают), где они могут избежать контакта с другими гостями; в противном случае установите значение 0 (или false ).
  • buffet (необязательно): установите значение 1 (или true ), если завтрак/ужин подается в формате "шведский стол"; в противном случае установите значение 0 (или false ).

Необязательные атрибуты используются только в том случае, если included имеет значение true.

Для корректной работы фильтров питания ( no meals , breakfast only , dinner only и breakfast and dinner ) необходимо included атрибуты <Breakfast> и <Dinner> .

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Указывает, включает ли номер бесплатную парковку, если в противном случае парковка в этом отеле была бы платной услугой. Не указывайте значение для этого элемента для отеля, предлагающего бесплатную парковку. Допустимые значения: 0 (или false ) и 1 (или true ). Значение по умолчанию — false .
Transaction / PropertyDataSet / PackageData / PhotoURL 0..1 Object (Аналогично <PhotoURL> в <RoomData> , но для пакета (например, фотографии блюд).)

Примеры

Данные о номере и пакетах услуг

Ниже приведён базовый пример того, как определить данные о номере и пакете услуг объекта недвижимости в сообщении транзакции (данные объекта недвижимости). Атрибут overlay используется для того, чтобы гарантировать, что если какие-либо данные неожиданно уже существуют, все существующие данные будут удалены и заменены данными из этого сообщения:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Description>
        <Text text="Room with a king bed" language="en"/>
      </Description>
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a king bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <MilesIncluded>
        <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      </MilesIncluded>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <Description>
        <Text text="Free breakfast rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Добавить тип номера

Ниже приведён пример того, как добавить тип номера и пакет услуг к существующим данным <Transaction> :

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_3</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_3</PackageID>
      <Name>
        <Text text="Non-Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="false"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Удалить типы номеров

Ниже приведён пример удаления существующих типов номеров и пакетов. В этом сценарии, если сообщения из разделов «Данные о номере и пакете» и «Добавить тип номера» были отправлены в Google ранее, то после получения Google показанного сообщения типы номеров King и « Double » больше не будут существовать. Обратите внимание, что удаление данных пакета влияет на общий тарифный план, определённый в сообщениях Transaction (Property Data), OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ (путём ссылки на одно и то же значение PackageID ), поэтому могут потребоваться соответствующие обновления с использованием других типов сообщений, чтобы отразить тот факт, что PackageID_2 и PackageID_3 больше не определены здесь.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a queen bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>


Ограничение тарифных планов

Ниже приведён пример использования элемента <AllowablePackageIDs> для ограничения тарифных планов, разрешенных для определённого типа номера. В этом примере номер типа Queen ( RoomID_2 ) может сочетаться только с пакетом услуг и тарифным планом, обозначенными как PackageID_1.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Ограничьте вместимость помещения.

Ниже приведён пример использования элементов <Capacity> , <AdultCapacity> , <ChildCapacity> для установки ограничений на вместимость помещений.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <Capacity>4</Capacity>
      <AdultCapacity>4</AdultCapacity>
      <ChildCapacity>3</ChildCapacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>
</Transaction>

В двухместном номере (RoomID_1) могут разместиться до 4 гостей. Кроме того, в нем могут разместиться до 4 взрослых и до 3 детей. Для бронирования этого номера необходимо соблюдение всех трех требований к вместимости. Данная конфигурация представляет собой типичный номер с двумя кроватями, на каждой из которых могут разместиться два человека. Вместимость для детей на одного человека меньше общей вместимости, поскольку в номере должен находиться как минимум один взрослый.

Расширенные примеры с <RoomFeatures> и питанием

JapaneseHotelRoomStyle не имеет значения по умолчанию. Отсутствие значения не приводит к ошибке XML, но ваше объявление не отображается в результатах поиска, когда пользователь фильтрует по типу номера или количеству кроватей.

Две односпальные кровати

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

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two single beds -->
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>private</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>non_smoking</Smoking>
        <BathAndToilet relation="separate">
          <Bath bathtub="1" shower="1"/>
          <Toilet electronic_bidet="1" mobility_accessible="1"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <LakeView/>
          <MarinaView/>
          <BeachView/>
          <ForestView/>
          <MountainView/>
          <NatureView/>
        </Views>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Две двуспальные кровати

Ниже представлен пример номера western стиле с двумя double кроватями.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two double beds-->
          <Bed size="double"></Bed>
          <Bed size="double"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Японский стиль без кровати

Ниже приведён пример номера в японском стиле без кровати. Информация о кровати для номера japanese стиле не требуется.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

японский западный с кроватью

Ниже представлен пример номера japanese_western стиле с кроватью размера king сайз».

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
        <Beds>
          <Bed size="king"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Если у партнера нет информации о количестве спальных мест в номерах japanese_western , обратитесь к следующему примеру:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>


Питание

В следующем примере определены метаданные номера и пакетов услуг, включая информацию о питании, фотографиях, а также времени заезда и выезда:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Только завтрак

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <Breakfast included="true"/>
        <!-- Dinner not included needs to be explicitly specified -->
        <Dinner included="false"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Ответы

Синтаксис

Сообщение TransactionResponse (Property Data) использует следующий синтаксис:

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

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

Сообщение TransactionResponse (Property Data) содержит следующие элементы и атрибуты:

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

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

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

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

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

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

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

Примеры

Успех

Ниже приведён ответ на сообщение об успешной обработке транзакции.

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

Проблемы

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

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