XML-Referenz für Preise und Zimmerinventar (Transaktionen)

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 timestamp verarbeitet, nicht in in der Reihenfolge ihres Eingangs. Beispiel: Eine Preisaktualisierung mit einem Zeitstempel von 2019-05-03 14:09:00, der nach einem mit dem Zeitstempel 2019-05-03 14:10:00 wird verarbeitet werden, und der Preis aus der Nachricht mit den Der Zeitstempel 2019-05-03 14:10:00 wird verwendet.

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 <RoomBundle>, das Zimmerpakete und zusätzliche Zimmerarten für die Unterkunft. Die Das <Result>-Element kann auch zum Entfernen verwendet werden Reiseplänen aus dem Inventar.

* 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 <Occupancy>-Elements hinzugefügt. Dies ist die Anzahl der Gäste für ein bestimmtes Zimmer. Eine große Suite ist z. B. <Capacity> kann 6 sein, aber der <Occupancy> dafür ist 4.

Der Wert von <Capacity> muss eine positive Ganzzahl sein zwischen 1 und 20 (einschließlich) liegt.

<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 <Description>-Element verwendet ein einzelnes untergeordnetes Element Element <Text>, das die folgenden beiden enthält: Erforderliche Attribute:

  • text: Eine detaillierte Beschreibung des Raums.
  • language: Ein zweistelliger Sprachcode. zum Beispiel fr.

Verwende für jede Sprache ein separates <Text>-Element. in dem Ihre Anzeige oder Ihr kostenloser Buchungslink erscheinen kann (mit unterschiedlichen Werten für das language-Attribute).

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 <Text>, mit den folgenden zwei erforderlichen Attributen:

  • text: Der Name des Raums.
  • language: Ein zweistelliger Sprachcode. zum Beispiel fr.

Verwende für jede Sprache ein separates <Text>-Element. in denen Ihre Anzeige oder Ihr kostenloser Buchungslink erscheinen kann (mit unterschiedlichen Werte für die language-Attribute).

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 <Capacity>-Element, das die Anzahl der Personen angibt die im Zimmer Platz bieten.

Der Wert von <Occupancy> muss positiv sein Ganzzahl zwischen 1 und 99 (jeweils einschließlich).

<Occupancy> wird eventuell begleitet von <OccupancyDetails> mit dem Typ der Gäste (Erwachsene oder Kinder). Informationen zur Syntax finden Sie unter <OccupancyDetails> und eine Beschreibung untergeordneter Elemente.

<OccupancySettings> Optional Object Einstellungen, mit denen die Belegungsanforderungen eines Geräts eingeschränkt oder geändert werden können an.

Das Element <OccupancySettings> nimmt den Wert folgenden untergeordneten Elementen:

  • <MinOccupancy>: die Mindestanzahl von Gästen die in einem Raum bleiben können. Lautet der Parameter beispielsweise 2, dieser Raum kann nicht für einen einzelnen Gast gebucht werden.

    Der Wert von <MinOccupancy> muss positiv sein Ganzzahl zwischen 1 und 99 (jeweils einschließlich).

  • <MinAge>: Das Mindestalter für alle Gäste in einem Zimmer. Wenn beispielsweise 18 festgelegt ist, Dieser Raum kann nur für Gruppen gebucht werden, in denen alle Gäste mindestens 18 Jahre alt sind oder älter.

    Der Wert von <MinAge> muss eine positive Ganzzahl sein zwischen 0 und 99 (einschließlich).

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

  • <URL>: Gibt den Speicherort des Fotos an. Die Der Speicherort sollte öffentlich (nicht hinter einer Firewall) sein und enthält Das Protokoll (z. B. https://) Nur eine Option verwenden <URL> pro <PhotoURL>.
  • <Caption>: Definiert die Bildunterschrift für das Foto. Dieses Element verwendet das einzelne untergeordnete Element <Text>, mit zwei erforderlichen Attributen: text und language Das Attribut text ist der Untertitel, und das Attribut language einen aus zwei Buchstaben bestehenden Sprachcode wie en.

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:

  • western: Ein Zimmer im westlichen Stil mit Betten.
  • japanese: Ein Zimmer im japanischen Stil mit Futonbetten.
  • japanese_western: Ein Zimmer im japanischen Westernstil mit sowohl Betten im westlichen Stil als auch Futons im japanischen Stil.
<Beds> Optional Object Enthält so viele <Bed> wie der Raum hat. Hinweis dass die japanischen Futons hier nicht berücksichtigt werden.

Jeder <Bed> hat die folgenden Attribute:

  • size (optional): Gültige Werte sind single, semi_double, double, queen und king.
Jedes <Bed>-Element hat die folgenden untergeordneten Elemente:
  • <Width> (optional): Gibt die Bettbreite an. Muss haben das Attribut unit mit dem Wert cm und das Attribut number mit der Breite des Betts als Ganzzahl Zentimeter.
  • <Length> (optional): Gibt die Länge des Betts an. Muss das Attribut unit mit dem Wert cm haben und das Attribut number mit der Länge des Betts ganzzahlige Zentimeter.
Beispiel:
<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:

  • relation (optional): Gibt an, wie das Bad und die Toilette aussehen. aneinander platziert sind. Gültige Werte: together (Bad und Toilette befinden sich im selben Raum) (z.B. Badezimmer) direkt nebeneinander) und separate (Badezimmer und Toilette haben jeweils einen eigenen Bereich). Dieses Attribut darf nicht wenn es im Raum keine Badewanne und Toilette gibt.

Das Element verwendet optional die folgenden untergeordneten Elemente:

  • <Bath> (optional): Dieses Element ist vorhanden. gibt an, dass es im Raum ein Bad gibt.

    Die Attribute sind:

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

    Die Attribute sind:

    • electronic_bidet (optional): Gibt an, dass der Die Toilette verfügt über ein elektronisches Bidet. Gültige Werte sind 0 (oder false) und 1 (oder true).
    • mobility_accessible (optional): Gibt an, dass der Die Toilette ist rollstuhlgerecht. Gültige Werte: 0 (oder false) und 1 (oder true).

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:

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

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 <Meals> statt <BreakfastIncluded>.

<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 web.

<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> nimmt eine einzelne untergeordnetes Element <Text>, das zwei erforderliche Attribute hat: text und language. Das text ist die Beschreibung und das Attribut language gibt einen zweistelligen Sprachcode an, wie im folgenden Beispiel: Shows:

<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 <Meals>-Element verwendet zwei optionale untergeordnete Elemente, <Breakfast> und <Dinner> mit den folgenden Attributen:

  • included (erforderlich): Legen Sie diese Einstellung auf 1 (oder true) fest. Frühstück/Abendessen im Preis inbegriffen andernfalls auf 0 festgelegt oder false
  • in_room (optional): Legen Sie 1 (oder true) fest. Gäste haben die Möglichkeit, Frühstück/Abendessen auf dem Zimmer einzunehmen, in dem sie übernachten. in; Andernfalls auf 0 (oder false) festgelegt.
  • in_private_space (optional): Legen Sie 1 fest (oder true), wenn Gäste die Möglichkeit haben, Frühstück/Abendessen im Restaurant einzunehmen einem Raum (außer dem Raum, in dem sie sich aufhalten), in dem sie Kontakt mit ihnen vermeiden können Gäste haben, Andernfalls auf 0 (oder false) festgelegt.
  • buffet (optional): Legen Sie 1 (oder true) fest. Frühstück und Abendessen als Buffet andernfalls auf 0 festgelegt (oder false).

Die optionalen Attribute werden nur verwendet, wenn included true fest.

Für Mahlzeitenfilter (no meals, breakfast only, dinner only und breakfast and dinner) zur Arbeit, Sowohl <Breakfast> als auch <Dinner> benötigen mit dem Attribut included angegeben werden.

<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 <Text>, mit den beiden Attributen text und language. Das Attribut text ist die Beschreibung und der Das Attribut language gibt einen aus zwei Buchstaben bestehenden Sprachcode an. wie das folgende Beispiel zeigt:

<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 <Capacity>-Element, das die Anzahl der Personen angibt die im Zimmer Platz bieten.

Der Wert von <Occupancy> muss positiv sein Ganzzahl zwischen 1 und 99 (jeweils einschließlich).

Wenn Sie dieses Element sowohl in <RoomBundle> als auch in <PackageData> hat der Wert in <RoomBundle> Vorrang.

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 <Result>-Blöcken in Ihrem Preisaktualisierungen. Weitere Informationen finden Sie unter Raum Metadaten gruppieren.

(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 0 (oder false) und 1 (oder true). Der Standardwert ist false.

<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> -Element mit allen seinen Attributen festgelegt:

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

  • available: (erforderlich) Legen Sie 1 fest oder true, um anzugeben, ob der Preis einen vollständigen refund; Andernfalls auf 0 oder false gesetzt.
  • refundable_until_days: (erforderlich, wenn available ist true). Gibt an Anzahl der Tage vor dem Check-in, innerhalb derer eine volle Erstattung erfolgen kann angefordert. Wert von refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein, wobei die beiden Grenzwerte ebenfalls zulässig sind.
  • refundable_until_time: (dringend empfohlen, wenn available ist true). Gibt an die späteste Tageszeit in der Ortszeit des Hotels, dass ein voller Erstattungsantrag wird berücksichtigt. Dies kann mit refundable_until_days zum Angeben, für Beispiel: „Erstattungen sind bis 16:00 Uhr zwei Tage im Voraus möglich. Check-in“. Ist refundable_until_time nicht festgelegt, wird der Wert ist Mitternacht standardmäßig aktiviert.

    Für den Wert dieses Attributs wird das Format Zeit verwendet.

Beachten Sie beim Festlegen der Attribute Folgendes:

  • Wenn available oder refundable_until_days nicht festgelegt ist, wird der Preis nicht als erstattungsfähig angezeigt.
  • Wenn available 0 oder false ist, werden die anderen Attribute ignoriert. Der Preis wird nicht als erstattungsfähig, auch wenn eines oder beide der anderen Attribute festgelegt sind.
<MembershipBenefits Included> Optional boolean Der Preis enthält die Vorteile des Elite-Status für die Dauer des Aufenthalts. Enthält folgende Parameter:
  • ProgramName: Name des Elite-Statusprogramms
  • ProgramLevel: Stufe des Programms. Hier einige Beispiele: „Gold“.
  • NightlyValue (optional): Wert pro Übernachtung des Vorteile.
<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:
  • NumberofMiles: Anzahl der Meilen pro Reiseplan.
  • Provider: Vielfliegermeilen bieten.
<OnPropertyCredit> Optional boolean Der Preis beinhaltet Guthaben in der Unterkunft (F&B, Resort, Spa usw.). Parameter:
  • Amount: Der Wert des Guthabens pro Reiseplan in lokaler Währung Währung.
<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:

  • Legen Sie für ein privates Zimmer den günstigsten Preis für ein Doppelzimmer fest. die Sie anbieten. Höhere Belegungen sind hier erlaubt, wenn Sie keine ein Doppelzimmerpreis ist und in Ihrem Konto aktiviert sind. Wenden Sie sich an uns, um Preise für eine von 2 abweichende Belegung zu aktivieren. Preise für Einzelbelegung sind hier nicht zulässig. Sie unter <Rates> festgelegt werden.
  • Lassen Sie das Feld bei einem gemeinsamen Raum leer und verwenden Sie <RoomBundle>
  • Dieser Wert sollte dem Grundpreis für alle Übernachtungen entsprechen, nicht der durchschnittlichen Übernachtungspreis.

Wenn das Zimmer für den Reiseplan nicht verfügbar ist, <Baserate> muss entweder weggelassen oder auf -1 und <Unavailable> sollten und alle bekannten Gründe für die Nichtverfügbarkeit.

Wenn Sie ein Zimmerpaket entfernen möchten, folgen Sie der Anleitung unter Zimmerpaket entfernen.

<Baserate> darf keine Zifferngruppierung enthalten wie ein Komma (,) oder einen Punkt (.). Immer trennen Brüche mit einem Punkt (.) als Dezimalzeichen. Beispiel: 1.200,40 $folgendermaßen darstellen:

<Baserate currency="USD">1200.40</Baserate>

Das Element <Baserate> nimmt Folgendes an: optionale Attribute:

  • all_inclusive: Ein boolescher Wert, der angibt, ob diese Rate einschließlich Steuern und Gebühren. Im Allgemeinen setzen Sie diesen Wert auf false für Endnutzer in den USA und Kanada und Werte angeben für <Tax> und <OtherFees> Elemente. Wenn Sie Pauschalpreise verwenden, sind Sie möglicherweise nicht berechtigt, die in den Einträgen angezeigt werden sollen, wenn Ihre Preise keine Steuern separat enthalten. und Gebühren für Nutzer in Kanada.

    Pauschalpreise werden jetzt Nutzern in den USA angezeigt.

    Für alle anderen Endnutzer geben Sie in der Regel die Steuern und Gebühren an. in den Basispreis ein und legen Sie den Wert für all_inclusive fest. auf true setzen. Weitere Informationen finden Sie unter Steuern- und Gebührenrichtlinie:

    Der Standardwert ist false.

  • currency: Der aus drei Buchstaben bestehende Währungscode. Für Beispiel: USD für US-Dollar.
<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:

  • web: Der Nutzer zahlt online zum Zeitpunkt Buchung. „Immer“ ist der Standardwert. Die eigentliche Landingpage ist definiert durch den Landingpage-Datei und kann von der Währung des Nutzers, Standort, Sprache oder andere Faktoren.
  • hotel: Der Nutzer zahlt beim Check-in im Hotel. Wenn die Zahlung immer in der Währung des Hotels erfolgen muss, legen Sie Wert von <ChargeCurrency> auf hotel. Die tatsächliche Landingpage wird vom in die Währung des Nutzers ein.
  • deposit: Dem Nutzer wird sofort ein Teil in Rechnung gestellt und der Rest wird zu einem späteren Zeitpunkt in Rechnung gestellt, in der Regel wenn der Nutzer aus dem Hotel auscheckt.
  • installments: Dem Nutzer wird ein erster Teil in Rechnung gestellt. der fälligen Gesamtsumme und wird erwartet, dass er regelmäßig einen bestimmten Betrag ausgleicht innerhalb eines festgelegten Zeitraums.

Der Standardwert ist web.

<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:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

Mit den <Custom>-Elementen können Sie beliebige Daten übergeben. Sie können in diesem Feld beispielsweise einen Wert angeben, der dann die in der Landingpage-Datei verwendet wird, um eine benutzerdefinierte URL für eine Landingpage zu erstellen. Seite. Jedes benutzerdefinierte Feld darf maximal 200 Zeichen enthalten. Für finden Sie unter Landingpage-Dateien

&lt;Custom&gt; Elemente in <Rate> -Elements werden nicht an das <RoomBundle>-Element übernommen. Sie sollten <Custom> definieren separat in jedem <RoomBundle>.

<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 <OtherFees> ist erforderlich, wenn <Baserate> ist größer als null.

<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 <Rates>, wenn es mehrere Preise für die gleiche Zimmer/Reiseplan-Kombination haben oder ein Preis nicht zulässig ist, auf der Ebene <Result> angegeben werden. Beispielsweise definieren Sie mehrere Preise für nutzerabhängige Preise, Tarife für bestimmte Zielgruppen nutzerabhängige Preise in Zimmerpaketen oder bei anderen Belegungen.

Hinweis: Innerhalb von <Result> können Preise für Einzelbelegung gebucht werden. nur in <Rates> angegeben werden. Nehmen Sie Kontakt mit uns auf, um Preise für eine von 2 abweichende Belegung.

<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> -Element mit allen seinen Attributen festgelegt:

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

  • available: (erforderlich) Legen Sie 1 (oder true), um anzugeben, ob der Preis einen vollständigen refund; Andernfalls auf 0 (oder false) festgelegt.
  • refundable_until_days: (erforderlich, wenn available ist true). Gibt an Anzahl der Tage vor dem Check-in, innerhalb derer eine volle Erstattung erfolgen kann angefordert. Wert von refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein, wobei die beiden Grenzwerte ebenfalls zulässig sind.
  • refundable_until_time: (dringend empfohlen, wenn available ist true). Gibt an die späteste Tageszeit in der Ortszeit des Hotels, dass ein voller Erstattungsantrag wird berücksichtigt. Dies kann mit refundable_until_days zum Angeben, für Beispiel: „Erstattungen sind bis 16:00 Uhr zwei Tage im Voraus möglich. Check-in“. Ist refundable_until_time nicht festgelegt, wird der Wert ist Mitternacht standardmäßig aktiviert.

    Für den Wert dieses Attributs wird das Format Zeit verwendet.

Beachten Sie beim Festlegen der Attribute Folgendes:

  • Wenn available oder refundable_until_days nicht festgelegt ist, wird der Preis nicht als erstattungsfähig angezeigt.
  • Wenn available 0 (oder false) ist: werden die anderen Attribute ignoriert. Der Preis wird nicht als erstattungsfähig, auch wenn eines oder beide der anderen Attribute festgelegt sind.
<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 <Baserate>-Element „all_inclusive“ explizit auf "true" gesetzt ist, wird durch Festlegen value ist optional.

<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:
  • <NoVacancy/>: Es können keine weiteren Räume zum Verkauf angeboten werden für eine oder mehrere Nächte des Aufenthalts.
  • <MinNightStay value=N/>: Der Reiseplan lag unter dem Mindestaufenthalt von N für eine Übernachtung für den Aufenthaltszeitraum.
  • <MaxNightStay value=N/>: Der Reiseplan lag oberhalb von maximale Übernachtung von N für den Aufenthaltszeitraum.
  • <MinAdvancePurchase value=N/>: Der Reiseplan war unter dem minimalen Reservierungszeitraum von N für den Aufenthalt Daten.
  • <MaxAdvancePurchase value=N/>: Der Reiseplan war über dem maximalen Reservierungszeitraum von N für den Aufenthalt Daten.
  • <ClosedToArrival/>: Die Property lässt nicht zu. Check-in auf das Ankunftsdatum des Reiseplans.
  • <ClosedToDeparture/>: Die Property lässt nicht zu. Check-out am Abreisedatum des Reiseplans.
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: Die Unterkunft ist für einige oder für einige während des gesamten Aufenthalts. Empfohlene Attribute first_open und first_closed geben die ersten Datumsangaben an, die größer oder gleich sind. Das Ankunftsdatum, an dem die Unterkunft geöffnet bzw. geschlossen ist. Für eine Unterkunft, die nach dem Ankunftsdatum schließt, first_open sollte mit dem Ankunftsdatum übereinstimmen und first_closed sollte das Datum sein, an dem die Unterkunft schließt. Für eine Unterkunft, die am Ankunftsdatum, first_closed sollte der Ankunft entsprechen Datum und first_opened sollte das nächste Datum sein, an dem der Property geöffnet ist.
  • <NotFetched/>: Ein Preis für den Reiseplan war nicht die von nachgelagerten Datenquellen bereitgestellt werden.
  • <InvalidProperty/>: die angeforderte Property-ID wurde nicht erkannt.
  • <InvalidOccupancy/>: Die angeforderte Belegung ist nicht die von der Property unterstützt werden.
  • <PriceIssue/>: Ein Problem mit dem Preis hat dazu geführt, dass nicht gesendet werden.
  • <InternalError reason=""/>: ein nicht nummerierter Fehler aufgetreten. Das optionale Attribut „Grund“ kann den Fehler als Text melden.
  • <OtherRestriction restriction=""/>: Der Reiseplan war Aufgrund nicht aufgezählter Buchungsbeschränkungen nicht verfügbar. Optional Einschränkungsattribut ermöglicht es, die Einschränkung als Text zu melden.

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 &lt;AllowablePointsofSale&gt; 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 <Baserate> unter <Rate> kann nicht als nicht verfügbar definiert werden.

<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 <Result>-Elements, werden sie nicht im <RoomBundle>-Element und sollte für jedes Element separat definiert werden <RoomBundle> oder kann in <PackageData> enthalten sein wenn erforderlich.

<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. <Occupancy> wird eventuell begleitet von <OccupancyDetails> für die Art der Gäste (Erwachsene oder Kinder). Unter <OccupancyDetails> finden Sie Informationen zur Syntax und Beschreibung der untergeordneten Elementen.

<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 <Baserate>-Element „all_inclusive“ explizit auf "true" gesetzt ist, wird durch Festlegen value ist optional.

<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> -Element mit allen seinen Attributen festgelegt:

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

  • available: (erforderlich) Legen Sie 1 (oder true), um anzugeben, ob der Preis einen vollständigen refund; Andernfalls auf 0 (oder false) festgelegt.
  • refundable_until_days: (erforderlich, wenn available ist true). Gibt an Anzahl der Tage vor dem Check-in, innerhalb derer eine volle Erstattung erfolgen kann angefordert. Wert von refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein, wobei die beiden Grenzwerte ebenfalls zulässig sind.
  • refundable_until_time: (dringend empfohlen, wenn available ist true). Gibt an die späteste Tageszeit in der Ortszeit des Hotels, dass ein voller Erstattungsantrag wird berücksichtigt. Dies kann mit refundable_until_days zum Angeben, für Beispiel: „Erstattungen sind bis 16:00 Uhr zwei Tage im Voraus möglich. Check-in“. Ist refundable_until_time nicht festgelegt, wird der Wert ist Mitternacht standardmäßig aktiviert.

    Für den Wert dieses Attributs wird das Format Zeit verwendet.

Beachten Sie beim Festlegen der Attribute Folgendes:

  • Wenn available oder refundable_until_days nicht festgelegt ist, wird der Preis nicht als erstattungsfähig angezeigt.
  • Wenn available 0 (oder false) ist: werden die anderen Attribute ignoriert. Der Preis wird nicht als erstattungsfähig, auch wenn eines oder beide der anderen Attribute festgelegt sind.
<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:
  • Wenn das Zimmer für den Reiseplan nicht verfügbar ist, entfernen Sie den <RoomBundle>-Element, das angibt, dass es sich nicht um einen Raum handelt länger im Inventar sind. Weitere Informationen finden Sie unter Zimmerpaket entfernen.
<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 web.

<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 <Result>-Elements, werden sie nicht im <RoomBundle>-Element und sollte für jedes Element separat definiert werden <RoomBundle> oder kann in <PackageData> enthalten sein wenn erforderlich.

<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 <Capacity>, die Anzahl der Personen, die im Zimmer Platz bieten.

Verwenden Sie beim Definieren der Belegung in Ihrer Landingpage-URL den Parameter Die Variablen NUM-ADULTS und NUM-CHILDREN wie unter Verwendung von Variablen und Bedingungen. Der Standardwert ist 2 und 0 Kinder.

Der Wert von <Occupancy> muss positiv sein Ganzzahl zwischen 1 und 99 (jeweils einschließlich).

Hinweise:

  • <Occupancy> für <RoomBundle> wird dringend empfohlen, sodass die Kennzeichnung als erforderlich einen 1097-Fehler aus.
  • <Occupancy> stammt aus dem Datenobjekt in dieser Auftrag: <RoomBundle>, <PackageData> und dann = <RoomData>. Wenn in einem dieser Werte kein Wert vorhanden ist, wird der Standardwert 2 verwendet.
  • <Occupancy> wird eventuell begleitet von <OccupancyDetails>, mit der die Art der Gäste angegeben wird (Erwachsene oder Kinder). Wenn Gasttypen nicht angegeben sind, wird davon ausgegangen, dass es sich um Erwachsene handelt. Beratung <OccupancyDetails> für Syntax und Beschreibung untergeordneter Elemente
  • Wenn Sie <Occupancy> in beiden <RoomBundle> und <PackageData>, der Wert in <RoomBundle> hat Vorrang.
<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 0 (oder false) und 1 (oder true). Der Standardwert ist false.

<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> -Element mit allen seinen Attributen festgelegt:

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

  • available: (erforderlich) Legen Sie 1 (oder true), um anzugeben, ob der Preis einen vollständigen refund; Andernfalls auf 0 (oder false) festgelegt.
  • refundable_until_days: (erforderlich, wenn available ist true). Gibt an Anzahl der Tage vor dem Check-in, innerhalb derer eine volle Erstattung erfolgen kann angefordert. Wert von refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein, wobei die beiden Grenzwerte ebenfalls zulässig sind.
  • refundable_until_time: (dringend empfohlen, wenn available ist true). Gibt an die späteste Tageszeit in der Ortszeit des Hotels, dass ein voller Erstattungsantrag wird berücksichtigt. Dies kann mit refundable_until_days zum Angeben, für Beispiel: „Erstattungen sind bis 16:00 Uhr zwei Tage im Voraus möglich. Check-in“. Ist refundable_until_time nicht festgelegt, wird der Wert ist Mitternacht standardmäßig aktiviert.

    Für den Wert dieses Attributs wird das Format Zeit verwendet.

Beachten Sie beim Festlegen der Attribute Folgendes:

  • Wenn available oder refundable_until_days nicht festgelegt ist, wird der Preis nicht als erstattungsfähig angezeigt.
  • Wenn available 0 (oder false) ist: werden die anderen Attribute ignoriert. Der Preis wird nicht als erstattungsfähig, auch wenn eines oder beide der anderen Attribute festgelegt sind.
<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>