Anfragen
Syntax
Die Nachricht Transaction (Property Data)
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 folgende 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 „Partnerschlüssel“, der im Hotel Center auf der
Seite „Kontoeinstellungen“ aufgeführt ist.
Hinweis: Wenn Sie ein Backend haben, das Feeds für mehrere Konten bereitstellt, muss dieser Wert mit dem Attributwert |
Transaction / PropertyDataSet | 1.. | PropertyDataSet | Ein Container zum Definieren von Zimmertypen und -paketen für eine einzelne Unterkunft. |
Transaction / PropertyDataSet / @action | 0..1 | enum | Der Aktualisierungstyp, der auf Zimmerpreisdefinitionen angewendet wird. Gültige Werte sind:
Dieses Attribut ist optional und standardmäßig auf |
Transaction / PropertyDataSet / Property | 1 | string | Die eindeutige Kennung der Unterkunft. Dieser Wert muss mit der Hotel-ID übereinstimmen, die mit
<id> im Element <listing> im Hotellistenfeed angegeben wird. Die Hotel-ID ist auch im Hotel Center aufgelistet. |
Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Beschreibt ein Zimmer. Hinweis:Es muss in jedem Fall entweder |
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 den Nachrichten <OTA_HotelAvailNotifRQ> , <OTA_HotelRateAmountNotifRQ> und <OTA_HotelInvCountNotifRQ> referenziert. |
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 Wenn Verwenden Sie entweder |
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 untergebracht werden können. Sie sollte größer oder gleich Ihren NumberOfGuests -Werten sein, die Sie mit den Preisen senden.
Der Wert für Hinweis:Wenn |
Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | Die maximale Anzahl von Erwachsenen, die im Zimmer untergebracht werden können. Sie sollte größer oder gleich Ihren NumberOfGuests -Werten sein, die Sie mit den Preisen senden.
Der Wert für |
Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Die maximale Anzahl von Kindern, die im Zimmer untergebracht werden können.
Der Wert für |
Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Einstellungen, mit denen die Belegungsanforderungen eines Raums eingeschränkt oder geändert werden können.
Das Element
<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 optionale Bildunterschrift für ein Foto des entsprechenden Zimmers oder Zimmerpakets. Sie können mehr als eine <PhotoURL> für ein Zimmer oder Zimmerpaket angeben.
Dieses Element verwendet die folgenden untergeordneten Elemente:
<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 den Zimmereigenschaften. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | Gibt den Stil eines japanischen Hotelzimmers an. Gültige Werte sind:
|
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Enthält so viele <Bed> wie das Zimmer hat. Japanische Futons sollten hier nicht gezählt werden.
Jedes
<Bed> hat die folgenden untergeordneten Elemente:
<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 es sich bei diesem Zimmer um ein Kapselzimmer handelt. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | Gibt an, ob der Raum 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 Zimmer um eine Unterkunft im Freien handelt, die keine festen Wände, keine Sanitäranlagen und keine Klimaanlage hat. Hotelzimmer sind beispielsweise keine Outdoor-Unterkünfte, Campingplätze, auf denen Gäste in Zelten übernachten, sowie Wohnmobilparks für Gäste mit eigenem Wohnmobil zählen jedoch dazu. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | Geben Sie dieses Element an, wenn dieser Raum barrierefrei ist. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | Ob es sich um ein Nichtraucher- oder Raucherzimmer handelt. Gültige Werte sind non_smoking und smoking . |
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | Enthält Informationen zu einer Badewanne und einer Toilette im Zimmer.
Das Attribut ist:
Das Element kann optional die folgenden untergeordneten Elemente enthalten:
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 dieses Zimmer ein eigenes Badebecken im Freien hat. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | Geben Sie dieses Element an, wenn dieses Zimmer eine Klimaanlage hat. |
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 sind:
|
Transaction / PropertyDataSet / PackageData | 0..n | PackageData | Container für Elemente, die Preismerkmale und Konditionen beschreiben, die nicht Teil der physischen Zimmerbeschreibung sind. Hinweis:Es muss in jedem Fall entweder |
Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | PackageID in diesen Nachrichten entspricht dem 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 Wenn Verwenden Sie entweder |
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Gibt die RoomID eines Zimmertyps an, der 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 Sie dieses Element nicht angeben, werden keine Erstattungsinformationen angezeigt.
Hinweis: Es wird empfohlen, 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:
|
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, für die 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 | (Wird ausdrücklich empfohlen, wenn available den Wert true hat) Gibt die späteste Uhrzeit des Tages 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 Mitternacht als Standardeinstellung verwendet. |
Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | Gibt an, ob der Zimmertyp mit Frühstück ist.
Gültige Werte sind 0 (oder false ) und 1 (oder true ).
Wir empfehlen, stattdessen |
Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | Früheste Check-in-Zeit in der Ortszeit des Hotels. Die Uhrzeit darf nicht größer als 24:00 sein. |
Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | Späteste Abreisezeit in der Ortszeit des Hotels. |
Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | Gibt an, ob das Zimmer kostenlosen Internetzugang bietet, während andere Zimmer diese Ausstattung nicht beinhalten. Geben Sie dieses Element nicht in einem Hotel an, das für alle Zimmer einen kostenlosen Internetzugang bietet. Dieses Element gilt nicht für einen kabelgebundenen oder kabellosen Internetzugang, 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 den Mahlzeiten in diesem Paket.
Das Element
Die optionalen Attribute werden nur verwendet, wenn Damit Essensfilter ( |
Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | Gibt an, ob ein Zimmer kostenloses Parken beinhaltet, wenn in diesem Hotel Parken andernfalls kostenpflichtig wäre. Geben Sie für dieses Element keinen Wert an, wenn das Hotel generell 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 Gerichten).)
|
Beispiele
Zimmer- und Paketdaten
Im folgenden Beispiel wird gezeigt, wie Sie die Zimmer- und Paketdaten einer Unterkunft in einer Nachricht „Transaktion (Unterkunftsdaten)“ definieren. Das Attribut overlay
sorgt dafür, dass alle vorhandenen Daten gelöscht und durch die Daten in dieser Nachricht ersetzt werden, wenn Daten bereits unerwartet 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
Im folgenden Beispiel wird gezeigt, wie Sie den 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
Im folgenden Beispiel wird gezeigt, wie Sie vorhandene Zimmertypen und -pakete entfernen. Wenn in diesem Szenario die Nachrichten unter „Zimmer- und Paketdaten“ und „Zimmertyp hinzufügen“ bereits an Google gesendet wurden, wären die Zimmertypen King
und Double
nicht mehr vorhanden, sobald Google die angezeigte Nachricht erhält. Das Entfernen von Paketdaten wirkt sich auf den gesamten Preisplan aus, wie er in den Nachrichten „Transaktion (Unterkunftsdaten)“, „OTA_HotelRateAmountNotifRQ“ und „OTA_HotelAvailNotifRQ
“ definiert ist (da sie auf denselben PackageID
-Wert verweisen). Daher sind möglicherweise entsprechende Aktualisierungen mit den anderen Nachrichtentypen erforderlich, 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
Im folgenden Beispiel wird gezeigt, 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, der 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 beschränken
Im folgenden Beispiel wird gezeigt, wie Sie mit den Elementen <Capacity>
, <AdultCapacity>
und <ChildCapacity>
Einschrä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>
Der Doppelzimmertyp (RoomID_1) kann insgesamt bis zu 4 Gäste aufnehmen. Außerdem können bis zu 4 Erwachsene und bis zu 3 Kinder darin übernachten. Alle drei Kapazitätsanforderungen müssen erfüllt sein, damit dieser Raum buchbar ist. Diese Konfiguration ist repräsentativ für ein typisches Zimmer mit zwei Betten, die jeweils Platz für zwei Personen bieten. Die Kapazität für Kinder ist um eins niedriger als die Gesamtkapazität, da sich im Zimmer mindestens ein Erwachsener aufhalten muss.
Erweiterte Beispiele mit <RoomFeatures>
und Mahlzeiten
JapaneseHotelRoomStyle
hat keinen Standardwert.
Wenn Sie einen Wert weglassen, führt das nicht zu einem XML-Fehler. Ihr Eintrag wird jedoch nicht in den Suchergebnissen angezeigt, wenn der Nutzer nach Zimmerstil oder Betten filtert.
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
Im folgenden Beispiel sehen Sie ein western
-Zimmer 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
Das folgende Beispiel zeigt ein Zimmer im japanischen Stil ohne Bett. Informationen zu Betten sind für Zimmer vom Typ japanese
nicht 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>
Japanisch-westliches Zimmer mit Bett
Im folgenden Beispiel sehen Sie ein japanese_western
-Zimmer mit einem king
-Bett.
<?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 Informationen zur Anzahl der Betten in japanese_western
Zimmern nicht hat, sieh dir 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 Nachricht TransactionResponse (Property Data)
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 Nachricht TransactionResponse (Property Data)
enthält folgende 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.
Entweder |
TransactionResponse / Issues | 0..1 | Issues | Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der Transaktionsnachricht aufgetreten sind.
Entweder |
TransactionResponse / Issues / Issue | 1..n | Issue | Die Beschreibung einer Warnung oder eines Fehlers, die bzw. der bei der Verarbeitung der Transaktionsnachricht aufgetreten ist. Weitere Informationen zu diesen Problemen finden Sie unter Fehlercodes für den Feedstatus. |
TransactionResponse / Issues / Issue / @code | 1 | integer | Die Kennung des Problems. |
TransactionResponse / Issues / Issue / @status | 1 | enum | Die Art des Problems, das aufgetreten ist. Gültige Werte sind |
Beispiele
Erfolg
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>