Запросы
Синтаксис
 Сообщение 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.  Примечание. Если у вас есть серверная часть, которая предоставляет каналы для нескольких учетных записей, это значение должно соответствовать значению атрибута  | 
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | Контейнер для определения типов номеров и пакетов для одного объекта размещения. | 
| Transaction / PropertyDataSet / @action | 0..1 | enum | Тип обновления, применяемого к определениям стоимости номера. Допустимые значения: 
  Этот атрибут является необязательным и по умолчанию имеет значение  | 
| Transaction / PropertyDataSet / Property | 1 | string | Уникальный идентификатор свойства. Это значение должно соответствовать идентификатору отеля, указанному с помощью <id>в элементе<listing>в фиде списка отелей. Идентификатор отеля также указан в Hotel Center . | 
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Описывает комнату.  Примечание. Требуется хотя бы один из  | 
| 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | Указывает PackageID тарифного плана, который можно объединить с этим типом номера. Тарифный план определяется сочетанием пакета, тарифов и доступности. PackageIDсоответствуетRatePlanCodeв сообщениях OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ. | 
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | Максимальное количество взрослых и детей, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение   Примечание. Если  | 
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | Максимальное количество взрослых, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение  | 
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Максимальное количество детей, которое физически может разместиться в номере.  Значение  | 
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Настройки, которые могут ограничить или изменить требования к занятости комнаты.  Элемент  
 <OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Не обязательно включать все дочерние элементы. | 
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | URL-адрес и необязательная подпись к фотографии данного номера или пакета номеров. Вы можете указать более одного <PhotoURL>для комнаты или пакета комнат.Этот элемент принимает следующие дочерние элементы: 
 <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 | Обозначает стиль японского гостиничного номера. Допустимые значения: 
 | 
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Содержит столько <Bed>сколько имеется в комнате. Обратите внимание, что японские футоны сюда не следует учитывать. Каждый  
 <Bed>имеет следующие дочерние элементы:
 <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 | Содержит информацию о ванне и туалете в номере. Атрибут: 
 Элемент опционально принимает следующие дочерние элементы: 
 Пример: <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 | Допустимые варианты включают в себя:   | 
| Transaction / PropertyDataSet / PackageData | 0..n | 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Указывает RoomID типа номера, который можно объединить с этим тарифным планом. Тип комнаты определяется в элементе <RoomData>. | 
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | Добавляйте информацию о баллах лояльности в пакеты в зависимости от того, как определены тарифные планы или пакеты. Укажите элемент <MilesIncluded>в элементе<PackageData>, который определяет тарифный план.<MilesIncluded>имеет следующий дочерний элемент:
 | 
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Позволяет указать тариф как полностью возмещаемый или подлежащий отмене. Если не указано, информация о возврате средств не отображается. Примечание. Мы рекомендуем установить все атрибуты. Предупреждающее сообщение о статусе канала генерируется, если один или несколько атрибутов не установлены. Если вы не зададите никаких атрибутов, ставка не будет отображаться как возмещаемая. При настройке атрибутов обратите внимание на следующее: 
 | 
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Обязательно) Установите значение 1илиtrueчтобы указать, допускает ли тариф полный возврат средств; в противном случае установите значение0илиfalse. | 
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Обязательно, если availabletrue) Указывает количество дней до прибытия, за которое можно запросить полный возврат средств. Значение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). Предпочтительно использовать  | 
| 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 | Содержит информацию о блюдах в этом пакете.  Элемент  
  Необязательные атрибуты используются только в том случае, если   Чтобы фильтры еды (  | 
| 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, типы номеров King и Double больше не будут существовать, как только Google получит показанное сообщение. Обратите внимание, что удаление данных пакета влияет на общий тарифный план, определенный в сообщениях Transaction (Data Property), 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 -size». 
<?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 | Указывает, что сообщение транзакции было успешно обработано без предупреждений, ошибок или сбоев.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues | 0..1 | Issues | Контейнер для одной или нескольких проблем, возникших при обработке сообщения транзакции.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues / Issue | 1..n | Issue | Описание предупреждения, ошибки или сбоя, возникшего при обработке сообщения транзакции. Подробную информацию об этих проблемах можно найти в разделе «Сообщения об ошибках статуса фида» . | 
| TransactionResponse / Issues / Issue / @code | 1 | integer | Идентификатор проблемы. | 
| TransactionResponse / Issues / Issue / @status | 1 | enum | Тип возникшей проблемы.  Допустимые значения:  | 
Примеры
Успех
Ниже приведен ответ на успешно обработанное сообщение транзакции.
<?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>
Запросы
Синтаксис
 Сообщение 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.  Примечание. Если у вас есть серверная часть, которая предоставляет каналы для нескольких учетных записей, это значение должно соответствовать значению атрибута  | 
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | Контейнер для определения типов номеров и пакетов для одного объекта размещения. | 
| Transaction / PropertyDataSet / @action | 0..1 | enum | Тип обновления, применяемого к определениям стоимости номера. Допустимые значения: 
  Этот атрибут является необязательным и по умолчанию имеет значение  | 
| Transaction / PropertyDataSet / Property | 1 | string | Уникальный идентификатор свойства. Это значение должно соответствовать идентификатору отеля, указанному с помощью <id>в элементе<listing>в фиде списка отелей. Идентификатор отеля также указан в Hotel Center . | 
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Описывает комнату.  Примечание. Требуется хотя бы один из  | 
| 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | Указывает PackageID тарифного плана, который можно объединить с этим типом номера. Тарифный план определяется сочетанием пакета, тарифов и доступности. PackageIDсоответствуетRatePlanCodeв сообщениях OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ. | 
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | Максимальное количество взрослых и детей, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение   Примечание. Если  | 
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | Максимальное количество взрослых, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение  | 
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Максимальное количество детей, которое физически может разместиться в номере.  Значение  | 
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Настройки, которые могут ограничить или изменить требования к занятости комнаты.  Элемент  
 <OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Не обязательно включать все дочерние элементы. | 
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | URL-адрес и необязательная подпись к фотографии данного номера или пакета номеров. Вы можете указать более одного <PhotoURL>для комнаты или пакета комнат.Этот элемент принимает следующие дочерние элементы: 
 <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 | Обозначает стиль японского гостиничного номера. Допустимые значения: 
 | 
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Содержит столько <Bed>сколько имеется в комнате. Обратите внимание, что японские футоны сюда не следует учитывать. Каждый  
 <Bed>имеет следующие дочерние элементы:
 <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 | Содержит информацию о ванне и туалете в номере. Атрибут: 
 Элемент опционально принимает следующие дочерние элементы: 
 Пример: <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 | Допустимые варианты включают в себя:   | 
| Transaction / PropertyDataSet / PackageData | 0..n | 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Указывает RoomID типа номера, который можно объединить с этим тарифным планом. Тип комнаты определяется в элементе <RoomData>. | 
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | Добавляйте информацию о баллах лояльности в пакеты в зависимости от того, как определены тарифные планы или пакеты. Укажите элемент <MilesIncluded>в элементе<PackageData>, который определяет тарифный план.<MilesIncluded>имеет следующий дочерний элемент:
 | 
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Позволяет указать тариф как полностью возмещаемый или подлежащий отмене. Если не указано, информация о возврате средств не отображается. Примечание. Мы рекомендуем установить все атрибуты. Предупреждающее сообщение о статусе канала генерируется, если один или несколько атрибутов не установлены. Если вы не зададите никаких атрибутов, ставка не будет отображаться как возмещаемая. При настройке атрибутов обратите внимание на следующее: 
 | 
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Обязательно) Установите значение 1илиtrueчтобы указать, допускает ли тариф полный возврат средств; в противном случае установите значение0илиfalse. | 
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Обязательно, если availabletrue) Указывает количество дней до прибытия, за которое можно запросить полный возврат средств. Значение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). Предпочтительно использовать  | 
| 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 | Содержит информацию о блюдах в этом пакете.  Элемент  
  Необязательные атрибуты используются только в том случае, если   Чтобы фильтры еды (  | 
| 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, типы номеров King и Double больше не будут существовать, как только Google получит показанное сообщение. Обратите внимание, что удаление данных пакета влияет на общий тарифный план, определенный в сообщениях Transaction (Data Property), 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 -size». 
<?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 | Указывает, что сообщение транзакции было успешно обработано без предупреждений, ошибок или сбоев.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues | 0..1 | Issues | Контейнер для одной или нескольких проблем, возникших при обработке сообщения транзакции.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues / Issue | 1..n | Issue | Описание предупреждения, ошибки или сбоя, возникшего при обработке сообщения транзакции. Подробную информацию об этих проблемах можно найти в разделе «Сообщения об ошибках статуса фида» . | 
| TransactionResponse / Issues / Issue / @code | 1 | integer | Идентификатор проблемы. | 
| TransactionResponse / Issues / Issue / @status | 1 | enum | Тип возникшей проблемы.  Допустимые значения:  | 
Примеры
Успех
Ниже приведен ответ на успешно обработанное сообщение транзакции.
<?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>
Запросы
Синтаксис
 Сообщение 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.  Примечание. Если у вас есть серверная часть, которая предоставляет каналы для нескольких учетных записей, это значение должно соответствовать значению атрибута  | 
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | Контейнер для определения типов номеров и пакетов для одного объекта размещения. | 
| Transaction / PropertyDataSet / @action | 0..1 | enum | Тип обновления, применяемого к определениям стоимости номера. Допустимые значения: 
  Этот атрибут является необязательным и по умолчанию имеет значение  | 
| Transaction / PropertyDataSet / Property | 1 | string | Уникальный идентификатор свойства. Это значение должно соответствовать идентификатору отеля, указанному с помощью <id>в элементе<listing>в фиде списка отелей. Идентификатор отеля также указан в Hotel Center . | 
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Описывает комнату.  Примечание. Требуется хотя бы один из  | 
| 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | Указывает PackageID тарифного плана, который можно объединить с этим типом номера. Тарифный план определяется сочетанием пакета, тарифов и доступности. PackageIDсоответствуетRatePlanCodeв сообщениях OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ. | 
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | Максимальное количество взрослых и детей, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение   Примечание. Если  | 
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | Максимальное количество взрослых, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение  | 
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Максимальное количество детей, которое физически может разместиться в номере.  Значение  | 
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Настройки, которые могут ограничить или изменить требования к занятости комнаты.  Элемент  
 <OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Не обязательно включать все дочерние элементы. | 
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | URL-адрес и необязательная подпись к фотографии данного номера или пакета номеров. Вы можете указать более одного <PhotoURL>для комнаты или пакета комнат.Этот элемент принимает следующие дочерние элементы: 
 <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 | Обозначает стиль японского гостиничного номера. Допустимые значения: 
 | 
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Содержит столько <Bed>сколько имеется в комнате. Обратите внимание, что японские футоны сюда не следует учитывать. Каждый  
 <Bed>имеет следующие дочерние элементы:
 <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 | Содержит информацию о ванне и туалете в номере. Атрибут: 
 Элемент опционально принимает следующие дочерние элементы: 
 Пример: <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 | Допустимые варианты включают в себя:   | 
| Transaction / PropertyDataSet / PackageData | 0..n | 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Указывает RoomID типа номера, который можно объединить с этим тарифным планом. Тип комнаты определяется в элементе <RoomData>. | 
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | Добавляйте информацию о баллах лояльности в пакеты в зависимости от того, как определены тарифные планы или пакеты. Укажите элемент <MilesIncluded>в элементе<PackageData>, который определяет тарифный план.<MilesIncluded>имеет следующий дочерний элемент:
 | 
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Позволяет указать тариф как полностью возмещаемый или подлежащий отмене. Если не указано, информация о возврате средств не отображается. Примечание. Мы рекомендуем установить все атрибуты. Предупреждающее сообщение о статусе канала генерируется, если один или несколько атрибутов не установлены. Если вы не зададите никаких атрибутов, ставка не будет отображаться как возмещаемая. При настройке атрибутов обратите внимание на следующее: 
 | 
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Обязательно) Установите значение 1илиtrueчтобы указать, допускает ли тариф полный возврат средств; в противном случае установите значение0илиfalse. | 
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Обязательно, если availabletrue) Указывает количество дней до прибытия, за которое можно запросить полный возврат средств. Значение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). Предпочтительно использовать  | 
| 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 | Содержит информацию о блюдах в этом пакете.  Элемент  
  Необязательные атрибуты используются только в том случае, если   Чтобы фильтры еды (  | 
| 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, типы номеров King и Double больше не будут существовать, как только Google получит показанное сообщение. Обратите внимание, что удаление данных пакета влияет на общий тарифный план, определенный в сообщениях Transaction (Data Property), 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 -size». 
<?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 | Указывает, что сообщение транзакции было успешно обработано без предупреждений, ошибок или сбоев.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues | 0..1 | Issues | Контейнер для одной или нескольких проблем, возникших при обработке сообщения транзакции.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues / Issue | 1..n | Issue | Описание предупреждения, ошибки или сбоя, возникшего при обработке сообщения транзакции. Подробную информацию об этих проблемах можно найти в разделе «Сообщения об ошибках статуса фида» . | 
| TransactionResponse / Issues / Issue / @code | 1 | integer | Идентификатор проблемы. | 
| TransactionResponse / Issues / Issue / @status | 1 | enum | Тип возникшей проблемы.  Допустимые значения:  | 
Примеры
Успех
Ниже приведен ответ на успешно обработанное сообщение транзакции.
<?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>
Запросы
Синтаксис
 Сообщение 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.  Примечание. Если у вас есть серверная часть, которая предоставляет каналы для нескольких учетных записей, это значение должно соответствовать значению атрибута  | 
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | Контейнер для определения типов номеров и пакетов для одного объекта размещения. | 
| Transaction / PropertyDataSet / @action | 0..1 | enum | Тип обновления, применяемого к определениям стоимости номера. Допустимые значения: 
  Этот атрибут является необязательным и по умолчанию имеет значение  | 
| Transaction / PropertyDataSet / Property | 1 | string | Уникальный идентификатор свойства. Это значение должно соответствовать идентификатору отеля, указанному с помощью <id>в элементе<listing>в фиде списка отелей. Идентификатор отеля также указан в Hotel Center . | 
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Описывает комнату.  Примечание. Требуется хотя бы один из  | 
| 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | Указывает PackageID тарифного плана, который можно объединить с этим типом номера. Тарифный план определяется сочетанием пакета, тарифов и доступности. PackageIDсоответствуетRatePlanCodeв сообщениях OTA_HotelRateAmountNotifRQ и OTA_HotelAvailNotifRQ. | 
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | Максимальное количество взрослых и детей, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение   Примечание. Если  | 
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | Максимальное количество взрослых, которое физически может разместиться в номере. Оно должно быть больше или равно любому значению NumberOfGuests, которое вы отправляете вместе со ставками. Значение  | 
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Максимальное количество детей, которое физически может разместиться в номере.  Значение  | 
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Настройки, которые могут ограничить или изменить требования к занятости комнаты.  Элемент  
 <OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Не обязательно включать все дочерние элементы. | 
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | URL-адрес и необязательная подпись к фотографии данного номера или пакета номеров. Вы можете указать более одного <PhotoURL>для комнаты или пакета комнат.Этот элемент принимает следующие дочерние элементы: 
 <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 | Обозначает стиль японского гостиничного номера. Допустимые значения: 
 | 
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Содержит столько <Bed>сколько имеется в комнате. Обратите внимание, что японские футоны сюда не следует учитывать. Каждый  
 <Bed>имеет следующие дочерние элементы:
 <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 | Содержит информацию о ванне и туалете в номере. Атрибут: 
 Элемент опционально принимает следующие дочерние элементы: 
 Пример: <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 | Допустимые варианты включают в себя:   | 
| Transaction / PropertyDataSet / PackageData | 0..n | 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>. Если указан   Если   Используйте либо  | 
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Указывает RoomID типа номера, который можно объединить с этим тарифным планом. Тип комнаты определяется в элементе <RoomData>. | 
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | Добавляйте информацию о баллах лояльности в пакеты в зависимости от того, как определены тарифные планы или пакеты. Укажите элемент <MilesIncluded>в элементе<PackageData>, который определяет тарифный план.<MilesIncluded>имеет следующий дочерний элемент:
 | 
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Позволяет указать тариф как полностью возмещаемый или подлежащий отмене. Если не указано, информация о возврате средств не отображается. Примечание. Мы рекомендуем установить все атрибуты. Предупреждающее сообщение о статусе канала генерируется, если один или несколько атрибутов не установлены. Если вы не зададите никаких атрибутов, ставка не будет отображаться как возмещаемая. При настройке атрибутов обратите внимание на следующее: 
 | 
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Обязательно) Установите значение 1илиtrueчтобы указать, допускает ли тариф полный возврат средств; в противном случае установите значение0илиfalse. | 
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Обязательно, если availabletrue) Указывает количество дней до прибытия, за которое можно запросить полный возврат средств. Значение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). Предпочтительно использовать  | 
| 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 | Содержит информацию о блюдах в этом пакете.  Элемент  
  Необязательные атрибуты используются только в том случае, если   Чтобы фильтры еды (  | 
| 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, типы номеров King и Double больше не будут существовать, как только Google получит показанное сообщение. Обратите внимание, что удаление данных пакета влияет на общий тарифный план, определенный в сообщениях Transaction (Data Property), 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 -size». 
<?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 | Указывает, что сообщение транзакции было успешно обработано без предупреждений, ошибок или сбоев.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues | 0..1 | Issues | Контейнер для одной или нескольких проблем, возникших при обработке сообщения транзакции.  В каждом сообщении присутствует либо  | 
| TransactionResponse / Issues / Issue | 1..n | Issue | Описание предупреждения, ошибки или сбоя, возникшего при обработке сообщения транзакции. Подробную информацию об этих проблемах можно найти в разделе «Сообщения об ошибках статуса фида» . | 
| TransactionResponse / Issues / Issue / @code | 1 | integer | Идентификатор проблемы. | 
| TransactionResponse / Issues / Issue / @status | 1 | enum | Тип возникшей проблемы.  Допустимые значения:  | 
Примеры
Успех
Ниже приведен ответ на успешно обработанное сообщение транзакции.
<?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>