Transaktion (Unterkunftsdaten)

Anfragen

Syntax

Die Transaction (Property Data)-Nachricht verwendet die folgende Syntax:

<?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>
      <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>

Elemente und Attribute

Die Nachricht „Transaktion (Unterkunftsdaten)“ enthält die folgenden Elemente und Attribute:

Element / @Attribut Häufigkeit Typ Beschreibung
Transaction 1 Complex element In einer ARI-Implementierung ist dies das Stammelement für eine Nachricht, in der Zimmertypen und -pakete für eine einzelne Unterkunft definiert sind.
Transaction / @timestamp 1 DateTime Erstellungsdatum und -uhrzeit der Nachricht.
Transaction / @id 1 string Eine eindeutige Kennung für diese Anfragenachricht. Dieser Wert wird in der Antwortnachricht zurückgegeben. Zulässige Zeichen sind a–z, A–Z, 0–9, _ (Unterstrich) und - (Bindestrich).
Transaction / @partner 1 string Das Partnerkonto für diese Nachricht. Dieser Stringwert ist der Wert für „Partnerschlüssel“, der im Hotel Center auf der Seite „Kontoeinstellungen“ aufgeführt ist.

Hinweis: Wenn du ein Backend hast, das Feeds für mehrere Konten bereitstellt, muss dieser Wert mit dem Attributwert ID im Element <RequestorID> der Nachrichten <OTA_HotelRateAmountNotifRQ> und <OTA_HotelAvailNotifRQ> für dasselbe Konto übereinstimmen.

Transaction / PropertyDataSet 1.. PropertyDataSet Ein Container zum Definieren von Zimmertypen und Paketen für eine einzelne Unterkunft.
Transaction / PropertyDataSet / @action 0..1 enum

Die Art der Aktualisierung, die auf Zimmerpreisdefinitionen angewendet werden soll.

Gültige Werte sind:

  • overlay : Ersetzt alle zuvor definierten <RoomData> und <PackageData> für das Attribut. Nur <RoomData> und <PackageData> in der aktuellen Nachricht sind gültig.
  • delta : Fügt zuvor nicht definierte <RoomData> und <PackageData> hinzu oder ändert vorhandene.

Dieses Attribut ist optional und wird standardmäßig auf delta gesetzt, wenn es nicht angegeben wird.

Transaction / PropertyDataSet / Property 1 string Die eindeutige Kennung für die Unterkunft. Dieser Wert muss mit der Hotel-ID übereinstimmen, die im Hotellistenfeed mit <id> im Element <listing> angegeben wird. Die Hotel-ID wird auch im Hotel Center aufgeführt.
Transaction / PropertyDataSet / RoomData 0..n RoomData

Beschreibt ein Zimmer.

Hinweis: Es muss in jedem Fall entweder <RoomData> oder <PackageData> angegeben werden.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Eine eindeutige Kennung für einen Zimmertyp. Auf diesen Wert wird mit dem Attribut InvTypeCode im Element <StatusApplicationControl> in Nachrichten vom Typ <OTA_HotelAvailNotifRQ> und <OTA_HotelRateAmountNotifRQ> verwiesen.
Transaction / PropertyDataSet / RoomData / Name 1 Name Container für den Namen der Zimmerkategorie in einer oder mehreren Sprachen.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Gibt den Namen der Zimmerkategorie in einer Sprache an.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string Der Name der Zimmerkategorie in der durch das Attribut language angegebenen Sprache.
Transaction / PropertyDataSet / RoomData / Description 1 Name Container für die Beschreibung der Zimmerkategorie in einer oder mehreren Sprachen.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Gibt die Beschreibung der Zimmerkategorie in einer Sprache an.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string Die Beschreibung der Zimmerkategorie in der durch das Attribut language angegebenen Sprache.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string Ein aus zwei Buchstaben bestehender Sprachcode.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Ein Container für <AllowablePackageID>-Elemente.

Wenn <AllowablePackageIDs> angegeben ist, kann der durch <RoomID> im übergeordneten Element <RoomData> angegebene Zimmertyp nur mit den durch die <AllowablePackageID>-Elementen definierten Preisplänen kombiniert werden.

Wenn <AllowablePackageIDs> nicht angegeben ist, kann der durch <RoomID> im übergeordneten Element <RoomData> angegebene Zimmertyp mit einem beliebigen Preisplan kombiniert werden.

Verwenden Sie entweder <AllowablePackageIDs> oder <AllowableRoomIDs>, aber nicht beides.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Gibt die PackageID eines Preisplans an, der mit diesem Zimmertyp kombiniert werden kann. Ein Preisplan wird durch eine Kombination aus Paket, Preisen und Verfügbarkeit definiert. Die PackageID entspricht dem RatePlanCode in den Nachrichten OTA_HotelRateAmountNotifRQ und OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer Die maximale Anzahl von Erwachsenen und Kindern, die im Zimmer Platz haben. Dieser sollte größer oder gleich den NumberOfGuests-Werten sein, die Sie mit Preisen senden.

Der Wert für <Capacity> muss eine positive Ganzzahl zwischen 1 und 99 (jeweils einschließlich) sein. Hier finden Sie ein Beispiel.

Hinweis:Wenn <Capacity> nicht festgelegt ist, gilt die Anzahl der erlaubten Personen als unbegrenzt. Wenn dieses Feld nicht festgelegt ist und ExtraGuestCharges oder AdditionalGuestAmounts definiert sind, können Preise für eine beliebige Anzahl von Personen generiert werden. Wir empfehlen, <Capacity> festzulegen, wenn ExtraGuestCharges oder AdditionalGuestAmounts definiert sind, damit keine Preise für ungültige Belegungsoptionen angezeigt werden.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer Die maximale Anzahl von Erwachsenen, die im Zimmer Platz haben. Dieser sollte größer oder gleich den NumberOfGuests-Werten sein, die Sie mit Preisen senden.

Der Wert für <AdultCapacity> muss eine positive Ganzzahl zwischen 1 und 99 (jeweils einschließlich) sein. Hier finden Sie ein Beispiel.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer Die maximale Anzahl von Kindern, die im Zimmer Platz haben.

Der Wert für <ChildCapacity> muss eine positive Ganzzahl zwischen 1 und 99 sein. Hier finden Sie ein Beispiel.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings Einstellungen, die die Belegungsanforderungen eines Zimmers einschränken oder ändern können.

Das Element <OccupancySettings> verwendet die folgenden untergeordneten Elemente:

  • <MinOccupancy>: Die Mindestanzahl der Gäste, die in einem Zimmer übernachten können. Wenn dafür beispielsweise 2 festgelegt ist, kann dieses Zimmer nicht für einen einzelnen Gast gebucht werden.

    Der Wert für <MinOccupancy> muss eine positive Ganzzahl zwischen 1 und 99 sein.

  • <MinAge>: Das Mindestalter für alle Gäste, die in einem Zimmer übernachten. Wenn diese Einstellung beispielsweise auf 18 gesetzt ist, kann dieser Raum nur für Gruppen gebucht werden, in denen alle Gäste mindestens 18 Jahre alt sind.

    Der Wert für <MinAge> muss eine positive Ganzzahl zwischen 0 und 99 sein.

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

Nicht alle untergeordneten Elemente müssen enthalten sein.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL Eine URL und optional eine Bildunterschrift für ein Foto des betreffenden Zimmers oder Zimmerpakets. Sie können mehr als eine <PhotoURL> für ein Zimmer oder Zimmerpaket angeben.

Dieses Element verwendet die folgenden untergeordneten Elemente:

  • <URL>: Gibt den Speicherort des Fotos an. Der Speicherort sollte öffentlich (nicht hinter einer Firewall) sein und das Protokoll (http://) enthalten.
  • <Caption>: Definiert die Bildunterschrift für das Foto. Dieses Element verwendet nur das untergeordnete Element <Text> mit den beiden erforderlichen Attributen Text und language. Das Attribut Text ist die Bildunterschrift und das Attribut language gibt einen aus zwei Buchstaben bestehenden Sprachcode wie en an.
<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> Enthält Informationen zu Zimmerelementen.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 enum

Gibt den Stil eines japanischen Hotelzimmers an.

Gültige Werte sind:

  • western: Ein Zimmer im Westernstil mit Betten.
  • japanese: Ein Zimmer im japanischen Stil mit Futonbetten.
  • japanese_western: Ein Zimmer im japanischen Westernstil mit Betten im westlichen Stil und Futons im japanischen Stil.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Enthält so viele <Bed> wie der Raum. Bitte beachten Sie, dass japanische Futons hier nicht mitgezählt werden.

Jeder <Bed> hat die folgenden Attribute:

  • size (optional): Gültige Werte sind single, semi_double, double, queen und king.
Jede <Bed> hat die folgenden untergeordneten Elemente:
  • <Width> (optional): Gibt die Breite des Betts an. Es muss das Attribut unit mit dem Wert cm und das Attribut number mit der Breite des Betts in Ganzzahlzentimeter vorhanden sein.
  • <Length> (optional): Gibt die Bettlänge an. Es muss das Attribut unit mit dem Wert cm und das Attribut number mit der Länge des Betts in Ganzzahl-Zentimetern vorhanden sein.
Beispiel:
<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 Geben Sie dieses Element an, wenn es sich bei diesem Zimmer um eine Suite handelt.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Geben Sie dieses Element an, wenn dieser Raum ein Kapselraum ist.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Gibt an, ob dieses Zimmer mit anderen Personen wie Eigentümern oder anderen Gästen geteilt wird. Gültige Werte sind shared und private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Geben Sie dieses Element an, wenn es sich bei diesem Raum um eine Unterkunft im Freien ohne feste Wände, Sanitäranlagen und Klimaanlagen handelt. Hotelzimmer sind beispielsweise keine Unterkunft im Freien. Campingplätze, auf denen Gäste in Zelten übernachten, und Wohnmobilparks, auf denen Gäste ihr eigenes Wohnmobil mitbringen, sind hingegen Outdoorunterkünfte.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Geben Sie dieses Element an, wenn dieser Raum rollstuhlgerecht ist.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Gibt an, ob es sich um ein Nichtraucher- oder ein Raucherzimmer handelt. Gültige Werte sind non_smoking und smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Enthält Informationen zu einem Bad und einer Toilette im Raum.

Das Attribut lautet:

  • relation (optional): Gibt an, wie Bad und Toilette im Verhältnis zueinander stehen. Gültige Werte sind together, z. B. ein Bad, in dem sich Bad und Toilette gemeinsam im selben Raum befinden, sowie separate, bei denen Bad und Toilette jeweils eigene Bereiche haben. Dieses Attribut darf nicht festgelegt werden, wenn der Raum nicht sowohl ein Bad als auch eine Toilette hat.

Das -Element verwendet optional die folgenden untergeordneten Elemente:

  • <Bath> (optional): Wenn dieses Element vorhanden ist, weist der Raum darauf hin, dass es ein Bad gibt.

    Folgende Attribute sind verfügbar:

    • bathtub (optional): Gibt an, dass sich im Bad eine Badewanne befindet. Gültige Werte sind 0 (oder false) und 1 (oder true).
    • shower (optional): Gibt an, dass in der Badewanne eine Dusche vorhanden ist. Gültige Werte sind 0 (oder false) und 1 (oder true).
  • <Toilet> (optional): Wenn dieses Element vorhanden ist, bedeutet das, dass es in diesem Raum eine Toilette gibt.

    Folgende Attribute sind verfügbar:

    • electronic_bidet (optional): Gibt an, dass die Toilette über ein elektronisches Bidet verfügt. Gültige Werte sind 0 (oder false) und 1 (oder true).
    • mobility_accessible (optional): Gibt an, dass die Toilette mit Mobilgeräten barrierefrei ist. Gültige Werte sind 0 (oder false) und 1 (oder true).

Beispiel:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum Geben Sie dieses Element an, wenn dieser Raum ein eigenes Bad im Freien hat.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Geben Sie dieses Element an, wenn es in diesem Raum eine Klimaanlage gibt.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Geben Sie dieses Element an, wenn dieses Zimmer einen Balkon oder eine Veranda hat.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object Gültige Optionen:

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

Transaction / PropertyDataSet / PackageData 0..n PackageData

Container für Elemente, die Preismerkmale und Bedingungen beschreiben, die nicht Teil der physischen Zimmerbeschreibung sind.

Hinweis: Es muss in jedem Fall entweder <RoomData> oder <PackageData> angegeben werden.

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID in diesen Nachrichten entspricht der RatePlanCode in den Nachrichten OTA_HotelRateAmountNotifRQ und OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name Container für den Namen des Pakets in einer oder mehreren Sprachen.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text Gibt den Namen des Pakets in einer Sprache an.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string Der Name des Pakets in der durch das Attribut language angegebenen Sprache.
Transaction / PropertyDataSet / PackageData / Description 1 Description Container für die Beschreibung des Pakets in einer oder mehreren Sprachen.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text Gibt die Beschreibung des Pakets in einer Sprache an.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string Die Beschreibung des Pakets in der durch das Attribut language angegebenen Sprache.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string Ein aus zwei Buchstaben bestehender Sprachcode.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Ein Container für <AllowableRoomID>-Elemente.

Wenn <AllowableRoomIDs> angegeben ist, kann der durch <PackageID> im übergeordneten Element <PackageData> angegebene Preisplan nur mit den Zimmertypen kombiniert werden, die durch die <AllowableRoomID>-Elemente definiert sind.

Wenn <AllowableRoomIDs> nicht angegeben ist, kann der durch <PackageID> im übergeordneten Element <PackageData> angegebene Preisplan mit einem beliebigen Zimmertyp kombiniert werden.

Verwenden Sie entweder <AllowablePackageIDs> oder <AllowableRoomIDs>, aber nicht beides.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Gibt die RoomID eines Zimmertyps an, die mit diesem Preisplan kombiniert werden kann. Ein Zimmertyp wird in einem <RoomData>-Element definiert.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Ermöglicht das Eintragen eines Preises als vollständig erstattungsfähig oder stornierbar. Wenn keine Angabe erfolgt, werden keine Informationen zu einer Erstattung angezeigt.

Hinweis: Wir empfehlen, alle Attribute festzulegen. Wenn ein oder mehrere Attribute nicht festgelegt wurden, wird eine Warnmeldung für den Feedstatus generiert.

Wenn Sie keine Attribute festlegen, wird der Preis nicht als erstattungsfähig angezeigt.

Beachten Sie beim Festlegen der Attribute Folgendes:

  • Wenn available oder refundable_until_days nicht festgelegt ist, wird der Preis nicht als erstattungsfähig angezeigt.
  • Wenn available den Wert 0 oder false hat, werden die anderen Attribute ignoriert. Der Preis wird nicht als erstattungsfähig angezeigt, auch wenn mindestens eines der anderen Attribute festgelegt ist.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (Erforderlich) Legen Sie 1 oder true fest, um anzugeben, ob für den Preis eine vollständige Erstattung möglich ist. Andernfalls geben Sie 0 oder false an.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Erforderlich, wenn available den Wert true hat) Gibt die Anzahl der Tage vor dem Check-in an, innerhalb derer eine vollständige Erstattung beantragt werden kann. Der Wert für refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (Dringend empfohlen, wenn available den Wert true hat) Gibt die späteste Uhrzeit in der Ortszeit des Hotels an, bis zu der ein Antrag auf vollständige Erstattung berücksichtigt wird. Dies kann mit refundable_until_days kombiniert werden, um beispielsweise anzugeben, dass „Erstattungen bis 16:00 Uhr zwei Tage vor dem Check-in möglich sind“. Wenn refundable_until_time nicht festgelegt ist, wird standardmäßig Mitternacht als Wert verwendet.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Gibt an, ob bei diesem Zimmertyp Frühstück inbegriffen ist. Gültige Werte sind 0 (oder false) und 1 (oder true).

Wir empfehlen, <Meals> anstelle von <BreakfastIncluded> zu verwenden.

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time Früheste Check-in-Zeit in der Ortszeit des Hotels. Die Zeit muss vor 24:00 Uhr liegen.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Spätester mögliche Check-out-Zeit in der Ortszeit des Hotels.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Gibt an, ob der Zimmer kostenlosen Internetzugang bietet, andere Zimmer diese Ausstattung nicht enthalten. Legen Sie dieses Element nicht in einem Hotel fest, das für alle Zimmer kostenlosen Internetzugang bietet. Dieses Element gilt nicht für kabelgebundenen oder kabellosen Internetzugang im Zimmer, der nicht in den Zimmern verfügbar ist. Gültige Werte sind 0 (oder false) und 1 (oder true).
Transaction / PropertyDataSet / PackageData / Meals 0..1 Object Enthält Informationen zu Mahlzeiten in diesem Paket.

Das Element <Meals> verwendet zwei optionale untergeordnete Elemente, <Breakfast> und <Dinner>, die die folgenden Attribute haben:

  • included (erforderlich): Legen Sie 1 (oder true) fest, wenn der Preis Frühstück und Abendessen enthält, andernfalls 0 oder false.
  • in_room (optional): Legen Sie 1 (oder true) fest, wenn die Gäste die Möglichkeit haben, in dem Zimmer zu essen, in dem sie übernachten. Andernfalls geben Sie 0 (oder false) an.
  • in_private_space (optional): Legen Sie diesen Wert auf 1 (oder true) fest, wenn Gäste die Möglichkeit haben, in einem Raum (außer dem Zimmer, in dem sie übernachten) zu essen, in dem sie Kontakt mit anderen Gästen vermeiden können. Andernfalls geben Sie 0 (oder false) an.
  • buffet (optional): Legen Sie 1 (oder true) fest, wenn Frühstück und Abendessen als Buffet angeboten werden, andernfalls 0 (oder false).

Die optionalen Attribute werden nur verwendet, wenn included wahr ist.

Damit Mahlzeitenfilter (no meals, breakfast only, dinner only und breakfast and dinner) funktionieren, müssen sowohl <Breakfast> als auch <Dinner> mit dem Attribut included angegeben werden.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Gibt an, ob in einem Zimmer kostenlose Parkplätze enthalten sind, wenn das Parken in diesem Hotel ansonsten kostenpflichtig wäre. Geben Sie für dieses Element keinen Wert für ein Hotel an, das kostenlose Parkplätze anbietet. Gültige Werte sind 0 (oder false) und 1 (oder true). Der Standardwert ist false.
Transaction / PropertyDataSet / PackageData / PhotoURL 0..1 Object (Wie <PhotoURL> in <RoomData>, aber für das Paket (z.B. Fotos von Mahlzeiten).)

Beispiele

Zimmer- und Paketdaten

Im Folgenden finden Sie ein einfaches Beispiel für die Definition der Zimmer- und Paketdaten einer Unterkunft in einer Nachricht „Transaktion (Unterkunftsdaten)“. Mit dem Attribut overlay wird sichergestellt, dass alle vorhandenen Daten gelöscht und durch die Daten in dieser Nachricht ersetzt werden, wenn Daten unerwartet bereits vorhanden sind:

<?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>
      <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>

Zimmertyp hinzufügen

Das folgende Beispiel zeigt, wie Sie vorhandenen <Transaction>-Daten einen Zimmertyp und ein Zimmerpaket hinzufügen:

<?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>

Zimmertypen entfernen

Das folgende Beispiel zeigt, wie Sie vorhandene Zimmertypen und -pakete entfernen. Wenn in diesem Szenario die Nachrichten unter „Zimmer- und Paketdaten“ und „Zimmertyp hinzufügen“ zuvor an Google gesendet wurden, sind die Zimmertypen King und Double nicht mehr vorhanden, sobald Google die angezeigte Nachricht erhält. Das Entfernen von Paketdaten wirkt sich auf den Gesamtpreisplan aus, der in den Nachrichten „Transaktion (Unterkunftsdaten), OTA_HotelRateAmountNotifRQ“ und OTA_HotelAvailNotifRQ (durch Verweis auf denselben PackageID-Wert) definiert ist. Daher müssen entsprechende Aktualisierungen mithilfe der anderen Nachrichtentypen möglicherweise erforderlich sein, um zu berücksichtigen, dass PackageID_2 und PackageID_3 hier nicht mehr definiert sind.

<?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>


Preispläne einschränken

Das folgende Beispiel zeigt, wie Sie mit dem Element <AllowablePackageIDs> die für einen Zimmertyp zulässigen Preispläne einschränken. In diesem Beispiel kann der Zimmertyp Queen (RoomID_2) nur mit dem Paket und Preisplan kombiniert werden, das als PackageID_1 gekennzeichnet ist.

<?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>

Raumkapazität einschränken

Im folgenden Beispiel wird gezeigt, wie Sie mit den Elementen <Capacity>, <AdultCapacity> und <ChildCapacity> Beschränkungen für die Raumkapazität festlegen.

<?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>

Für den Doppelzimmertyp (RoomID_1) können insgesamt bis zu 4 Gäste gebucht werden. Außerdem können bis zu 4 Erwachsene und bis zu 3 Kinder teilnehmen. Alle drei Kapazitätsanforderungen müssen erfüllt sein, damit dieser Raum gebucht werden kann. Diese Konfiguration ist repräsentativ für einen typischen Raum mit zwei Betten, die jeweils für zwei Personen ausgelegt sind. Die Kapazität für Kinder ist um eins geringer als die Gesamtkapazität, da im Zimmer mindestens ein Erwachsener anwesend sein muss.

Erweiterte Beispiele mit <RoomFeatures> und Mahlzeiten

JapaneseHotelRoomStyle hat keinen Standardwert. Das Weglassen eines Werts führt nicht zu einem XML-Fehler. Ihr Eintrag wird aber nicht in den Suchergebnissen angezeigt, wenn Nutzer nach Zimmerstil oder Betten filtern.

Zwei Einzelbetten

Das folgende Beispiel zeigt, wie <RoomFeatures> verwendet wird:

<?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>

Zwei Doppelbetten

Hier ein Beispiel für ein Zimmer im western-Stil mit zwei double-Betten.

<?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>

Japanischer Stil ohne Bett

Hier ein Beispiel für ein Zimmer im japanischen Stil ohne Bett. Für ein Zimmer im Stil „japanese“ sind keine Informationen zu Betten erforderlich.

<?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>

Japanischer Western mit Bett

Das folgende Beispiel zeigt ein Zimmer im Stil japanese_western mit einem Bett in der Größe king.

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

Wenn der Partner die Anzahl der Betten in japanese_western Zimmern nicht hat, schauen Sie sich das folgende Beispiel an:

<?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>


Mahlzeiten

Im folgenden Beispiel werden Zimmer- und Paketmetadaten für Mahlzeiten, Fotos sowie Check-in- und Check-out-Zeiten definiert:

<?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>

Nur Frühstück

<?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>

Antworten

Syntax

Die TransactionResponse (Property Data)-Nachricht verwendet die folgende Syntax:

<?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>

Elemente und Attribute

Die TransactionResponse (Property Data)-Meldung enthält die folgenden Elemente und Attribute:

Element / @Attribut Häufigkeit Typ Beschreibung
TransactionResponse 1 Complex element Das Stammelement, das den Erfolg oder Probleme für eine empfangene Transaktionsanfragenachricht angibt.
TransactionResponse / @timestamp 1 DateTime Erstellungsdatum und -uhrzeit der Nachricht.
TransactionResponse / @id 1 string Die eindeutige Kennung der zugehörigen Transaktionsnachricht.
TransactionResponse / @partner 1 string Das Partnerkonto für diese Nachricht.
TransactionResponse / Success 0..1 Success Gibt an, dass die Transaktionsnachricht ohne Warnungen oder Fehler erfolgreich verarbeitet wurde.

In jeder Nachricht ist entweder <Success> oder <Issues> vorhanden.

TransactionResponse / Issues 0..1 Issues Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der Transaktionsnachricht aufgetreten sind.

In jeder Nachricht ist entweder <Success> oder <Issues> vorhanden.

TransactionResponse / Issues / Issue 1..n Issue Die Beschreibung einer Warnung oder eines Fehlers, der während der Verarbeitung der Transaktionsnachricht aufgetreten ist. Details zu diesen Problemen finden Sie unter Fehlermeldungen für den Feedstatus.
TransactionResponse / Issues / Issue / @code 1 integer Die Kennung für das Problem.
TransactionResponse / Issues / Issue / @status 1 enum

Die Art des Problems.

Gültige Werte sind warning, error und failure.

Beispiele

Abgeschlossen

Im Folgenden finden Sie eine Antwort auf eine erfolgreich verarbeitete Transaktionsnachricht.

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

Probleme

Im Folgenden finden Sie eine Antwort auf eine Transaktionsnachricht, die aufgrund von Fehlern nicht verarbeitet wurde.

<?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>