Diese Seite enthält eine Referenz für die XML-basierten Transaktionsnachrichten.
<Transaction>
Das Stammelement einer Transaktionsnachricht
ist <Transaction>
. Es ist ein Container für beschreibende Informationen
Zimmer und Pakete sowie Preise und Verfügbarkeit für Zimmer und Pakete.
Das Element <Transaction>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Nachrichten, in denen <Transaction>
als Stammelement verwendet wird, benötigen mindestens eines
untergeordnetes Element. Transaktionsnachrichten können eine beliebige Anzahl
untergeordneter Elemente enthalten,
die Gesamtgröße der Nachricht 100 MB nicht überschreitet.
Syntax
Das <Transaction>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">
<!-- Defines data about a room or package (Room Bundle) -->
<PropertyDataSet>
...
</PropertyDataSet>
<!-- Updates/sets prices and availability for rooms and Room Bundles -->
<!-- (Also removes itineraries from inventory) -->
<Result>
...
</Result>
</Transaction>
Attribute
Das <Transaction>
-Element hat die folgenden Attribute:
Attribut | Erforderlich/Optional? | Typ | Beschreibung |
---|---|---|---|
id | Required | String | Eine eindeutige Kennung für jede Transaktionsnachricht. |
partner | Optional | string | Das Partnerkonto, für das die Transaktionsnachricht bestimmt ist. Ich verwenden Sie diese Option in der Regel, wenn Ihr Backend Preisfeeds für mehrere Partnerkonten. Dieser Stringwert ist der „Partnerschlüssel“ Wert aufgelistet auf die Seite „Kontoeinstellungen“ im Hotel Center. |
timestamp | Required | DateTime | Der Zeitpunkt, zu dem die Transaktionsnachricht gesendet. Alle Nachrichten, die mit einem Zeitstempel aus den vergangenen 24 Stunden gesendet wurden, verarbeitet. Die anderen werden verworfen. Nachrichten werden in der Reihenfolge |
Untergeordnete Elemente
Das <Transaction>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<PropertyDataSet> | Optional* | <PropertyDataSet> |
Beschreibt ein bestimmtes Zimmer und Zimmerpakete. In der Regel verwenden Sie diese in einer separaten Transaktionsnachricht zum Definieren gemeinsamer Werte für und verringern Sie die Größe Ihrer Transaktionsnachrichten. |
<Result> | Optional* | <Result> |
Preisdaten für den Reiseplan eines Zimmers oder ein
Element |
* Mindestens entweder <PropertyDataSet> oder <Result>
ist erforderlich. |
Beispiele
Zimmerdaten
Im folgenden Beispiel werden Zimmerdaten in einer Transaktionsnachricht definiert:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
Preise
Im folgenden Beispiel werden Preisdaten in einer Transaktionsnachricht definiert:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
Übernachtungspreise
Im folgenden Beispiel werden Preisdaten für 1 bis 7 Übernachtungen definiert, die ab 7. Juni 2023:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-08-24T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">209.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">419.98</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>3</Nights>
<Baserate currency="USD">614.97</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>4</Nights>
<Baserate currency="USD">819.96</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>5</Nights>
<Baserate currency="USD">999.95</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>6</Nights>
<Baserate currency="USD">1193.94</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
<Result>
<Property>1234</Property>
<Checkin>2018-06-07</Checkin>
<Nights>7</Nights>
<Baserate currency="USD">1259.93</Baserate>
<Tax currency="USD">21.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
</Result>
</Transaction>
Basis & nutzerabhängige Preise
Das folgende Beispiel zeigt eine Transaktionsnachricht mit einer und einem nutzerabhängigen Preis:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
Inventar entfernen
Im folgenden Beispiel werden mehrere Inventare entfernt (Aufenthalte mit einer Übernachtung für verschiedenen Daten) für ein Hotel aus dem Inventar:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-23</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-24</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<!---Sending <Baserate> is optional with <Unavailable> -->
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-25</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">-1</Baserate>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
</Transaction>
<PropertyDataSet>
Ein Container für Zimmer- und Paketinformationen (oder Zimmerpaket-Informationen) in einem
<Transaction>
-Nachricht. Für ein Hotel festgelegte Werte überschreiben die für einen Partner festgelegten Werte.
Google speichert diese Informationen, sodass Sie sie nicht jedes Mal neu angeben müssen
Preisaktualisierungen senden.
Das Element <PropertyDataSet>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Weitere Informationen finden Sie unter Zimmerpaket-Metadaten.
Syntax
Das <PropertyDataSet>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> <!-- (Required) ID that matches the Hotel List Feed --> <Property>hotel_ID</Property> <!-- (Optional) Defines metadata about a room --> <RoomData> ... </RoomData> <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) --> <PackageData> ... </PackageData> </PropertyDataSet> ... </Transaction>
Attribute
Das <PropertyDataSet>
-Element hat keine Attribute.
Untergeordnete Elemente
Das <PropertyDataSet>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<PackageData> | Optional* | <PackageData> |
Beschreibt ein Zimmerpaket. Diese Daten sind mit einem Partner und
Hotel, aber nicht mit einem Reiseplan. Dieses Element ähnelt
<RoomData> , aber es werden Ausstattungsmerkmale und Bedingungen beschrieben, die nicht Bestandteil der
Beschreibung des physischen Raums.
In Ihren Preisaktualisierungen verweisen Sie einfach auf die Paket-ID. Weitere Informationen finden Sie unter Zimmerpaket-Metadaten. |
<Property> | Required | string | Die ID eines Hotels, für das die zugehörigen Daten gelten. Die
Wert dieses Elements muss ein String sein, der mit dem Eintrag übereinstimmt
<id> in Ihrem Hotellisten-Feed.
|
<RoomData> | Optional* | <RoomData> |
Beschreibt ein Zimmer. Diese Daten sind mit einem Partner und einem Hotel verknüpft.
aber nicht mit einem Reiseplan.
In Ihren Preisaktualisierungen verweisen Sie einfach auf die Zimmer-ID. |
* Mindestens entweder <PackageData> oder <RoomData>
ist erforderlich. |
Beispiele
Zimmer- und Paketdaten
Im folgenden Beispiel sehen Sie sowohl Zimmer- als auch Paketdaten in einem
<PropertyDataSet>
:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Wenn Sie Preise und Verfügbarkeit für dieses Zimmer und dieses Zimmerpaket senden, gilt Folgendes: in Ihren Preisnachrichten auf die Zimmer- und Paket-IDs verweisen. Das Ergebnis: die Größe Ihrer Nachrichten und auch die Anzahl der Fehler, die aufgrund von Datenduplikaten auftreten können. Weitere Informationen Informationen zu Zimmerpaket-Metadaten
<RoomData>
Definiert vom Reiseplan unabhängige Metadaten für Zimmer und somit auch für den Raum
Pakete (da Zimmerpakete Zimmer mit zusätzlicher Ausstattung umfassen). Verwenden Sie
<RoomData>
, um die Wiederholung beschreibender Daten im Preis zu reduzieren
Feed.
Das Element <RoomData>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
<RoomData>
-Elemente enthalten Informationen, die mit einem
Partner und Hotel, aber nicht mit einem Reiseplan. Der Zweck besteht darin,
nicht zum Reiseplan gehörenden Daten.
Das <RoomData>
-Element ähnelt <PackageData>
, beschreibt jedoch Folgendes:
statt auf die Ausstattung und die Bedingungen eines Pakets. Sie verwenden
<RoomData>
und <PackageData>
in Kombination, um Details zu
Zimmerpakete. Für einzelne Zimmer, die nicht Teil eines Pakets sind, verwenden Sie nur
<RoomData>
Sie können sowohl das <RoomData>
- als auch das <PackageData>
-Element für
für dasselbe Zimmer oder Zimmerpaket. Wenn Google dieses Zimmer oder Paket im
enthält sie Beschreibungen aus beiden, getrennt durch ein
Bindestrich.
Weitere Informationen finden Sie unter Zimmerpaket-Metadaten.
Syntax
Das <RoomData>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> ... <RoomData> <RoomID>room_ID</RoomID> <Name> <Text text="room_name" language="language_code"/> ... </Name> <Description> <Text text="room_description" language="language_code"/> ... </Description> <Capacity>max_number_of_occupants</Capacity> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults, children, or seniors --></OccupancyDetails> <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> ... </RoomFeatures> </RoomData> ... </PropertyDataSet> </Transaction>
Attribute
Das <RoomData>
-Element hat keine Attribute.
Untergeordnete Elemente
Das <RoomData>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<Capacity> | Optional | integer | Die maximale Anzahl von Gästen, die ein Zimmer physisch belegen kann
unterbringen. In einem Raum ist die Kapazität größer oder gleich
Belegung.
Wenn dieser Wert angegeben wird, muss er gleich oder größer als der Wert sein
des Der Wert von |
<Description> | Optional | Object | Eine detaillierte Beschreibung des Zimmers. Dieses Element sollte
Informationen enthalten, die nicht in anderen Elementen beschrieben sind oder den
<Name> -Element. Schreiben Sie nicht ausschließlich Großbuchstaben.
wenn Sie die Beschreibung des Zimmers angeben.
Das
Verwende für jede Sprache ein separates Das folgende Beispiel zeigt die französische und englische Version des Raums Beschreibung: <Description> <Text text="Two queen-sized beds" language="en"/> <Text text="Deux lits de la reine" language="fr"/> </Description> |
<Name> | Required | string | Der Name der Zimmerkategorie. Dieser Wert sollte dem entsprechen,
Erscheint auf der Landingpage des Hotels (früher Point of Sale) Nicht festlegen
Wert dieses Elements in Großbuchstaben schreiben.
Dieses Element verwendet das einzelne untergeordnete Element
Verwende für jede Sprache ein separates Das folgende Beispiel zeigt die französische und englische Version des Raums Name: <Name> <Text text="Standard Double Room" language="en"/> <Text text="Le chambre double" language="fr"/> </Name> |
<Occupancy> | Optional | integer | Die maximale Anzahl von Gästen, für die ein Zimmer vorgesehen ist.
In einer großen Suite können beispielsweise sechs
Gäste (Kapazität = 6), ist aber nur für bis zu 4 Personen vorgesehen.
Dieser Wert muss kleiner oder gleich dem
Der Wert von
|
<OccupancySettings> | Optional | Object | Einstellungen, mit denen die Belegungsanforderungen eines Geräts eingeschränkt oder geändert werden können
an.
Das Element
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Nicht alle untergeordneten Elemente müssen eingeschlossen werden. |
<PhotoURL> | Optional | Object | Eine URL und eine optionale Bildunterschrift für ein Foto des entsprechenden Zimmers oder
Zimmerpaket. Sie können mehrere <PhotoURL> angeben
für ein Zimmer oder Zimmerpaket. Jede Foto-URL muss eine eigene URL haben
<PhotoURL>
Dieses Element verwendet die folgenden untergeordneten Elemente:
Beispiel: <PhotoURL> <URL>https://www.example.com/static/bar/image1234.jpg</URL> <Caption> <Text text="A bright and breezy way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse et aérée pour profiter de votre journée tasse de thé." language="fr"/> </Caption> </PhotoURL> <PhotoURL> <URL>https://www.foo.com/static/bar/image5678.jpg</URL> <Caption> <Text text="Or, perhaps you prefer coffee." language="en"/> <Text text="Ou peut-être préférez-vous le café." language="fr"/> </Caption> </PhotoURL> |
<RoomFeatures> | Optional | <RoomFeatures> |
Enthält Informationen zu Zimmerausstattung. |
<RoomID> | Required | string | Die eindeutige ID für das Zimmer. Verwenden Sie diese ID, um die Zimmerdaten abzugleichen
durch die <Result> -Blöcke in Ihren Preisaktualisierungen. Für
Weitere Informationen finden Sie unter Zimmerpaket-Metadaten. (Sie
kann mit dieser ID auch auf eine gemeinsame Raumdefinition
Transaktionsnachricht, wenn Zimmerdaten inline definiert werden. |
Beispiele
Zimmerdaten
Im folgenden Beispiel werden Zimmerdaten definiert:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
Zimmer und Paketmetadaten
Im folgenden Beispiel werden Zimmer- und Paketmetadaten definiert:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Mehrere Zimmerpakete
Im folgenden Beispiel werden Zimmer- und Paketmetadaten für mehrere Zimmer Sets:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<!-- A transaction message with room types result. -->
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
<RoomID>single</RoomID>
<Name>
<Text text="Single room" language="en"/>
<Text text="Chambre simple" language="fr"/>
</Name>
<Description>
<Text text="A single room" language="en"/>
<Text text="Le chambre simple" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image1235.jpg</URL>
</PhotoURL>
<Capacity>2</Capacity>
</RoomData>
<RoomData>
<RoomID>double</RoomID>
<Name>
<Text text="Double room" language="en"/>
<Text text="Chambre double" language="fr"/>
</Name>
<Occupancy>1</Occupancy>
</RoomData>
<PackageData>
<PackageID>refundbreakfast</PackageID>
<Name>
<Text text="Refundable Room with Breakfast" language="en"/>
<Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Continental Breakfast" language="en"/>
<Text text="Petit déjeuner continental" language="fr"/>
</Description>
<ChargeCurrency>hotel</ChargeCurrency>
<Refundable available="1" refundable_until_days="3"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>prepaid</PackageID>
<Name>
<Text text="Nonrefundable" language="en"/>
<Text text="Non remboursable" language="fr"/>
</Name>
<Description>
<Text text="Blah blah blad" language="en"/>
<Text text="Le blah blah blad" language="fr"/>
</Description>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="0"/>
</PackageData>
</PropertyDataSet>
</Transaction>
<RoomFeatures>
Definiert Elemente im Raum.
Das Element <RoomFeatures>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<RoomFeatures>
Syntax
Das <RoomFeatures>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet ... > ... <RoomData> <RoomFeatures> <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle> <Beds> <Bed size="[single|semi_double|double|queen|king]"> <Width unit="cm" number="width"/> <Length unit="cm" number="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> ... </PropertyDataSet> </Transactions>
Attribute
Das <RoomFeatures>
-Element hat keine Attribute.
Untergeordnete Elemente
Das <RoomFeatures>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<JapaneseHotelRoomStyle> | Optional | enum | Zeigt den Stil eines japanischen Hotelzimmers an. Gültige Werte sind:
|
<Beds> | Optional | Object | Enthält so viele <Bed> wie der Raum hat. Hinweis
dass die japanischen Futons
hier nicht berücksichtigt werden.
Jeder
<Bed> -Element hat die folgenden untergeordneten Elemente:
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
<Suite> | Optional | empty | Geben Sie dieses Element an, wenn es sich bei diesem Zimmer um eine Suite handelt. |
<Capsule> | Optional | empty | Geben Sie dieses Element an, wenn dieser Raum ein Kapselraum ist. |
<Roomsharing> | Optional | enum | Gibt an, ob dieser Raum mit anderen Personen wie Eigentümern oder anderen Personen geteilt wird
Gäste. Gültige Werte sind shared und private . |
<Outdoor> | Optional | empty | Geben Sie dieses Element an, wenn es sich bei diesem Zimmer um eine Unterkunft im Freien handelt, die keine haben feste Wände, Sanitärinstallationen und Klimatisierung. Beispiel: Hotelzimmer sind keine Unterkünfte im Freien, während Zelte und Campingplätze Wohnmobilparks für Gäste mit eigenem Wohnmobil befinden sich im Freien. |
<MobilityAccessible> | Optional | empty | Geben Sie dieses Element an, wenn der Raum barrierefrei ist. |
<Smoking> | Optional | enum | Ob dieses Zimmer ein Nichtraucherzimmer oder ein Raucherzimmer ist. Gültige Werte
sind non_smoking und smoking . |
<BathAndToilet> | Optional | Object | Enthält Informationen zu einem Bad und einer Toilette im Raum.
Das Attribut ist:
Das Element verwendet optional die folgenden untergeordneten Elemente:
Beispiel: <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
<OpenAirBath> | Optional | empty | Dieses Element angeben, wenn der Raum ein eigenes Bad im Freien hat. |
<AirConditioning> | Optional | empty | Dieses Element muss angegeben werden, wenn das Zimmer mit einer Klimaanlage ausgestattet ist. |
<Balcony> | Optional | empty | Geben Sie dieses Element an, wenn das Zimmer einen Balkon oder eine Veranda hat. |
<Views> | Optional | Object | Gültige Optionen:
|
Beispiele
JapaneseHotelRoomStyle
hat keinen Standardwert. Auslassen
Ein -Wert führt nicht zu einem XML-Fehler, Ihr Eintrag wird jedoch nicht in
in den Suchergebnissen, wenn der Nutzer nach Zimmerstil oder Betten filtert.
2 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>
2 Doppelbetten
Hier sehen Sie ein Beispiel für ein japanisches Zimmer im Stil von western
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. Bett
Informationen sind für einen Raum im Stil von 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>
Japanischer Western mit Bett
Das folgende Beispiel zeigt einen Raum im japanese_western
-Stil mit king
.
haben.
<?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 keine Informationen zur Anzahl der Betten in japanese_western
hat
und führen Sie dann das Beispiel aus:
<?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>
<PackageData>
Definiert vom Reiseplan unabhängige Metadaten für Zimmerpakete für eine Unterkunft. Dieses Element enthält Informationen, die mit einem Partner und einem Hotel verknüpft sind. aber nicht mit einem Reiseplan. Der Zweck besteht darin, alle nicht zum Reiseplan gehörenden und von Reiseplandaten darauf verweisen.
Das Element <PackageData>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Das <PackageData>
-Element ähnelt <RoomData>
, ist aber
beschreibt Preismerkmale und Bedingungen, die nicht zum physischen Zimmer gehören.
Beschreibung. Sie verwenden <RoomData>
und <PackageData>
in Kombination für Folgendes:
finden Sie Details zu Zimmerpaketen und Preismerkmalen. Für einzelne Räume, die
nicht Teil eines Pakets sind, verwenden Sie nur <RoomData>
.
Sie können sowohl das <RoomData>
- als auch das <PackageData>
-Element für die
für dasselbe Zimmer oder Zimmerpaket. Wenn Google dieses Zimmer oder Paket im
enthält sie Beschreibungen aus beiden, getrennt durch ein
Bindestrich.
Wenn Sie ein einzelnes <PackageData>
-Element für eine Unterkunft aktualisieren, müssen Sie
Alle <PackageData>
- und <RoomData>
-Elemente für die Unterkunft aktualisieren.
Bei jedem <PropertyDataSet>
werden alle Daten für die Property berücksichtigt.
alle vorhandenen Daten überschrieben.
Weitere Informationen finden Sie unter Zimmerpaket-Metadaten.
Syntax
Das <PackageData>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
<PropertyDataSet ... >
<PackageData>
<PackageID>package_ID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
...
</Name>
<Description>
<Text text="package_description" language="language_code"/>
...
</Description>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
<Occupancy>max_number_of_intended_occupants</Occupancy>
<OccupancyDetails><!-- optional info about the types of guests,
whether adults or children --></OccupancyDetails>
<!-- 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>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Special Rewards">
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum">
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<!-- a PackageID with a MilesIncluded
rate feature -->
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en">
</Name>
<ChargeCurrency>hotel </ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000 </NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines">
</Provider>
</MilesIncluded>
</PackageData>
...
...
</PropertyDataSet>
...
</Transaction>
Attribute
Das <PackageData>
-Element hat keine Attribute.
Untergeordnete Elemente
Das <PackageData>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<BreakfastIncluded> | Optional | boolean | Gibt an, ob dieses Paket das Frühstück im Preis enthält.
Gültige Werte sind 0 (oder false ) und 1
(oder true ).
Es ist bevorzugt, dass Sie
|
<ChargeCurrency> | Optional | enum | Wann und wo der Nutzer für eine Buchung bezahlt Dieses Element verwendet
Syntax als <ChargeCurrency> in einem <Result> .
Der Standardwert ist |
<CheckinTime> | Optional | Time | Frühester möglicher Check-in-Zeitpunkt. Die Uhrzeit muss kürzer als 24:00 Uhr der Ortszeit des Hotels sein. |
<CheckoutTime> | Optional | Time | Späteste mögliche Check-out-Zeit in der Ortszeit des Hotels. |
<Description> | Optional | Object | Eine detaillierte Beschreibung des Pakets. Dieses Element sollte
Informationen enthalten, die nicht in anderen Elementen beschrieben sind oder den
<Name> -Element. Schreiben Sie nicht ausschließlich Großbuchstaben.
wenn Sie die Beschreibung des Zimmers angeben.
Das Element <Description> <Text text="Two breakfast buffet certificates for each night of stay." language="en"/> <Text text="Deux certificats petit-déjeuner buffet pour chaque nuit de séjour." language="fr"/> </Description> |
<InternetIncluded> | Optional | boolean | Wenn ein Paket kostenlosen Internetzugang umfasst,
während andere Pakete diese Ausstattung nicht beinhalten. Nicht festlegen
Element für Zimmerpakete in einem Hotel, das allen kostenlosen Internetzugang bietet.
Chatrooms. Dieses Element gilt nicht für kabelgebundenen oder kabellosen Internetzugang im Zimmer
Internetzugang, der in den Zimmern nicht verfügbar ist. Gültige Werte:
0 (oder false ) und 1
(oder true ).
|
<Meals> | Optional | Object | Enthält Informationen zu den Mahlzeiten in diesem Paket.
Das
Die optionalen Attribute werden nur verwendet, wenn Für Mahlzeitenfilter ( |
<Name> | Required | string | Der Name des Pakets. Dieser Wert sollte mit den Angaben auf der
auf der Landingpage des Hotels angezeigt. Wert dieses Elements nicht rein in Großbuchstaben einstellen
Buchstaben.
Dieses Element verwendet das einzelne untergeordnete Element <Name> <Text text="Bed and Breakfast" language="en"/> <Text text="Lit et petit déjeuné" language="fr"/> </Name> |
<Occupancy> | Optional | integer | Die maximale Anzahl von Gästen, für die ein Zimmerpaket vorgesehen ist.
In einer großen Suite können beispielsweise sechs
und nur für bis zu 4 Personen gedacht ist.
Dieser Wert muss kleiner oder gleich dem
Der Wert von Wenn Sie dieses Element sowohl in Hinweis: <Occupancy> wird eventuell begleitet von
<OccupancyDetails> für die Art der Gäste
(Erwachsene oder Kinder). Unter <OccupancyDetails> finden Sie Informationen zur Syntax und zum
Beschreibung untergeordneter Elemente.
|
<PackageID> | Required | string | Die eindeutige ID für das Paket. Verwenden Sie diese ID für
Zimmerpaketdaten mit den (Sie können diese ID auch verwenden, um auf eine allgemeine Definition für ein Zimmerpaket zu verweisen. Wird in einer einzelnen Transaktionsnachricht verwendet, wenn Zimmerpaketdaten definiert werden inline.) |
<ParkingIncluded> | Optional | boolean | Ob ein Zimmerpaket einen kostenlosen Parkplatz beinhaltet,
Die Parkplätze wären andernfalls kostenpflichtig. Nicht angeben
einen Wert für dieses Element für ein Hotel, das kostenlose Parkplätze anbietet.
Gültige Werte sind |
<PhotoURL> | Optional | Object | (Wie <PhotoURL> in <RoomData> ,
sondern für das Paket (z.B. Fotos von Mahlzeiten).
|
<Refundable> | Optional | Object | Ermöglicht das Eintragen eines Preises als vollständig erstattungsfähig oder mit einem kostenlosen
Kündigung. Wenn nicht angegeben, werden keine Informationen zu einer Erstattung angezeigt.
Eine Erstattungsrichtlinie auf <PackageData> -Ebene überschreibt die Erstattungsrichtlinie unter
das <Result> -Level. Eine Erstattungsrichtlinie auf <Rates> -Ebene überschreibt
die Erstattungsrichtlinien auf <PackageData> -Ebene. Erstattungsfähige Preise können
werden Nutzern auch durch alternative Optionen ohne direkte
das Schema für Transaktionsnachrichten ändern. Weitere Informationen zu diesen Optionen
Richtlinie für erstattungsfähige Preise.
Das folgende Beispiel zeigt den <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Hinweis: Wir empfehlen, alle Attribute festzulegen. Ein Feed Eine Statuswarnung wird generiert, wenn mindestens ein Attribut Nicht festgelegt. Wenn Sie keine Attribute festlegen, wird der Preis nicht als erstattungsfähig. Die Attribute sind:
Beachten Sie beim Festlegen der Attribute Folgendes:
|
<MembershipBenefits |
Optional | boolean | Der Preis enthält die Vorteile des Elite-Status für die Dauer des Aufenthalts. Enthält
folgende Parameter:
|
<CarRentalIncluded> | Optional | boolean | Im Preis ist die kostenlose Autovermietung für die Dauer des Aufenthalts enthalten. |
<MilesIncluded>> | Optional | boolean | Preis enthält Vielfliegermeilen. Zu den Parametern gehören:
|
<OnPropertyCredit> | Optional | boolean | Der Preis beinhaltet Guthaben in der Unterkunft (F&B, Resort, Spa usw.). Parameter:
|
<AirportTransportationIncluded> | Optional | Object | Im Preis ist der kostenlose Transport von und zu einem nahe gelegenen Flughafen enthalten. Das optionale Feld
Das direction -Attribut gibt die Direktionalität der
Transportwesen. Gültige Werte sind:
from : Der Transport vom Flughafen zum Flughafen wird angeboten.
Property. Dies ist der Standardwert, wenn keine Richtung angegeben ist.
to : Der Transfer vom und zum Flughafen wird angeboten.
Property.
round_trip : Der Transport wird sowohl zum als auch vom Flughafen angeboten.
Flughafen.
|
Beispiele
Einzelzimmerpaket
Im folgenden Beispiel wird ein Einzelzimmerpaket mit einer Belegung von 2 Personen (1 Erwachsener und 1 Kind) inkl. 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>
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Two certificates for continental
breakfast will be provided." language="en"/>
<Text text="Deux certificats pour le petit déjeuner
continental seront fournis." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Zimmer- und Paketmetadaten
Im folgenden Beispiel werden Zimmer- und Paketmetadaten definiert:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Mehrere Zimmerpakete
Im folgenden Beispiel werden Zimmer- und Paketmetadaten für mehrere Zimmer Sets:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<!-- A transaction message with room types result. -->
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
<RoomID>single</RoomID>
<Name>
<Text text="Single room" language="en"/>
<Text text="Chambre simple" language="fr"/>
</Name>
<Description>
<Text text="A single room" language="en"/>
<Text text="Le chambre simple" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image1235.jpg</URL>
</PhotoURL>
<Capacity>2</Capacity>
</RoomData>
<RoomData>
<RoomID>double</RoomID>
<Name>
<Text text="Double room" language="en"/>
<Text text="Chambre double" language="fr"/>
</Name>
<Occupancy>1</Occupancy>
</RoomData>
<PackageData>
<PackageID>refundbreakfast</PackageID>
<Name>
<Text text="Refundable Room with Breakfast" language="en"/>
<Text text="Chambre remboursable avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Continental Breakfast" language="en"/>
<Text text="Petit déjeuner continental" language="fr"/>
</Description>
<ChargeCurrency>hotel</ChargeCurrency>
<Refundable available="1" refundable_until_days="3"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>prepaid</PackageID>
<Name>
<Text text="Nonrefundable" language="en"/>
<Text text="Non remboursable" language="fr"/>
</Name>
<Description>
<Text text="Blah blah blad" language="en"/>
<Text text="Le blah blah blad" language="fr"/>
</Description>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="0"/>
</PackageData>
</PropertyDataSet>
</Transaction>
Zimmerpaket mit Preisen
Im folgenden Beispiel werden Zimmer- und Paketmetadaten für ein Zimmerpaket definiert. mit Preismerkmalen:
<Transaction timestamp="2010-04-24T20:44:56-04:00" id="TXNID">
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
...
</RoomData>
<!-- definitions of PackageData types including rate features -->
<PackageData>
<PackageID>room_with_addl_benefits</PackageID>
<Name>
<Text text="Acme Hotels 2017 Promotion Package" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<BreakfastIncluded>1</BreakfastIncluded>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Marriott Rewards"/>
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum"/>
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000</NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines"/>
</Provider>
</MilesIncluded>
<AirportTransportationIncluded direction="from"/>
</PackageData>
</PropertyDataSet>
<!-- The actual list of prices -->
<Result>
…
</Result>
</Transaction>
Mahlzeiten und Fotos
Im folgenden Beispiel werden Zimmer- und Paketmetadaten für Mahlzeiten definiert, Fotos und Ankunfts- und Abreisezeiten:
<?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>
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>
<Result>
Ein Container für Preis- und Verfügbarkeitsaktualisierungen in einem <Transaction>
angezeigt.
Das Element <Result>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Mit <Result>
können Sie Zimmerpreise festlegen oder aktualisieren und
verfügbares Inventar. In diesem Element definierte Elemente verweisen in der Regel
vom Reiseplan unabhängige Metadaten zu einem Zimmer oder Paket (z. B. eine Beschreibung oder
Ausstattung), die in <PackageData>
und <RoomData>
definiert sind.
Transaktionsnachrichten mit Preisaktualisierungen werden normalerweise sehr häufig gesendet. Wie und wie oft Sie dies tun, hängt von Ihrem Übermittlungsmodus ab.
Sie können <Result>
in einer Transaktionsnachricht verwenden, um Reisepläne zu entfernen:
wie unter Inventar entfernen beschrieben.
Weitere Informationen zur Verwendung von Transaktionsnachrichten zum Aktualisieren von Preisen und
Verfügbarkeit, Inventar hinzufügen und aktualisieren.
Eine Transaktionsnachricht kann beliebig viele <Result>
-Elemente enthalten.
die nicht größer als 100 MB ist.
Syntax
Das <Result>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <!-- Required --> <Property>hotel_ID</Property> <!-- Required --> <Checkin>YYYY-MM-DD</Checkin> <!-- Required --> <Nights>number_of_nights</Nights> <Baserate currency="currency_code">price</Baserate> <!-- Only required when <Baserate> contains a real price --> <Tax currency="currency_code">tax_amount</Tax> <!-- Only required when <Baserate> contains a real price --> <OtherFees currency="currency_code">fee_amount</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <RoomID>room_ID</RoomID> <PackageID>package_ID</PackageID> <ExpirationTime>expiration_time</ExpirationTime> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <!-- For Baserate, occupancy value must be greater than or equal to 2. If a value is not provided for occupancy, it defaults to 2. --> <OccupancyDetails>occupancy_info</OccupancyDetails> <Rates>...</Rates> <RoomBundle>...</RoomBundle> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> ... </AllowablePointsOfSale> <Custom[1-5]>custom_value</Custom[1-5]> </Result> ... </Transaction>
Attribute
Das <Result>
-Element hat die folgenden Attribute:
Attribut | Erforderlich/Optional? | Typ | Beschreibung |
---|---|---|---|
mergeable | Optional | boolean | Standardmäßig werden neue Preise für eine Kombination aus Hotel und Reiseplan
alle vorherigen (nicht abgelaufenen) Preise im Cache von Google überschreiben. Die
Mit dem Attribut „mergeable“ können Sie zusätzliche Preise im Cache von Google speichern
ohne vorherige Preisinformationen zu löschen. Livepreisabfrage mit
Bei Kontextantworten ist dieses Attribut immer auf true festgelegt
(unabhängig von der Antwort Ihrer Transaktionsnachricht). |
Untergeordnete Elemente
Das <Result>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | Eine oder mehrere Landingpages, die für das
Hotel. Eine Landingpage ist eine Website, auf der der Buchungsvorgang für den
Endanwendenden. Um bestimmte Landingpages explizit einzubeziehen (und
andere), fügen Sie eine oder mehrere <AllowablePointsOfSale> hinzu
-Elemente, die den Werten des <PointOfSale> -Elements entsprechen,
id -Attribut in der Landingpage-Datei.
Wenn Sie dieses Element nicht verwenden, werden alle in den Landingpage-Datei für die Buchung des an. Weitere Informationen finden Sie unter Syntax der Landingpage-Datei: |
<Baserate> | Optional | float | Der Preis des Zimmers für den Aufenthalt. Der Wert dieses Elements sollte Folgendes widerspiegeln:
Wenn das Zimmer für den Reiseplan nicht verfügbar ist,
Wenn Sie ein Zimmerpaket entfernen möchten, folgen Sie der Anleitung unter Zimmerpaket entfernen.
<Baserate currency="USD">1200.40</Baserate> Das Element
|
<ChargeCurrency> | Optional | enum | Wann und wo der Nutzer für eine Buchung bezahlt Dieses Element kann
werden in einer Transaktionsnachricht im <Result> verwendet.
Element für den Hotelpreis oder <PackageData> -Block
für ein Zimmerpaket.
Gültige Werte sind:
Der Standardwert ist |
<Checkin> | Required | Date | Das Check-in-Datum eines Reiseplans anhand des Date
Format. Die Kombination aus dem <Nights> -Element und dem
<Checkin> -Elemente bilden einen Reiseplan. |
<Custom[1‑5]> | Optional | string | Definiert ein benutzerdefiniertes Feld, mit dem Sie zusätzliche Daten übergeben können
die mit einem Hotel verknüpft sind. Sie können bis zu fünf benutzerdefinierte Werte mit der Methode
folgenden Elementnamen:
Mit den <Custom> Elemente in |
<ExpirationTime> | Optional | DateTime | Das Datum und die Uhrzeit, zu der der Preis als abgelaufen gilt (3 Stunden)
Minimum).
Wir empfehlen, keine Ablaufzeitstempel anzugeben, wenn ist für Ihre Preisstruktur nicht entscheidend. Google zeigt keine abgelaufenen Preise und keine Reisepläne an mit einem abgelaufenen Preis wird für Livepreisabfragen. |
<Nights> | Required | integer | Die Anzahl der Übernachtungen für einen Reiseplan. Der Wert der Eigenschaft
Das <Nights> -Element muss eine positive Ganzzahl sein.
Die Kombination aus <Nights> und
<Checkin> bilden einen Reiseplan. |
<OtherFees> | Optional | float | Neben dem Basispreis und den Steuern, die sich auf den
Endpreis eines Zimmers. Das <OtherFees> -Element nimmt
ein einzelnes erforderliches Attribut, currency , das den
Währungscode aus drei Buchstaben für die Gebühren. Beispiel: USD
Das Element |
<Occupancy> | Optional | integer | Gibt die maximal zulässige Anzahl von Personen für diesen Preis an.
Wenn <Occupancy> direkt unter <Result> erscheint,
Es muss mindestens 2 angegeben sein. <Occupancy> kann
begleitet von <OccupancyDetails> , was bedeutet,
Die Art der Gäste (Erwachsene oder Kinder) Wenn keine Gasttypen angegeben sind,
wird angenommen, dass sie erwachsen sind. Wende dich an <OccupancyDetails> für
Syntax und Beschreibung untergeordneter Elemente. Wenn die
<Occupancy> -Element ist nicht angegeben, Belegung ist
ist standardmäßig 2 .
Hinweis: Wenden Sie sich an Ihr Supportteam, um die Funktion zu aktivieren. Preise für eine von 2 abweichende Belegung senden. |
<PackageID> | Optional | string | Die eindeutige ID des Pakets, um es vordefinierten Paketdaten zuzuordnen. Wird auch zum Ausfüllen der Landingpage-Variable PACKAGE-ID verwendet. Weitere Informationen finden Sie unter Raum Metadaten gruppieren. |
<Property> | Required | string | Die ID eines Hotels, das von den zugehörigen Daten betroffen ist (Preis,
Reiseplan, Zimmerpaket oder Metadaten. Der Wert dieses Elements muss
eine Zeichenfolge. Der Wert dieses Elements muss dem Eintrag entsprechen
<id> , die Sie in Ihrem Hotellistenfeed definiert haben.
|
<Rates> | Optional | <Rates> |
Ein Container für einen oder mehrere <Rate> -Blöcke. Jede <Rate> in
<Rates> legt einen anderen Preis für die Zimmer/Reisepläne fest
Kombination.
Verwenden Sie das Element Hinweis: Innerhalb von |
<Refundable> | Optional | Object | Ermöglicht das Eintragen eines Preises als vollständig erstattungsfähig oder mit einem kostenlosen
Kündigung. Wenn nicht angegeben, werden keine Informationen zu einer Erstattung angezeigt.
Eine Erstattungsrichtlinie auf <PackageData> -Ebene überschreibt die Erstattungsrichtlinie unter
das <Result> -Level. Eine Erstattungsrichtlinie auf <Rates> -Ebene überschreibt
die Erstattungsrichtlinien auf <PackageData> -Ebene. Erstattungsfähige Preise können
werden Nutzern auch durch alternative Optionen ohne direkte
das Schema für Transaktionsnachrichten ändern. Weitere Informationen zu
Richtlinie für erstattungsfähige Preise.
Das folgende Beispiel zeigt den <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Hinweis: Wir empfehlen, alle Attribute festzulegen. Ein Feed Eine Statuswarnung wird generiert, wenn mindestens ein Attribut Nicht festgelegt. Wenn Sie keine Attribute festlegen, wird der Preis nicht als erstattungsfähig. Die Attribute sind:
Beachten Sie beim Festlegen der Attribute Folgendes:
|
<RoomBundle> | Optional | <RoomBundle> |
Ein Container für Informationen zu preislichen Beschreibungen eines Zimmers,
die Verpackung der Ausstattung und einige Details zur Kaufrichtlinie für die
basierend auf dem Hotel und dem Reiseplan.
Verwenden Sie dieses Element im Allgemeinen, um den Preis für das Basiszimmer und verschiedene Arten von Zimmern innerhalb derselben Unterkunft. Es ist zwar möglich, um Beschreibungen von Zimmerpaketen inline zu definieren, sollten Sie eine separate Transaktionsnachricht zum Definieren dieser Informationen. Google speichert damit Sie auf sie verweisen können, anstatt sie zu wiederholen, für zukünftige Preisaktualisierungen. |
<RoomID> | Optional | string | Die eindeutige ID des Zimmers, um es vordefinierten Zimmerdaten zuzuordnen. Ebenfalls wird zum Ausfüllen der Landingpage-Variable PARTNER-ROOM-ID verwendet. Weitere Informationen finden Sie unter Raum Metadaten gruppieren. |
<Tax> | Optional | float | Die Steuern, die für den endgültigen Preis eines Zimmers berechnet werden.
Das Element <Tax> verwendet ein einzelnes erforderliches Attribut,
currency für den aus drei Buchstaben bestehenden Währungscode
für die Steuern. Beispiel: USD Die
<Tax> -Element ist erforderlich, wenn
<Baserate> ist größer als null.
Wenn das |
<Unavailable> | Optional | Object | Gibt an, dass der Reiseplan nicht gebucht werden kann. Sie dient als
Container für detailliertere Gründe, warum der Reiseplan nicht verfügbar war. Eins
oder mehrere der folgenden Gründe für die Nichtverfügbarkeit
<Unavailable> -Tag:
|
Beispiele
Beispiel für mehrere Unterkünfte
Im folgenden Beispiel werden ein Reiseplan und seine Preise für zwei Eigenschaften:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
In diesem Beispiel sind keine Details zum Raum zu sehen, z. B. eine Beschreibung, ein Bild und eine Bildunterschrift, den Namen des Zimmers und seine Kapazität.
Sie können diese Informationen einmalig in einer separaten Transaktion definieren. die Google speichert. Sie können dann in allen für nachfolgende Preis- und Inventaraktualisierungen. Weitere Informationen finden Sie unter Zimmerpaket-Metadaten.
Beispiel für mehrere Preise
Im folgenden Beispiel werden ein einzelner Reiseplan und eine Unterkunft mit mehreren
Preise für verschiedene Belegungen. Das Element <Rates>
kann für Folgendes verwendet werden:
Preisgestaltung mit mehreren Preisen für eine bestimmte Unterkunft. Das folgende Beispiel ist
auch nützlich für Ferienunterkünfte:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-23T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2021-01-13</Checkin>
<Nights>9</Nights>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>2</Occupancy>
<Rates>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>1</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>3</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>4</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>5</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>6</Occupancy>
</Rate>
</Rates>
</Result>
</Transaction>
Beispiel für nicht verfügbare Inhalte
Im folgenden Beispiel wird ein Reiseplan definiert, dessen Verfügbarkeit aus Downstream-Kanälen abgerufen werden, wobei eine Sekunde unter dem Mindestwert liegt bereits für den angegebenen Zeitraum gebucht haben, und eine dritte, am Ankunftsdatum geschlossen ist, aber während der der Aufenthalt:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NotFetched/>
</Unavailable>
</Result>
<Result>
<Property>073313</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NoVacancy/>
<MinNightStay value=3/>
</Unavailable>
</Result>
<Result>
<Property>052213</Property>
<Checkin>2018-06-10</Checkin>
<Nights>10</Nights>
<Unavailable>
<PropertyClosed first_open="2018-06-15" first_closed="2018-06-10"/>
</Unavailable>
</Result>
</Transaction>
<Rates>
Ein Container für einen oder mehrere <Rate>
-Blöcke. Jede <Rate>
in
<Rates>
definiert einen anderen Preis für die Kombination aus Zimmer oder Reiseplan.
Verwenden Sie das Element <Rates>
nur, wenn es mehrere Preise für
mit derselben Kombination aus Zimmer oder Reiseplan. Beispielsweise definieren Sie mehrere
nutzerabhängige Preise,
Tarife für bestimmte Zielgruppen oder
nutzerabhängige Preise für Zimmerpakete.
Das Element <Rates>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
(Can also contain<Rates>
) + ...
Werte, die in einem <Rate>
festgelegt werden, überschreiben preisbezogene Werte im
übergeordnetes <Result>
- oder <RoomBundle>
-Element. Sind sie nicht in <Rate>
festgelegt,
erben sie ihren Wert vom übergeordneten Element. Nur
<AllowablePointsofSale> wird an das <RoomBundle>
-Element übernommen.
Syntax
Das <Rates>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <Rates> <Rate rate_rule_id="rate_rule_id"> <Baserate currency="currency_code">price</Baserate> <Tax currency="currency_code">tax_amount</Tax> <OtherFees currency="currency_code">fee_amount</OtherFees> <ExpirationTime>expiration_time</ExpirationTime> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> </AllowablePointsOfSale> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> ... <Custom[1-5]>custom_value</Custom[1-5]> </Rate> ... </Rates> </Result> ... </Transaction>
Attribute
Das <Rates>
-Element hat die folgenden Attribute:
Attribut | Erforderlich/Optional? | Beschreibung |
---|---|---|
rate_rule_id | Optional | Für nutzerabhängige Preise, stimmt diese ID einem Preis mit einer Definition in Ihrem Datei zum Festlegen der Preisregel. Die Zeichenbeschränkung für dieses Feld beträgt 40 Zeichen Zeichen. |
Untergeordnete Elemente
Das <Rates>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | Eine oder mehrere Landingpages, die für das
Hotel. Dieses Element verwendet dieselbe Syntax wie das
<AllowablePointsOfSale> auf <Result> . |
<Baserate> | Required | float | Der Preis des Zimmers für den Aufenthalt. Dieses Element verwendet
wie die <Baserate> in <Result> .
Hinweis: Das untergeordnete Element |
<ChargeCurrency> | Optional | enum | Wann und wo der Nutzer für eine Buchung bezahlt Dieses Element verwendet den
dieselbe Syntax wie für <ChargeCurrency> in einer
<Result> |
<Custom[1‑5]> | Optional | string | Benutzerdefinierte Felder, mit denen Sie zusätzliche Daten übergeben können, die mit
zu einer Landingpage weiterleiten. Dieses Element verwendet die gleiche Syntax wie ein
<Custom[1‑5]> in einem <Result> Es gibt ein Limit.
200 Zeichen pro benutzerdefiniertem Feld. Weitere Informationen finden Sie unter
Landingpage-Dateien.
Wenn <Custom> werden in den
|
<ExpirationTime> | Optional | DateTime | Das Datum und die Uhrzeit, zu denen der Preis als abgelaufen gilt. Dieses
verwendet die gleiche Syntax wie ein
<ExpirationTime> in einem <Result> |
<Occupancy> | Optional | integer | Gibt die maximal zulässige Anzahl von Personen für diesen Preis an. Falls nicht
wird davon ausgegangen, dass es sich um denselben übergeordneten Preis handelt.
|
<OtherFees> | Required | float | Neben dem Basispreis und den Steuern anfallende Gebühren, die sich auf den Endpreis auswirken
eines Raums. Dieses Element verwendet dieselbe Syntax wie
<OtherFees> in einem <Result>
Wenn das |
<Refundable> | Optional | Object | Ermöglicht das Eintragen eines Preises als vollständig erstattungsfähig oder mit einem kostenlosen
Kündigung. Wenn nicht angegeben, werden keine Informationen zu einer Erstattung angezeigt.
Eine Erstattungsrichtlinie auf <PackageData> -Ebene überschreibt die Erstattungsrichtlinie.
auf <Result> -Ebene. Eine Erstattungsrichtlinie auf <Rates> -Ebene überschreibt
die Erstattungsrichtlinien auf <PackageData> -Ebene. Erstattungsfähige Preise können
werden Nutzern auch durch alternative Optionen ohne direkte
das Schema für Transaktionsnachrichten ändern. Weitere Informationen zu diesen Optionen
Richtlinie für erstattungsfähige Preise.
Das folgende Beispiel zeigt den <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Hinweis: Wir empfehlen, alle Attribute festzulegen. Ein Feed Eine Statuswarnung wird generiert, wenn mindestens ein Attribut Nicht festgelegt. Wenn Sie keine Attribute festlegen, wird der Preis nicht als erstattungsfähig. Die Attribute sind:
Beachten Sie beim Festlegen der Attribute Folgendes:
|
<Tax> | Required | float | Die Steuern, die für den endgültigen Preis eines Zimmers berechnet werden. Dieses
-Element verwendet die gleiche Syntax wie für ein <Tax> in einem
<Result> |
Beispiele
Basispreis und nutzerabhängiger Preis
Das folgende Beispiel zeigt eine Transaktionsnachricht mit einem Basispreis. und einen nutzerabhängigen Preis:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
Mehrere nutzerabhängige Preise
Im folgenden Beispiel werden ein Basispreis und mehrere nutzerabhängige Preise definiert
innerhalb eines <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<RoomBundle>
Definiert Preise und Verfügbarkeit für Zimmerpakete als untergeordnetes Element von
<Result>
in einer <Transaction>
-Nachricht Definieren Sie für jedes Element ein separates Element.
Kombination aus Paket oder Reiseplan. Um Paket und Bedingungen des
Für Zimmerpakete <RoomData>
verwenden.
Das Element <RoomBundle>
wird an der folgenden Stelle im
XML-Hierarchie der Transaktionsnachricht:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Weitere Informationen finden Sie unter Verwenden von Zimmerpaketen.
Syntax
Das <RoomBundle>
-Element verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <RoomBundle> <!-- Required unless specified inline under<RoomData>
--> <RoomID>room_ID</RoomID> <!-- Required<PackageData>
--> <PackageID>package_ID</PackageID> <!-- Required --> <Baserate currency="currency_code">price</Baserate> <!-- Required --> <Tax currency="currency_code">taxes</Tax> <!-- Required --> <OtherFees currency="currency_code">other_fees</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <!-- Required --> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> <BreakfastIncluded>boolean_value</BreakfastIncluded> <InternetIncluded>boolean_value</InternetIncluded> <ParkingIncluded>boolean_value</ParkingIncluded> <RatePlanID>rate_plan_ID</RatePlanID> <Rates>...</Rates> <Custom1>custom_value_1</Custom1> <Custom2>custom_value_2</Custom2> <Custom3>custom_value_3</Custom3> <Custom4>custom_value_4</Custom4> <Custom5>custom_value_5</Custom5> </RoomBundle> ... </Result> </Transaction>
Attribute
Das <RoomBundle>
-Element hat keine Attribute.
Untergeordnete Elemente
Das <RoomBundle>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<Baserate> | Required | float | Definiert den Preis des Zimmerpakets für den Aufenthalt. Dieses Element verwendet
dieselbe Syntax wie <Baserate> in <Result> , mit dem Parameter
folgende Ausnahme:
|
<BreakfastIncluded> | Optional | boolean | Gibt an, ob dieses Zimmerpaket das Frühstück im Preis enthält. |
<ChargeCurrency> | Optional | enum | Wann und wo der Nutzer für eine Buchung bezahlt Dieses Element verwendet
Syntax als <ChargeCurrency> in einem <Result> .
Der Standardwert ist |
<Custom[1‑5]> | Optional | string | Benutzerdefinierte Felder zur Weitergabe zusätzlicher Daten an die Landingpages
für das Zimmerpaket an. Diese Elemente verwenden die gleiche Syntax wie
<Custom[1-5]> in <Result> Es sind maximal 200 Zeichen zulässig
Zeichen pro benutzerdefiniertem Feld. Weitere Informationen finden Sie unter
Landingpage-Dateien.
Wenn <Custom> werden in den
|
<InternetIncluded> | Optional | boolean | Wenn ein Zimmerpaket kostenlosen Internetzugang enthält, während andere Pakete diese Ausstattung nicht beinhalten. Nicht festlegen Element für Zimmerpakete in einem Hotel, das allen kostenlosen Internetzugang bietet. Chatrooms. Dieses Element gilt nicht für kabelgebundenen oder kabellosen Internetzugang im Zimmer Internetzugang, der in den Zimmern nicht verfügbar ist. |
<Occupancy> | Required | integer | Gibt die maximal zulässige Anzahl von Personen für diesen Preis an. Beispiel:
großen Suite mit Platz für bis zu 6 Personen,
„Flitterwochenpaket“ nur 2 Gäste.
Dieser Wert muss kleiner oder gleich dem
Verwenden Sie beim Definieren der Belegung in Ihrer Landingpage-URL den Parameter
Die Variablen Der Wert von Hinweise:
|
<OtherFees> | Required | float | Neben dem Basispreis und den Steuern, die sich auf den
Endpreis eines Zimmers. Das <OtherFees> -Element nimmt
ein einzelnes erforderliches Attribut, currency , das den
Währungscode aus drei Buchstaben für die Gebühren. Verwenden Sie beispielsweise
USD für US-Dollar. |
<PackageID> | Optional (recommended) | string | Die eindeutige ID für die Paketdaten. Verwenden Sie diese ID für
Zimmerpaketdaten mit dem, was in <PackageData> gesendet wurde. Für
finden Sie unter
Raum
Metadaten gruppieren. (Sie
kann mit dieser ID auch auf eine allgemeine Definition für ein Zimmerpaket verweisen.
in einer einzelnen Transaktionsnachricht, wenn Sie Zimmerpaketdaten definieren
inline.) |
<ParkingIncluded> | Optional | boolean | Ob ein Zimmerpaket einen kostenlosen Parkplatz beinhaltet,
Die Parkplätze wären andernfalls kostenpflichtig. Nicht angeben
einen Wert für dieses Element für ein Hotel, das kostenlose Parkplätze anbietet.
Gültige Werte sind |
<RatePlanID> | Optional | string | Die Preisplan-ID stellt die eindeutige Kennung für einen
Kombination aus Zimmern und Paketen. Wenn z. B. ein
<RoomID> -Wert von 5 und a
<PackageID> den Wert ABC haben, können Sie den Wert ABC verwenden.
5-ABC für <RatePlanID> . Wir empfehlen dringend,
RatePlanID als Variable zum Erstellen Ihrer dynamischen Landingpage verwenden
(früher Point of Sale) ein.
Weitere Informationen finden Sie unter Mit Variablen und Bedingungen. |
<Rates> | Optional | <Rates> |
Preise, die die Standardeinstellungen für dieses Zimmerpaket überschreiben. Dieses
-Element verwendet dieselbe Syntax wie <Rates> in <Result> . |
<Refundable> | Optional | Object | Ermöglicht das Eintragen eines Preises als vollständig erstattungsfähig oder mit einem kostenlosen
Kündigung. Wenn nicht angegeben, werden keine Informationen zu einer Erstattung angezeigt.
Eine Erstattungsrichtlinie auf <PackageData> -Ebene überschreibt die Erstattungsrichtlinie unter
das <Result> -Level. Eine Erstattungsrichtlinie auf <Rates> -Ebene überschreibt
die Erstattungsrichtlinien auf <PackageData> -Ebene. Erstattungsfähige Preise können
werden Nutzern auch durch alternative Optionen ohne direkte
das Schema für Transaktionsnachrichten ändern. Weitere Informationen zu diesen Optionen
Richtlinie für erstattungsfähige Preise.
Das folgende Beispiel zeigt den <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Hinweis: Wir empfehlen, alle Attribute festzulegen. Ein Feed Eine Statuswarnung wird generiert, wenn mindestens ein Attribut Nicht festgelegt. Wenn Sie keine Attribute festlegen, wird der Preis nicht als erstattungsfähig. Die Attribute sind:
Beachten Sie beim Festlegen der Attribute Folgendes:
|
<RoomID> | Required | string | Die eindeutige ID für die Zimmerdaten. Verwenden Sie diese ID für
Zimmerpaketdaten mit dem, was Sie in <RoomData> gesendet haben.
Weitere Informationen finden Sie unter
Zimmerpaketmetadaten. (Sie können mit dieser ID auch auf ein
gemeinsame Raumdefinition in einer einzelnen Transaktionsnachricht
Zimmerdaten inline anzeigen. |
<Tax> | Required | float | Die Steuern, die für den endgültigen Preis eines Zimmers berechnet werden.
Das <Tax> -Element verwendet ein einzelnes erforderliches Attribut,
currency für den aus drei Buchstaben bestehenden Währungscode
für die Steuern. Verwenden Sie beispielsweise USD für US-Dollar. |
Beispiele
Set mit Einzelbelegung
Im folgenden Beispiel wird eine Antwort mit einem einzelnen Belegungspaket definiert.
Wenn ein Nutzer in der Belegungsauswahl 1
auswählt, zeigt Google den niedrigsten Wert an
berechtigter Preis, unabhängig von der Belegung.
Wenn kein Preis für eine Einzelbelegung verfügbar ist, zeigt Google den niedrigster Preis für Doppelzimmer. Beachten Sie, dass die Preise für Einzelbelegung nicht Es wird live abgefragt, ob eine Doppelbelegung oder mehr Preise für ein Zimmer im Cache gespeichert sind. Flugreiseplan.
In diesem Beispiel wird auf vordefinierte Zimmer- und Paketmetadaten mit der Methode
<RoomID>
- und <PackageID>
-Elemente. Verwenden Sie die Operatoren <RoomData>
und
<PackageData>
-Elemente, um diese Informationen zu definieren.
<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 1 example ----->
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
<!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
<!-- Note: Once defined it does not have to be repeated for future
Transaction Messages.
PropertyDataSets can also be defined and sent in their own
Transaction Message separately from pricing. Google can be
configured to pull just PropertyDataSets once per day
(or on a predefined frequency). -->
<PropertyDataSet>
<Property>180054</Property>
<!-- Can be reused by multiple Room Bundles -->
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Queen Room - Non-Smoking" language="en"/>
<Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate up to 4, but package data specifies occupancy
between 1 to 4 -->
<Capacity>4</Capacity>
</RoomData>
<RoomData>
<RoomID>436233</RoomID>
<Name>
<Text text="Premium King Room - Non-Smoking" language="en"/>
<Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<Capacity>4</Capacity>
</RoomData>
<!-- Can be reused by multiple Room Bundles -->
<PackageData>
<PackageID>P11111</PackageID>
<Occupancy>1</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P54321</PackageID>
<Occupancy>2</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P12345</PackageID>
<Occupancy>4</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="1"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
</PropertyDataSet>
<!-- Efficient method of defining Room Bundles -->
<!-- Part 2: Reference RoomData and PackageData through ID -->
<Result>
<!-- Single occupancy pricing will be specified in a room bundle below -->
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Base Room Bundle -->
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P54321</PackageID>
<Baserate currency="USD">199.99</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RatePlanID>060773-P54321</RatePlanID>
</RoomBundle>
<RoomBundle>
<RoomID>060773</RoomID>
<PackageID>P11111</PackageID>
<!-- Price for 1 ("occupancy") is the lowest price and will be
displayed -->
<Baserate currency="USD">174.99</Baserate>
<Tax currency="USD">22.08</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RatePlanID>060773-P11111</RatePlanID>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Price for 4 ("occupancy"), any eligible room bundle with 1 or more
occupancy will be displayed-->
<Baserate currency="USD">298.88</Baserate>
<Tax currency="USD">42.12</Tax>
<OtherFees currency="USD">10.00</OtherFees>
<RatePlanID>436233-P12345</RatePlanID>
</RoomBundle>
<!-- ..Continue providing all available RoomBundle rates under matched
property for 1 or more occupancies..-->
</Result>
</Transaction>
Zwei oder mehr Belegungen
Im folgenden Beispiel wird eine Antwort definiert, die zwei oder mehr Belegungen enthält.
In diesem Beispiel wird auf vordefinierte Zimmer- und Paketmetadaten mit der Methode
<RoomID>
- und <PackageID>
-Elemente. Verwenden Sie die Operatoren <RoomData>
und
<PackageData>
-Elemente, um diese Informationen zu definieren.
<!-- Efficient method of defining Room Bundles-->
<!----- Occupancy of 3 example ----->
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="12345678">
<!-- Efficient method of defining Room Bundles-->
<!-- Part1: Define RoomData and PackageData in PropertyDataSet -->
<PropertyDataSet>
<Property>180054</Property>
<!-- Can be reused by multiple Room Bundles -->
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Queen Room - Non-Smoking" language="en"/>
<Text text="Chambre de la Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<!-- Room can accommodate up to 4, but package data specifies occupancy
between 1 to 4 -->
<Capacity>4</Capacity>
</RoomData>
<RoomData>
<RoomID>436233</RoomID>
<Name>
<Text text="Premium King Room - Non-Smoking" language="en"/>
<Text text="Chambre de le Roi Premium - Pas de Fumeurs" language="fr"/>
</Name>
<Capacity>4</Capacity>
</RoomData>
<!-- Can be reused by multiple Room Bundles -->
<PackageData>
<PackageID>P33333</PackageID>
<Occupancy>3</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
<PackageData>
<PackageID>P12345</PackageID>
<Occupancy>4</Occupancy>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="1" refundable_until_days="1"
refundable_until_time="18:00:00"/>
<ParkingIncluded>1</ParkingIncluded>
<InternetIncluded>1</InternetIncluded>
</PackageData>
</PropertyDataSet>
<Result>
<Property>180054</Property>
<Checkin>2017-10-07</Checkin>
<Nights>2</Nights>
<!-- Efficient method of defining Room Bundles -->
<!-- Part 2: Reference RoomData and PackageData through ID -->
<!-- Base Room Bundle -->
<RoomBundle>
<!-- Baserate above and attributes must match atleast one room bundle
below -->
<RoomID>060773</RoomID>
<PackageID>P33333</PackageID>
<Baserate currency="USD">499.99</Baserate>
<Tax currency="USD">55.12</Tax>
<OtherFees currency="USD">22.00</OtherFees>
</RoomBundle>
<!-- Premium Room Bundle -->
<RoomBundle>
<RoomID>436233</RoomID>
<PackageID>P12345</PackageID>
<!-- Lowest price for 3 ("occupancy"), shown below, will be displayed -->
<Baserate currency="USD">598.88</Baserate>
<Tax currency="USD">62.12</Tax>
<OtherFees currency="USD">30.00</OtherFees>
</RoomBundle>
<!-- ..Continue providing all available RoomBundle rates under matched
property for 2 or more occupancies..-->
</Result>
</Transaction>
Mehrere Zimmerpakete
Im folgenden Beispiel wird die Belegung in mehreren Raumpaketen festgelegt. mögliche Zimmerpreise für das Hostel.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
<Result>
...
<!-- Suite Room Bundle -->
<RoomBundle>
<RoomID>suite1</RoomID>
<PackageID>standard</PackageID>
<Occupancy>2</Occupancy>
<!-- Price for room -->
<Baserate currency="USD">80.00</Baserate>
<Tax currency="USD">5.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="Suite for 2" language="en"/>
</Name>
</RoomData>
</RoomBundle>
<!-- Small Dorm Room Bundle -->
<RoomBundle>
<RoomID>small_dorm</RoomID>
<PackageID>economy</PackageID>
<Occupancy>1</Occupancy>
<!-- Price per bed -->
<Baserate currency="USD">35.00</Baserate>
<Tax currency="USD">3.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="1 bed in small dorm" language="en"/>
</Name>
</RoomData>
</RoomBundle>
<!-- Large Dorm Room Bundle -->
<RoomBundle>
<RoomID>large_dorm</RoomID>
<PackageID>economy</PackageID>
<Occupancy>1</Occupancy>
<!-- Price per bed -->
<Baserate currency="USD">20.00</Baserate>
<Tax currency="USD">2.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<RoomData>
<Name>
<Text text="1 bed in large dorm" language="en"/>
</Name>
</RoomData>
</RoomBundle>
...
</Result>
</Transaction>
Mehrere nutzerabhängige Preise
Im folgenden Beispiel werden ein Basispreis und mehrere nutzerabhängige Preise definiert
innerhalb eines <RoomBundle>
:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>2</Nights>
<!-- When Google receives new room bundle information for an itinerary, all
previous room bundle pricing is dropped from Google's cache. Thus, if you
want to delete a specific room bundle from Google's cache, you may do so
by simply not providing that specific room bundle in subsequent transaction
messages. -->
<RoomBundle>
...
<!-- RoomID is required, PackageID is recommended. -->
<RoomID>5</RoomID>
<PackageID>ABC</PackageID>
<!-- Baserate is required. -->
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<!-- RatePlanID is optional and represents the unique identifier for a
room and package data combination. We strongly recommend using RatePlanID
as a variable to build your dynamic landing page (formerly Point of Sale)
URL. For details, see Using Variables and Conditions. -->
<RatePlanID>5-ABC</RatePlanID>
<!-- Occupancy is mandatory for RoomBundle elements. -->
<!-- Elements below will get inherited to nested rate elements. -->
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
</OccupancyDetails>
<InternetIncluded>1</InternetIncluded>
<!-- Rate rule "mobile" overrides chargeCurrency, "us_or_gb" doesn't. -->
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<!-- Neither rate overrides Custom2. -->
<Custom2>ratebasic</Custom2>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides ChargeCurrency from roombundle. -->
<ChargeCurrency>hotel</ChargeCurrency>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode321</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<!-- The value below overrides Custom1 from roombundle. -->
<Custom1>ratecode432</Custom1>
<!-- Custom2 is inherited from roombundle. -->
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>
<OccupancyDetails>
<Occupancy>
in einer Transaktionsnachricht gibt die maximale Anzahl von Gästen an
für ein Zimmer oder ein Paket. <OccupancyDetails>
kann zusätzliche Informationen enthalten
z. B. die Anzahl und Art der Gäste (Erwachsene oder Kinder).
Wenn <Occupancy>
und <OccupancyDetails>
im Element <Rates>
angezeigt werden
von <Result>
oder <RoomBundle>
bedeutet, dass der Preis durch
Details zur Belegung.
Syntax
Wenn <OccupancyDetails>
angezeigt wird, ist immer <Occupancy>
vorangestellt.
Beachten Sie die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <NumAdults>number_of_adults</NumAdults> <Children> <Child age=age_of_one_child_guest/> <Child age=age_of_one_child_guest/> </Children> </OccupancyDetails> </Result> </Transaction>
Untergeordnete Elemente
Das <OccupancyDetails>
-Element hat die folgenden untergeordneten Elemente:
Untergeordnetes Element | Erforderlich? | Typ | Beschreibung |
---|---|---|---|
<NumAdults> | Required | integer | Die Anzahl der erwachsenen Gäste. Min:1, Max:20. |
<Children> | Optional | Object | Ein Container für ein oder mehrere <Child> -Elemente. |
<Child age> | Optional | integer | Das maximale Alter für dieses Kind, z. B. <Child age="17"> . |
Beispiele
Die folgenden Beispiele zeigen, wie <OccupancyDetails>
innerhalb von
<Results>
, <RoomBundle>
oder das untergeordnete <Rates>
-Element.
Ergebnisantwort
Im folgenden Beispiel werden ein Reiseplan und dessen Preis für einen
als Antwort auf eine Livepreisabfrage, bei der der Nutzer
Anzahl und Art der Gäste. Hier sind die <OccupancyDetails>
– 2 Erwachsene und
Ein untergeordnetes Element - werden in <Result>
zurückgegeben.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
</Result>
</Transaction>
Antwortrate
Im folgenden Beispiel werden ein Reiseplan und seine Preise für 1 Erwachsenen definiert
und 1 Kind. Hier werden die <OccupancyDetails>
im <Rates>
zurückgegeben.
Element von <Result>
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" timestamp="2018-04-18T11:27:45-04:00">
<Result>
<Property>8251</Property>
<Checkin>2018-06-20</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">62.18</Baserate>
<Tax currency="USD">2.45</Tax>
<OtherFees currency="USD">0.00</OtherFees>
<Rates>
<Rate rate_rule_id="rule-951">
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Baserate currency="USD">42.61</Baserate>
<Tax currency="USD">5.70</Tax>
<OtherFees currency="USD">0.00</OtherFees>
<Custom1>abc4</Custom1>
<AllowablePointsOfSale>
<PointOfSale id="yourhotelpartnersite.com"/>
</AllowablePointsOfSale>
</Rate>
</Rates>
</Result>
</Transaction>
Zimmerpaket
Im folgenden Beispiel wird eine Belegung von 2 Erwachsenen und 1 Kind für
zwei Übernachtungen zu einem erstattungsfähigen Preis. Hier erscheinen die <OccupancyDetails>
innerhalb von <RoomBundle>
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>6781291</Property>
<Checkin>2017-08-05</Checkin>
<Nights>2</Nights>
...
<RoomBundle>
<RoomID>10291</RoomID>
<RatePlanID>564739</RatePlanID>
<PackageID>564739</PackageID>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="true" refundable_until_days="1" refundable_until_time="23:59:00" />
<Baserate currency="USD">185.34</Baserate>
<Tax currency="USD">37.06</Tax>
<OtherFees currency="USD">2.22</OtherFees>
</RoomBundle>
</Result>
</Transaction>
Mehrere Zimmerpakete
Im folgenden Beispiel werden mehrere <RoomBundle>
-Preise definiert, die
ist auf eine Belegung von 2 Erwachsenen und 2 Kindern beschränkt. Hier sehen Sie
<OccupancyDetails>
werden im <Rates>
-Element von <RoomBundle>
angezeigt.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<RoomBundle>
<RoomID>5</RoomID>
<PackageID>STD</PackageID>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<InternetIncluded>1</InternetIncluded>
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<Custom2>ratebasic</Custom2>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<ChargeCurrency>hotel</ChargeCurrency>
<Custom1>ratecode321</Custom1>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Custom1>ratecode432</Custom1>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>