Riferimento XML per prezzi e inventario delle camere (messaggi Transaction)

Questa pagina fornisce un riferimento per i messaggi Transaction basati su XML.

<Transaction>

L'elemento principale di un messaggio Transaction è <Transaction>. È un contenitore per le informazioni descrittive camere e pacchetti, nonché i prezzi e la disponibilità di camere e pacchetti.

L'elemento <Transaction> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

I messaggi che utilizzano <Transaction> come elemento principale richiedono almeno uno elemento secondario. I messaggi Transaction possono avere un numero illimitato di elementi secondari, purché le dimensioni totali del messaggio non superino 100 MB.

Sintassi

L'elemento <Transaction> utilizza la seguente sintassi:

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

Attributi

L'elemento <Transaction> ha i seguenti attributi:

Attributo Obbligatorio? Tipo Descrizione
id Required stringa Un identificatore univoco per ogni messaggio Transaction.
partner Optional string L'account partner a cui è indirizzato il messaggio Transaction. Tu da utilizzare se il backend fornisce feed del prezzo per più e altri account partner. Questo valore di stringa è la "Chiave del partner" valore indicato il Impostazioni account in Hotel Center.
timestamp Required DateTime

Il momento in cui il messaggio Transaction è stato inviate.

I messaggi inviati con un timestamp entro le 24 ore precedenti verranno elaborati, mentre quelli non ancora elaborati verranno eliminati.

I messaggi vengono elaborati nell'ordine di timestamp, non in l'ordine di ricezione. Ad esempio, un aggiornamento di prezzo con un timestamp di 2019-05-03 14:09:00 ricevuto dopo un messaggio con timestamp di 2019-05-03 14:10:00 essere ancora elaborato in ordine e il prezzo del messaggio con verrà utilizzato il timestamp di 2019-05-03 14:10:00.

Elementi secondari

L'elemento <Transaction> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<PropertyDataSet> Optional* <PropertyDataSet>

Descrive una camera specifica e i pacchetti camera. In genere utilizzi questo in un messaggio Transaction separato per definire i valori condivisi per i pacchetti camera e riduci le dimensioni dei messaggi Transaction.

<Result> Optional* <Result>

Dati dei prezzi per l'itinerario di una camera o L'elemento <RoomBundle> che definisce i pacchetti camera e tipi di camere aggiuntivi per la struttura. La Puoi utilizzare anche l'elemento <Result> per rimuovere itinerari dall'inventario.

* Almeno uno tra <PropertyDataSet> o <Result> è obbligatorio.

Esempi

Dati della camera

L'esempio seguente definisce i dati della camera in un messaggio Transaction:

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

Dati sui prezzi

L'esempio seguente definisce i dati sui prezzi in un messaggio Transaction:

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

Tariffe per notte

L'esempio seguente definisce i dati sui prezzi per un periodo da 1 a 7 notti a partire da 7 giugno 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>


Base e tariffe agevolate

L'esempio seguente mostra un messaggio Transaction contenente una base e una tariffa agevolata:

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

Rimuovi inventario

L'esempio seguente rimuove diversi inventari (soggiorni di 1 notte per diverse date) per un hotel dall'inventario:

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

Un contenitore per le informazioni sulla camera e sul pacchetto (o pacchetto camera) in un <Transaction>. I valori impostati su un hotel sostituiscono quelli impostati su un partner. Google memorizza queste informazioni in modo che tu non debba specificarle ogni volta che invii gli aggiornamenti sui prezzi.

L'elemento <PropertyDataSet> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>  // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.

Sintassi

L'elemento <PropertyDataSet> utilizza la seguente sintassi:

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

Attributi

L'elemento <PropertyDataSet> non ha attributi.

Elementi secondari

L'elemento <PropertyDataSet> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<PackageData> Optional* <PackageData> Descrive un pacchetto camera. Questi dati sono associati a un partner e ma non con un itinerario. Questo elemento è simile a <RoomData>, ma descrive comfort e termini che non fanno parte della descrizione della stanza fisica.

Negli aggiornamenti di prezzo devi fare riferimento all'ID pacchetto.

Per ulteriori informazioni, consulta Metadati dei pacchetti camera.

<Property> Required string L'ID di un hotel a cui si applicano i dati associati. La di questo elemento deve essere una stringa corrispondente alla <id> nel tuo feed elenco hotel.
<RoomData> Optional* <RoomData> Descrive una camera. Questi dati sono associati a un partner e a un hotel. ma non con un itinerario.

Negli aggiornamenti di prezzo devi fare riferimento all'ID camera.

* Almeno uno tra <PackageData> o <RoomData> è obbligatorio.

Esempi

Dati di camere e pacchetti

L'esempio seguente mostra i dati delle camere e dei pacchetti in un <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>

Quando invii i prezzi e la disponibilità di questa camera e del pacchetto camera, fare riferimento agli ID camera e pacchetto nei messaggi sui prezzi. Il risultato è di ridurre notevolmente le dimensioni dei messaggi e anche che potresti riscontrare a causa di dati duplicati. Per ulteriori informazioni informazioni, consulta la sezione Metadati dei pacchetti camera.

<RoomData>

Definisce i metadati indipendenti dall'itinerario delle camere e, per estensione, della camera I pacchetti camera includono i pacchetti delle camere e i servizi aggiuntivi. Utilizza le funzionalità di <RoomData> per ridurre la ripetizione dei dati descrittivi nel prezzo Feed.

L'elemento <RoomData> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Gli elementi <RoomData> contengono informazioni associate a un partner e hotel, ma non con un itinerario. Sono destinati a tutti e non relativi all'itinerario.

L'elemento <RoomData> è simile a <PackageData>, ma descrive la camera fisica piuttosto che i comfort e i termini di un pacchetto. Utilizzi <RoomData> e <PackageData> in combinazione per fornire dettagli su Pacchetti camera. Per le singole camere che non fanno parte di un pacchetto, utilizza solo <RoomData>.

Puoi definire entrambi gli elementi <RoomData> e <PackageData> per per la stessa camera o lo stesso pacchetto camera. Quando Google mostra la camera o il pacchetto nella nei risultati di ricerca, verranno incluse le descrizioni di entrambi, separate da una trattino.

Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.

Sintassi

L'elemento <RoomData> utilizza la seguente sintassi:

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

Attributi

L'elemento <RoomData> non ha attributi.

Elementi secondari

L'elemento <RoomData> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<Capacity> Optional integer Il numero massimo di ospiti che una camera può fisicamente possono ospitare. Per una camera, la capacità è maggiore o uguale a ingente di persone.

Se specificato, questo valore deve essere uguale o superiore al valore dell'elemento <Occupancy>, che è lo scopo di ospiti per una determinata camera. Ad esempio, un container di grandi dimensioni <Capacity> potrebbe essere 6, ma il <Occupancy> per fa 4.

Il valore di <Capacity> deve essere un numero intero positivo tra 1 e 20 inclusi.

<Description> Optional Object Una descrizione dettagliata della camera. Questo elemento deve Contengono informazioni non descritte da altri elementi o Elemento <Name>. Non usare lettere maiuscole quando specifichi la descrizione della camera.

L'elemento <Description> utilizza un singolo elemento secondario <Text>, che ha i due seguenti elementi attributi obbligatori:

  • text: una descrizione dettagliata della camera.
  • language: un codice lingua di due lettere; ad esempio fr.

Usa un elemento <Text> separato per ogni lingua in cui potrebbe essere visualizzato il tuo annuncio o link di prenotazione gratuito (con valori diversi per language).

L'esempio seguente mostra le versioni in francese e in inglese della stanza descrizione:

<Description>
  <Text text="Two queen-sized beds" language="en"/>
  <Text text="Deux lits de la reine" language="fr"/>
</Description>
<Name> Required string Il nome della categoria della camera. Questo valore deve corrispondere a quello vengono visualizzate sulla pagina di destinazione dell'hotel (in precedenza point of sale). Non impostare il valore di questo elemento utilizzando solo lettere maiuscole.

Questo elemento utilizza un singolo elemento secondario, <Text>, che ha i due seguenti attributi obbligatori:

  • text: il nome della stanza.
  • language: un codice lingua di due lettere; ad esempio fr.

Usa un elemento <Text> separato per ogni lingua in cui potrebbe essere visualizzato l'annuncio o il link di prenotazione gratuito (con valori per gli attributi language).

L'esempio seguente mostra le versioni in francese e in inglese della stanza nome:

<Name>
  <Text text="Standard Double Room" language="en"/>
  <Text text="Le chambre double" language="fr"/>
</Name>
<Occupancy> Optional integer Il numero massimo di ospiti previsto per una camera. Ad esempio, una suite di grandi dimensioni può ospitare fisicamente 6 ospiti (capienza = 6), ma l'hotel è destinato solo a un massimo di 4 persone.

Questo valore deve essere minore o uguale al Elemento <Capacity>, ovvero il numero di persone che la camera può ospitare fisicamente.

Il valore di <Occupancy> deve essere un numero positivo numero intero compreso tra 1 e 99 inclusi.

<Occupancy> può essere accompagnato da <OccupancyDetails>, che specifica il tipo di ospiti (adulti o bambini). Per la sintassi, consulta la sezione <OccupancyDetails> e la descrizione degli elementi secondari.

<OccupancySettings> Optional Object Impostazioni che possono limitare o modificare i requisiti di occupazione di un nella finestra iniziale.

L'elemento <OccupancySettings> utilizza i seguenti elementi secondari:

  • <MinOccupancy>: il numero minimo di ospiti che possono rimanere in una stanza. Ad esempio, se questo è impostato su 2, questa stanza non può essere prenotata per un singolo invitato.

    Il valore di <MinOccupancy> deve essere un numero positivo numero intero compreso tra 1 e 99 inclusi.

  • <MinAge>: l'età minima per tutti gli ospiti che resta in una stanza. Ad esempio, se questo valore è impostato su 18, questa stanza può essere prenotata solo per gruppi in cui tutti gli ospiti hanno almeno 18 anni o meno recenti.

    Il valore di <MinAge> deve essere un numero intero positivo compreso tra 0 e 99 inclusi.

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

Non è necessario includere tutti gli elementi secondari.

<PhotoURL> Optional Object Un URL e una didascalia facoltativa per una foto di una determinata stanza o Pacchetto camera. Puoi specificare più di un <PhotoURL> per una camera o un pacchetto camera. Ogni URL delle foto deve essere un URL separato <PhotoURL>.

Questo elemento utilizza i seguenti elementi secondari:

  • <URL>: specifica la posizione della foto. La la posizione deve essere pubblica (non dietro un firewall) e deve includere il protocollo (ad esempio, https://). Utilizzane solo uno <URL> per <PhotoURL>.
  • <Caption>: definisce la didascalia della foto. Questo elemento utilizza un singolo elemento secondario, <Text>, che ha due attributi obbligatori: text e language. L'attributo text è la didascalia, mentre l'attributo language specifica un formato di due lettere come en.

Esempio:

<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> Contiene informazioni sulle caratteristiche della camera.
<RoomID> Required string L'ID univoco della camera. Utilizza questo ID per associare i dati della camera con i blocchi <Result> negli aggiornamenti dei prezzi. Per Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera. (tu puoi utilizzare questo ID anche per fare riferimento a una definizione comune di stanza in un singolo il messaggio Transaction quando definisci i dati della camera in linea.)

Esempi

Dati della camera

L'esempio seguente definisce i dati della camera:

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

Stanza e metadati del pacchetto

L'esempio seguente definisce i metadati di camere e pacchetti:

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

Più pacchetti camera

L'esempio seguente definisce i metadati di camere e pacchetti per più camere Pacchetti:

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

Definisce le funzionalità trovate nella stanza.

L'elemento <RoomFeatures> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
            + <RoomFeatures>

Sintassi

L'elemento <RoomFeatures> utilizza la seguente sintassi:

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

Attributi

L'elemento <RoomFeatures> non ha attributi.

Elementi secondari

L'elemento <RoomFeatures> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<JapaneseHotelRoomStyle> Optional enum

Indica lo stile di una camera d'albergo giapponese.

I valori validi sono:

  • western: una camera in stile western con letti.
  • japanese: una camera in stile giapponese con futon.
  • japanese_western: una camera in stile occidentale giapponese con letti in stile occidentale e futon in stile giapponese.
<Beds> Optional Object Contiene un numero di <Bed> pari a quello della camera. Nota che i futon giapponesi non devono essere conteggiati qui.

Ogni <Bed> ha i seguenti attributi:

  • (Facoltativo) size: i valori validi sono single, semi_double, double, queen e king.
di Gemini Advanced. Ogni <Bed> ha i seguenti elementi secondari:
  • (Facoltativo) <Width>: specifica la larghezza del letto. Deve presentano l'attributo unit con il valore cm e l'attributo number con la larghezza del letto in un numero intero centimetri.
  • <Length> (facoltativo): specifica la lunghezza del letto. L'attributo unit deve avere il valore cm e l'attributo number con la lunghezza del letto centimetri interi.
di Gemini Advanced. Esempio:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
<Suite> Optional empty Fornisci questo elemento quando questa camera è una suite.
<Capsule> Optional empty Fornisci questo elemento se la stanza è una capsula.
<Roomsharing> Optional enum Se questa stanza è condivisa con altri occupanti, come proprietari o altri ospiti. I valori validi sono shared e private.
<Outdoor> Optional empty Fornisci questo elemento quando questa camera è una struttura ricettiva all'aperto che non hanno pareti fisse, impianti idraulici e di climatizzazione. Ad esempio, camere d'albergo non sono alloggi all'aperto, mentre i campeggi in cui gli ospiti soggiornano in tende Le aree di sosta per camper dove gli ospiti portano il proprio camper sono alloggi all'aperto.
<MobilityAccessible> Optional empty Fornisci questo elemento quando la stanza è accessibile a persone con mobilità ridotta.
<Smoking> Optional enum Indica se questa è una camera per non fumatori o per fumatori. Valori validi sono non_smoking e smoking.
<BathAndToilet> Optional Object Contiene informazioni su una vasca e servizi igienici nella camera.

L'attributo è:

  • (Facoltativo) relation: indica come il bagno e i servizi igienici sono posizionati l'uno contro l'altro. I valori validi sono together (vasca e servizi igienici si trovano nella stessa stanza) (ad es. bagno) direttamente uno accanto all'altro) e separate (vasca da bagno e servizi igienici dispongono di spazi dedicati). Questo attributo non deve essere impostata quando la stanza non dispone di vasca e servizi igienici.

Facoltativamente, l'elemento accetta i seguenti elementi secondari:

  • <Bath> (facoltativo): l'esistenza di questo elemento indica che la camera dispone di un bagno.

    Gli attributi sono:

    • bathtub (facoltativo): indica che il bagno ha un nella vasca da bagno. I valori validi sono 0 (o false) e 1 (o true).
    • shower (facoltativo): indica che il bagno ha un sotto la doccia. I valori validi sono 0 (o false) e 1 (o true).
  • <Toilet> (facoltativo): l'esistenza di questo elemento indica che questa stanza è dotata di servizi igienici.

    Gli attributi sono:

    • electronic_bidet (facoltativo): indica che Wc è dotato di un bidet elettronico. I valori validi sono 0 (o false) e 1 (o true).
    • mobility_accessible (facoltativo): indica che sono accessibili da persone con mobilità ridotta. I valori validi sono 0 (o false) e 1 (o true).

Esempio:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath> Optional empty Fornisci questo elemento quando questa camera ha una vasca privata all'aperto.
<AirConditioning> Optional empty Fornisci questo elemento se questa camera è dotata di aria condizionata.
<Balcony> Optional empty Fornisci questo elemento se questa camera ha un balcone o una veranda.
<Views> Optional Object Le opzioni valide includono:

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

Esempi

JapaneseHotelRoomStyle non ha un valore predefinito. Omissione un valore non genera un errore XML, ma la tua scheda non viene visualizzata nei risultati di ricerca, quando l'utente filtra per stile della camera o letti.

Due letti singoli

L'esempio seguente mostra come utilizzare <RoomFeatures>:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two single beds -->
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>private</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>non_smoking</Smoking>
        <BathAndToilet relation="separate">
          <Bath bathtub="1" shower="1"/>
          <Toilet electronic_bidet="1" mobility_accessible="1"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <LakeView/>
          <MarinaView/>
          <BeachView/>
          <ForestView/>
          <MountainView/>
          <NatureView/>
        </Views>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Due letti matrimoniali

Di seguito è riportato un esempio di camera giapponese in stile western con due double letti.

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


Stile giapponese senza letto

Di seguito è riportato un esempio di camera in stile giapponese senza letto. Letto non sono necessarie informazioni per la camera in stile japanese.

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

Western giapponese con letto

Di seguito è riportato un esempio di camera in stile japanese_western con king di dimensioni diverse.

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

Se il partner non dispone delle informazioni sul numero di letti in japanese_western stanze virtuali, quindi segui l'esempio:

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

Definisce i metadati indipendenti dall'itinerario sui pacchetti camera per una struttura. Questo elemento contiene informazioni associate a un partner e a un hotel, ma non con un itinerario. Lo scopo previsto è definire tutti gli elementi diversi dall'itinerario una sola volta e farvi riferimento dai dati dell'itinerario.

L'elemento <PackageData> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

L'elemento <PackageData> è simile a <RoomData>, ma descrivono le caratteristiche e i termini delle tariffe che non fanno parte della camera fisica o l'audiodescrizione. Utilizzi <RoomData> e <PackageData> in combinazione per fornire dettagli sui pacchetti camera e sulle caratteristiche delle tariffe. Per le singole stanze con non fanno parte di un pacchetto, utilizza solo <RoomData>.

Puoi definire entrambi gli elementi <RoomData> e <PackageData> per stessa camera o un pacchetto camera. Quando Google mostra la camera o il pacchetto nella nei risultati di ricerca, verranno incluse le descrizioni di entrambi, separate da una trattino.

Se aggiorni un singolo elemento <PackageData> per una proprietà, devi aggiorna tutti gli elementi <PackageData> e <RoomData> per la proprietà. Ogni elemento <PropertyDataSet> viene considerato come tutti i dati relativi alla proprietà e sovrascrive eventuali dati esistenti.

Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.

Sintassi

L'elemento <PackageData> utilizza la seguente sintassi:

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

Attributi

L'elemento <PackageData> non ha attributi.

Elementi secondari

L'elemento <PackageData> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<BreakfastIncluded> Optional boolean Specifica se questo pacchetto include la colazione con la tariffa. I valori validi sono 0 (o false) e 1 (o true).

È preferibile utilizzare <Meals> anziché <BreakfastIncluded>.

<ChargeCurrency> Optional enum Quando e dove l'utente paga per una prenotazione. Questo elemento utilizza lo stesso come <ChargeCurrency> in <Result>.

Il valore predefinito è web.

<CheckinTime> Optional Time La prima ora di check-in possibile. L'orario deve essere inferiore alle 24:00 dell'ora locale dell'hotel.
<CheckoutTime> Optional Time Ultimo orario di check-out possibile nell'ora locale dell'hotel.
<Description> Optional Object Una descrizione dettagliata del pacchetto. Questo elemento deve Contengono informazioni non descritte da altri elementi o Elemento <Name>. Non usare lettere maiuscole quando specifichi la descrizione della camera.

L'elemento <Description> utilizza una singola elemento secondario <Text>, che ha due attributi obbligatori, text e language. text è la descrizione e l'attributo language specifica un codice lingua di due lettere, come nell'esempio seguente mostra:

<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 Se un pacchetto include l'accesso a internet senza costi, mentre altri pacchetti non lo includerebbero. Non impostare per i pacchetti camera in un hotel che offre la connessione internet gratuita a tutti nelle stanze virtuali. Questo elemento non si applica all'accesso cablato o wireless all'interno delle camere internet non disponibile nelle camere degli ospiti. I valori validi sono 0 (o false) e 1 (o true).
<Meals> Optional Object Contiene informazioni sui pasti inclusi in questo pacchetto.

L'elemento <Meals> utilizza due elementi secondari facoltativi elementi, <Breakfast> e <Dinner>, che hanno i seguenti attributi:

  • included (obbligatorio): impostato su 1 (o true) se la tariffa include colazione/cena; altrimenti impostato su 0 o false.
  • (Facoltativo) in_room: impostato su 1 (o true) se gli ospiti possono consumare la colazione/cena nella camera del soggiorno in; altrimenti impostato su 0 (o false).
  • (Facoltativo) in_private_space: imposta su 1 (oppure true) se gli ospiti hanno la possibilità di consumare la colazione/cena nel locale uno spazio (ad eccezione della stanza in cui alloggia) in cui evitare il contatto gli altri ospiti; altrimenti impostato su 0 (o false).
  • (Facoltativo) buffet: impostato su 1 (o true) se la colazione e la cena sono servite a buffet; altrimenti impostato su 0 (o false).

Gli attributi facoltativi vengono utilizzati solo quando included è vero.

Per i filtri dei pasti (no meals, breakfast only, dinner only e breakfast and dinner) al lavoro, sia <Breakfast> che <Dinner> richiedono da fornire con l'attributo included.

<Name> Required string Il nome del pacchetto. Questo valore deve corrispondere a quanto visualizzato nella pagina di destinazione dell'hotel. Non impostare il valore di questo elemento solo su lettere maiuscole lettere.

Questo elemento utilizza un singolo elemento secondario, <Text>, che ha due attributi, text e language. L'attributo text è la descrizione, mentre L'attributo language specifica un codice lingua di due lettere, come illustrato nell'esempio seguente:

<Name>
  <Text text="Bed and Breakfast" language="en"/>
  <Text text="Lit et petit déjeuné" language="fr"/>
</Name>
<Occupancy> Optional integer Il numero massimo di ospiti destinato a un pacchetto camera. Ad esempio, una suite di grandi dimensioni può ospitare fisicamente 6 ma l'alloggio è in grado di ospitare solo quattro persone.

Questo valore deve essere minore o uguale al Elemento <Capacity>, ovvero il numero di persone che la camera può ospitare fisicamente.

Il valore di <Occupancy> deve essere un numero positivo numero intero compreso tra 1 e 99 inclusi.

Se specifichi questo elemento sia in <RoomBundle> che <PackageData>, il valore in <RoomBundle> ha la precedenza.

Nota:

<Occupancy> può essere accompagnato da <OccupancyDetails>,che specifica il tipo di ospiti (adulti o bambini). Fai riferimento alla sezione <OccupancyDetails> per la sintassi e descrizione degli elementi secondari.
<PackageID> Required string

L'ID univoco del pacchetto. Utilizza questo ID per abbinare I dati dei pacchetti camera con i blocchi <Result> nel tuo i prezzi degli aggiornamenti. Per ulteriori informazioni, consulta Stanza Metadati dei bundle.

Puoi utilizzare questo ID anche per fare riferimento a una definizione comune di un pacchetto camera In un singolo messaggio Transaction durante la definizione dei dati del pacchetto camera inline.)

<ParkingIncluded> Optional boolean Indica se un pacchetto camera include il parcheggio senza costi aggiuntivi, dove il parcheggio è un servizio a pagamento dell'hotel. Non specificare un valore per questo elemento per un hotel che offre il parcheggio gratuito.

I valori validi sono 0 (o false) e 1 (o true). Il valore predefinito è false.

<PhotoURL> Optional Object (Uguale a <PhotoURL> in <RoomData>, ma per il pacco (ad es. foto di pasti).
<Refundable> Optional Object Consente di indicare una tariffa come completamente rimborsabile o come offerta l'annullamento. Se non viene specificato, non vengono visualizzate informazioni sul rimborso. Le norme sui rimborsi a livello di <PackageData> sostituiscono le norme sui rimborsi indicate il livello <Result>. Una norma sui rimborsi a livello di <Rates> sostituisce le norme sui rimborsi a livello di <PackageData>. I prezzi rimborsabili possono essere messi in evidenza per gli utenti tramite opzioni alternative senza Modificando lo schema dei messaggi di transazione. Scopri di più su queste opzioni Norme sulle tariffe rimborsabili.

L'esempio seguente mostra l'elemento <Refundable> con tutti i suoi attributi impostati:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Nota:consigliamo di impostare tutti gli attributi. Un feed viene generato quando uno o più attributi vengono non impostato.

Se non imposti alcun attributo, la tariffa non viene visualizzata come rimborsabile. Gli attributi sono:

  • available: (obbligatorio) imposta su 1 o true per indicare se la tariffa consente un addebito completo refund; altrimenti impostato su 0 o false.
  • refundable_until_days: (obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile ricevere un rimborso totale richiesto. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (vivamente consigliata se available è true) Specifica l'ultima ora del giorno, nell'ora locale dell'hotel, che la richiesta di rimborso verrà soddisfatta. Questo può essere combinato con refundable_until_days da specificare, per ad esempio "i rimborsi sono disponibili fino alle 16:00 di due giorni prima controllo". Se refundable_until_time non è impostato, il valore il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Ora.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non sono impostata, la tariffa non viene visualizzata come rimborsabile.
  • Se available è 0 o false, mentre gli altri vengono ignorati. La tariffa non viene visualizzata come Rimborsabile anche se uno o entrambi gli altri attributi sono impostati.
<MembershipBenefits Included> Optional boolean La tariffa include vantaggi per lo status Elite per la durata del soggiorno. Include i seguenti parametri:
  • ProgramName: nome del programma per lo status Elite
  • ProgramLevel: livello del programma. Ad esempio: "Oro."
  • NightlyValue (optional): valore notturno della vantaggi dell'IA.
<CarRentalIncluded> Optional boolean La tariffa include il noleggio auto senza costi per la durata del soggiorno.
<MilesIncluded>&gt; Optional boolean La tariffa include miglia frequent flyer. I parametri includono:
  • NumberofMiles: numero di miglia per itinerario.
  • Provider: miglia frequent flyer.
<OnPropertyCredit> Optional boolean La tariffa include credito interno alla proprietà (alimenti e/o bevande analcoliche, resort, spa e così via). Parametro:
  • Amount: il valore del credito per itinerario, in valuta.
<AirportTransportationIncluded> Optional Object La tariffa include il trasporto gratuito da/per un aeroporto nelle vicinanze. L'opzione facoltativa L'attributo direction specifica la direzione dell'elemento trasporto pubblico. I valori validi sono:
    from: il servizio di trasporto è disponibile dall'aeroporto alla proprietà. Questo è il valore predefinito se non viene specificata alcuna direzione. to: il trasporto per l'aeroporto viene fornito dalla proprietà. round_trip: il trasporto viene fornito sia da e verso la aeroporto.

Esempi

Pacchetto per camera singola

L'esempio seguente definisce un pacchetto camera singolo, con un numero di persone pari a 2 (un adulto e un bambino) e colazione inclusa:

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

Metadati di camere e pacchetti

L'esempio seguente definisce i metadati di camere e pacchetti:

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

Più pacchetti camera

L'esempio seguente definisce i metadati di camere e pacchetti per più camere Pacchetti:

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


Pacchetto camera con tariffe

L'esempio seguente definisce i metadati di camere e pacchetti per un pacchetto camera con caratteristiche relative alle tariffe:

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

Pasti e foto

L'esempio seguente definisce i metadati di camera e pacchetto per i pasti, foto e orari di check-in e check-out:

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

Colazione

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

Un contenitore per gli aggiornamenti di prezzi e disponibilità in una <Transaction> .

.

L'elemento <Result> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Utilizza <Result> per impostare o aggiornare i prezzi delle camere e definire l'inventario disponibile. Gli elementi definiti in questo elemento di solito fanno riferimento I metadati indipendenti dall'itinerario su una camera o un pacchetto (ad esempio una descrizione o insieme di comfort) definita in <PackageData> e <RoomData>.

In genere i messaggi Transaction con gli aggiornamenti dei prezzi vengono inviati molto spesso. La modalità e la frequenza di esecuzione di questa operazione dipendono dalla modalità di invio.

Puoi utilizzare <Result> in un messaggio Transaction per rimuovere gli itinerari, ad esempio descritta nella sezione Rimuovere dall'inventario. Per ulteriori informazioni sull'utilizzo dei messaggi Transaction per aggiornare i prezzi e disponibilità, consulta Aggiungere e aggiornare l'inventario.

Un singolo messaggio Transaction può includere un numero illimitato di elementi <Result> purché le dimensioni del messaggio non superino i 100 MB.

Sintassi

L'elemento <Result> utilizza la seguente sintassi:

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

Attributi

L'elemento <Result> ha i seguenti attributi:

Attributo Obbligatorio? Tipo Descrizione
mergeable Optional boolean Per impostazione predefinita, i nuovi prezzi per una coppia di hotel e itinerario specifica sovrascrivere eventuali prezzi precedenti (non scaduti) presenti nella cache di Google. La l'attributo unificabile ti consente di archiviare prezzi aggiuntivi nella cache di Google senza eliminare le informazioni precedenti sui prezzi. Query sui prezzi in tempo reale con Questo attributo sarà sempre impostato su true per le risposte contestuali (indipendentemente dalla risposta del messaggio della transazione).

Elementi secondari

L'elemento <Result> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<AllowablePointsOfSale> Optional Object Una o più pagine di destinazione idonee per dell'hotel. Una pagina di destinazione è un sito web in grado di gestire il processo di prenotazione per per l'utente finale. Per includere in modo esplicito una determinata pagina di destinazione (ed escludere altri), aggiungi uno o più <AllowablePointsOfSale> che corrispondono al valore dell'elemento <PointOfSale> id nel file delle pagine di destinazione.

Se non includi questo elemento, tutte le pagine di destinazione definite nei del file delle pagine di destinazione sono considerate idonee a essere utilizzate per la prenotazione nella finestra iniziale. Per ulteriori informazioni, consulta Sintassi del file delle pagine di destinazione.

<Baserate> Optional float

Il prezzo della camera per il soggiorno. Il valore di questo elemento deve riflettere quanto segue:

  • Per una camera privata, imposta la tariffa più economica per due persone che offri. È consentito un numero maggiore di persone se non ce l'hai. la tariffa per due persone e il tuo account non è un numero di persone doppie le tariffe abilitate. Contattaci per attivare le tariffe per un numero di persone diverso da due. Le tariffe per un soggiorno singolo non sono consentite qui, deve essere impostato in <Rates>.
  • Per una stanza condivisa, lascia il campo vuoto e utilizza <RoomBundle>.
  • Questo valore deve corrispondere al prezzo base totale per tutte le notti, non al tariffa media per notte.

Quando la camera non è disponibile per l'itinerario, <Baserate> deve essere omesso o impostato su -1 e <Unavailable> dovrebbero essere specificato, insieme agli eventuali motivi noti per l'indisponibilità.

Per rimuovere un pacchetto camera, segui le istruzioni riportate in Rimuovere un pacchetto camera.

<Baserate> non deve contenere alcun raggruppamento di cifre quali la virgola (,) o il punto (.). Separa sempre frazioni utilizzando un punto (.) come separatore decimale. Ad esempio: rappresentano 1.200,40 $come:

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

L'elemento <Baserate> utilizza quanto segue attributi facoltativi:

  • all_inclusive: un valore booleano che indica se questo tasso include tasse e commissioni. In generale, imposta questo valore su false per gli utenti finali di Stati Uniti e Canada e fornisci valori per <Tax> e <OtherFees> elementi. Se utilizzi prezzi all-inclusive, potresti non avere l'idoneità vengano visualizzati nelle schede se i prezzi non distinguono le tasse e le tariffe per gli utenti canadesi.

    I prezzi all-inclusive vengono ora mostrati agli utenti degli Stati Uniti.

    Per tutti gli altri utenti finali, di solito includi tasse e commissioni nella tariffa di base e imposta il valore dell'attributo all_inclusive a true. Per ulteriori informazioni, consulta Norme su tasse e commissioni.

    Il valore predefinito è false.

  • currency: il codice valuta di tre lettere. Per ad esempio USD per i dollari statunitensi.
<ChargeCurrency> Optional enum Quando e dove l'utente paga per una prenotazione. Questo elemento può essere utilizzato in un messaggio Transaction in <Result> per il prezzo dell'hotel o il blocco <PackageData> per un pacchetto camera.

I valori validi sono:

  • web: l'addebito all'utente viene effettuato online nel momento in cui prenotazione. Questo è il valore predefinito. La pagina di destinazione effettiva definita dal file della pagina di destinazione e le modifiche possono variare in base alla valuta dell'utente, località, lingua o altri fattori.
  • hotel: l'utente riceve un addebito al momento del check-in presso dell'hotel. Se il pagamento deve essere sempre effettuato nella valuta dell'hotel, imposta il valore di <ChargeCurrency> in hotel. La pagina di destinazione effettiva non è interessata dal la valuta dell'utente.
  • deposit: all'utente viene addebitata subito una parte mentre il resto viene addebitato in un secondo momento, solitamente quando l'utente fa il check-out dall'hotel.
  • installments: all'utente viene addebitata una frazione iniziale dell'importo totale dovuto e si prevede che paghi regolarmente un saldo prefissato in un determinato periodo di tempo.

Il valore predefinito è web.

<Checkin> Required Date La data di check-in per un itinerario utilizzando la colonna Date formato. La combinazione dell'elemento <Nights> e del <Checkin> elemento compongono un itinerario.
<Custom[1‑5]> Optional string Definisce un campo personalizzato che puoi utilizzare per trasmettere dati aggiuntivi associati a un hotel. Puoi trasferire fino a cinque valori personalizzati con il valore i seguenti nomi di elementi:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

Gli elementi <Custom> ti consentono di trasmettere dati arbitrari. Ad esempio, puoi specificare in questo campo un valore che verrà utilizzato dal file delle pagine di destinazione per creare un URL personalizzato per una . Esiste un limite di 200 caratteri per campo personalizzato. Per per saperne di più, consulta file pagine di destinazione

&lt;Custom&gt; elementi forniti in <Rate> non vengono ereditati all'elemento <RoomBundle>. Dovresti definisci <Custom> separatamente in ogni <RoomBundle>.

<ExpirationTime> Optional DateTime La data e l'ora in cui il prezzo è considerato scaduto (3 ore) minimo).

Ti consigliamo di non fornire timestamp di scadenza se non è fondamentale per la struttura dei prezzi.

Google non pubblica prezzi scaduti e nessun itinerario a prezzo scaduto diventerà idoneo per Esecuzione di query sui prezzi in tempo reale.

<Nights> Required integer Il numero di notti per un itinerario. Il valore del parametro L'elemento <Nights> deve essere un numero intero positivo. La combinazione di <Nights> e <Checkin> costituiscono un itinerario.
<OtherFees> Optional float Commissioni diverse dalla tariffa di base e dalle tasse che influenzano la prezzo finale di una camera. L'elemento <OtherFees> utilizza un singolo attributo obbligatorio, currency, che definisce codice valuta di tre lettere per le tariffe. Ad esempio: USD.

L'elemento <OtherFees> è obbligatorio se <Baserate> è maggiore di zero.

<Occupancy> Optional integer Specifica il numero massimo di persone consentite per questa tariffa. Quando <Occupancy> appare direttamente in <Result>, deve specificare 2 o più. <Occupancy> maggio essere accompagnato da <OccupancyDetails>, che specifica il tipo di ospiti (adulti o bambini). Se i tipi di ospiti non sono specificati, si presume che siano adulti. Consulta <OccupancyDetails> per la sintassi e la descrizione degli elementi secondari. Se <Occupancy> elemento non fornito, il numero di persone il valore predefinito è 2.

Nota: contatta il team di assistenza per attivare la funzionalità a inviare i prezzi per un numero di persone diverso da due.

<PackageID> Optional string L'ID univoco del pacchetto per mapparlo ai dati predefiniti del pacchetto. Utilizzato anche per compilare la variabile pagina di destinazione PACKAGE-ID. Per ulteriori informazioni, consulta Stanza Metadati dei bundle.
<Property> Required string L'ID di un hotel interessato dai dati associati (prezzo, itinerario, pacchetto camera o metadati). Il valore di questo elemento deve essere una stringa. Il valore di questo elemento deve corrispondere alla scheda <id> che hai definito nel tuo feed elenco hotel.
<Rates> Optional <Rates> Un contenitore per uno o più blocchi <Rate>. Ogni <Rate> in <Rates> definisce un prezzo diverso per la camera/itinerario combinazione.

Utilizza l'elemento <Rates> quando sono presenti più tariffe per la stessa combinazione camera/itinerario o quando una tariffa non è consentita da specificare a livello di <Result>. Ad esempio, definisci più tariffe per tariffe agevolate, tariffe private, tariffe agevolate nei pacchetti camera o per numero di persone diverso.

Nota: entro <Result>, le tariffe per una sola persona possono essere specificato solo in <Rates>. Contattaci per autorizzare per un numero di persone diverso da due.

<Refundable> Optional Object Consente di indicare una tariffa come completamente rimborsabile o come offerta l'annullamento. Se non viene specificato, non vengono visualizzate informazioni sul rimborso. Le norme sui rimborsi a livello di <PackageData> sostituiscono le norme sui rimborsi indicate il livello <Result>. Una norma sui rimborsi a livello di <Rates> sostituisce le norme sui rimborsi a livello di <PackageData>. I prezzi rimborsabili possono essere messi in evidenza per gli utenti tramite opzioni alternative senza Modificando lo schema dei messaggi di transazione. Scopri di più su Norme sulle tariffe rimborsabili.

L'esempio seguente mostra l'elemento <Refundable> con tutti i suoi attributi impostati:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Nota:consigliamo di impostare tutti gli attributi. Un feed viene generato quando uno o più attributi vengono non impostato.

Se non imposti alcun attributo, la tariffa non viene visualizzata come rimborsabile. Gli attributi sono:

  • available: (obbligatorio) è impostato su 1 (o true) per indicare se la tariffa consente un addebito completo refund; altrimenti impostato su 0 (o false).
  • refundable_until_days: (obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile ricevere un rimborso totale richiesto. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (vivamente consigliata se available è true) Specifica l'ultima ora del giorno, nell'ora locale dell'hotel, che la richiesta di rimborso verrà soddisfatta. Questo può essere combinato con refundable_until_days da specificare, per ad esempio "i rimborsi sono disponibili fino alle 16:00 di due giorni prima controllo". Se refundable_until_time non è impostato, il valore il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Ora.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non sono impostata, la tariffa non viene visualizzata come rimborsabile.
  • Se available è 0 (o false), mentre gli altri vengono ignorati. La tariffa non viene visualizzata come Rimborsabile anche se uno o entrambi gli altri attributi sono impostati.
<RoomBundle> Optional <RoomBundle> Un contenitore di informazioni sulle descrizioni fisiche a pagamento di una camera eventuali pacchetti di accessori e alcuni dettagli sulle norme di acquisto per per un determinato hotel e itinerario.

In generale, usa questo elemento per definire il prezzo della camera base e diversi tipi di camere all'interno della stessa struttura. Sebbene sia possibile per definire le descrizioni dei pacchetti camera in linea, devi utilizzare un'espressione Messaggio Transaction per definire queste informazioni. Google memorizzerà di metadati in modo da potervi fare riferimento, anziché ripeterli, in tutte i prossimi aggiornamenti dei prezzi.

<RoomID> Optional string L'ID univoco della camera da associare ai dati predefiniti della camera. Inoltre utilizzata per compilare la variabile della pagina di destinazione PARTNER-ROOM-ID. Per ulteriori informazioni, consulta Stanza Metadati dei bundle.
<Tax> Optional float Le tasse calcolate per il prezzo finale di una camera. L'elemento <Tax> utilizza un singolo attributo obbligatorio, currency, che definisce il codice valuta di tre lettere per le tasse. Ad esempio: USD. La L'elemento <Tax> è obbligatorio se <Baserate> è maggiore di zero.

Se l'elemento <Baserate> "all_inclusive" è esplicitamente impostato su true, impostando questo valore è facoltativo.

<Unavailable> Optional Object Indica che l'itinerario non è disponibile per la prenotazione. Serve da per i motivi più dettagliati per cui l'itinerario non era disponibile. Uno. o più dei seguenti motivi di indisponibilità potrebbero essere nidificati sotto il Tag <Unavailable>:
  • <NoVacancy/>: nessun'altra stanza disponibile per la vendita per una o più notti del soggiorno.
  • <MinNightStay value=N/>: l'itinerario era inferiore a soggiorno minimo di N notti per le date del soggiorno.
  • <MaxNightStay value=N/>: l'itinerario era al di sopra di soggiorno massimo di N notti per le date del soggiorno.
  • <MinAdvancePurchase value=N/>: l'itinerario era al di sotto della finestra per prenotazione minima di N per il soggiorno date.
  • <MaxAdvancePurchase value=N/>: l'itinerario era sopra la finestra massima per prenotazione anticipata di N per il soggiorno date.
  • <ClosedToArrival/>: la proprietà non consente il check-in della data di arrivo dell'itinerario.
  • <ClosedToDeparture/>: la proprietà non consente check-out per la data di partenza dell'itinerario.
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: la proprietà è chiusa per alcuni o per tutto il soggiorno. Attributi consigliati first_open e first_closed specificano le prime date maggiori o uguali a la data di arrivo rispettivamente in cui la proprietà è aperta o chiusa. Per una struttura che chiude dopo la data di arrivo, first_open deve essere uguale alla data di arrivo e first_closed deve essere la data di chiusura della proprietà. Per una proprietà chiusa in data la data di arrivo, first_closed deve essere uguale all'arrivo e first_opened deve essere la data successiva in cui è aperta.
  • <NotFetched/>: il prezzo dell'itinerario non era forniti dalle origini dati downstream.
  • <InvalidProperty/>: l'identificatore della struttura richiesto non è stato riconosciuto.
  • <InvalidOccupancy/>: il numero di persone richiesto non è supportate dalla proprietà.
  • <PriceIssue/>: a causa di un problema con il prezzo non verrà inviato.
  • <InternalError reason=""/>: alcuni errori non enumerati si è verificato un errore. L'attributo facoltativo motivo può segnalare l'errore come testo.
  • <OtherRestriction restriction=""/>: l'itinerario era non disponibile a causa di alcune restrizioni di prenotazione non enumerate. Facoltativa l'attributo restrizione consente di segnalare la restrizione come testo.

Esempi

Esempio di più proprietà

L'esempio seguente definisce un itinerario e i relativi prezzi per due proprietà:

<?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 questo esempio non sono riportati i dettagli della camera, come una descrizione, un'immagine e una didascalia, il nome della camera e la sua capienza.

Puoi specificare queste informazioni una volta in una transazione separata un messaggio che Google archivia. Puoi quindi farvi riferimento in tutte successivi aggiornamenti di prezzo e inventario. Per ulteriori informazioni, consulta Metadati dei pacchetti camera.

Esempio di tariffe multiple

L'esempio seguente definisce un singolo itinerario e una singola proprietà con più tariffe per numero di persone. L'elemento <Rates> può essere utilizzato offrire prezzi a più tariffe per una struttura specifica. L'esempio seguente è utile anche per le case vacanze:

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

Esempio non disponibile

L'esempio seguente definisce un itinerario la cui disponibilità non può essere recuperata dai canali downstream, un secondo che è entrambi al di sotto del minimo un soggiorno di una notte e già prenotato per le date specificate e un terzo la struttura è chiusa nella data di arrivo, ma apre durante il il soggiorno:

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

Un contenitore per uno o più blocchi <Rate>. Ogni <Rate> in <Rates> definisce un prezzo diverso per la combinazione della camera o dell'itinerario.

Utilizza l'elemento <Rates> solo quando sono presenti più tariffe per la stessa combinazione di camera o itinerario. Ad esempio, definisci più tariffe per le tariffe agevolate, tariffe private o tariffe agevolate nei pacchetti camera.

L'elemento <Rates> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>         // Pricing and availability
        + <Rates>
        + <RoomBundle> (Can also contain <Rates>)
        + ...

I valori impostati in un <Rate> sostituiscono i valori relativi ai prezzi nella elemento principale <Result> o <RoomBundle>. Se non sono impostati in <Rate>, ereditano il valore dall'elemento principale. Solo &lt;AllowablePointsofSale&gt; viene ereditato all'elemento <RoomBundle>.

Sintassi

L'elemento <Rates> utilizza la seguente sintassi:

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

Attributi

L'elemento <Rates> ha i seguenti attributi:

Attributo Obbligatorio? Descrizione
rate_rule_id Optional Per tariffe agevolate, questo ID associa una tariffa a una definizione nel tuo File di definizione delle regole tariffarie. Il limite di caratteri per questo campo è 40 caratteri.

Elementi secondari

L'elemento <Rates> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<AllowablePointsOfSale> Optional Object Una o più pagine di destinazione idonee per dell'hotel. Questo elemento utilizza la stessa sintassi dell'elemento <AllowablePointsOfSale> su <Result>.
<Baserate> Required float Il prezzo della camera per il soggiorno. Questo elemento utilizza lo stesso come <Baserate> in <Result>.

Nota: l'elemento secondario <Baserate> in <Rate> non può essere definito non disponibile.

<ChargeCurrency> Optional enum Quando e dove l'utente paga per una prenotazione. Questo elemento utilizza il parametro la stessa sintassi di <ChargeCurrency> in una <Result>
<Custom[1‑5]> Optional string Campi personalizzati che puoi utilizzare per trasmettere ulteriori dati associati un hotel a una pagina di destinazione. Questo elemento utilizza la stessa sintassi di <Custom[1‑5]> in <Result>. Esiste un limite di 200 caratteri per campo personalizzato. Per ulteriori informazioni, consulta file delle pagine di destinazione.

Se <Custom> sono forniti nel <Result>, non verranno ereditati nell'elemento <RoomBundle> e deve essere definito separatamente per ogni <RoomBundle> oppure può essere incluso in <PackageData> se necessaria.

<ExpirationTime> Optional DateTime La data e l'ora in cui la tariffa è considerata scaduta. Questo utilizza la stessa sintassi di un <ExpirationTime> in <Result>.
<Occupancy> Optional integer

Specifica il numero massimo di persone consentite per questa tariffa. In caso contrario specificato, si presume che sia uguale alla tariffa principale. <Occupancy> può essere accompagnato da <OccupancyDetails>, che specifica il tipo di ospiti (adulti o secondari). Per la sintassi e la descrizione, consulta la sezione <OccupancyDetails> elementi secondari.

<OtherFees> Required float Commissioni diverse dalla tariffa di base e dalle tasse che influenzano il prezzo finale di una stanza. Questo elemento utilizza la stessa sintassi di <OtherFees> in <Result>.

Se l'elemento <Baserate> "all_inclusive" è esplicitamente impostato su true, impostando questo valore è facoltativo.

<Refundable> Optional Object Consente di indicare una tariffa come completamente rimborsabile o come offerta l'annullamento. Se non viene specificato, non vengono visualizzate informazioni sul rimborso. Le norme sui rimborsi a livello di <PackageData> sostituiscono le norme sui rimborsi a livello di <Result>. Una norma sui rimborsi a livello di <Rates> sostituisce le norme sui rimborsi a livello di <PackageData>. I prezzi rimborsabili possono essere messi in evidenza per gli utenti tramite opzioni alternative senza Modificando lo schema dei messaggi di transazione. Scopri di più su queste opzioni Norme sulle tariffe rimborsabili.

L'esempio seguente mostra l'elemento <Refundable> con tutti i suoi attributi impostati:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Nota:consigliamo di impostare tutti gli attributi. Un feed viene generato quando uno o più attributi vengono non impostato.

Se non imposti alcun attributo, la tariffa non viene visualizzata come rimborsabile. Gli attributi sono:

  • available: (obbligatorio) è impostato su 1 (o true) per indicare se la tariffa consente un addebito completo refund; altrimenti impostato su 0 (o false).
  • refundable_until_days: (obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile ricevere un rimborso totale richiesto. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (vivamente consigliata se available è true) Specifica l'ultima ora del giorno, nell'ora locale dell'hotel, che la richiesta di rimborso verrà soddisfatta. Questo può essere combinato con refundable_until_days da specificare, per ad esempio "i rimborsi sono disponibili fino alle 16:00 di due giorni prima controllo". Se refundable_until_time non è impostato, il valore il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Ora.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non sono impostata, la tariffa non viene visualizzata come rimborsabile.
  • Se available è 0 (o false), mentre gli altri vengono ignorati. La tariffa non viene visualizzata come Rimborsabile anche se uno o entrambi gli altri attributi sono impostati.
<Tax> Required float Le tasse calcolate per il prezzo finale di una camera. Questo utilizza la stessa sintassi di <Tax> in un <Result>

Esempi

Tariffa di base e tariffa agevolata

L'esempio seguente mostra un messaggio Transaction che contiene una tariffa di base e una tariffa agevolata:

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

Più tariffe agevolate

L'esempio seguente definisce una tariffa di base e più tariffe agevolate all'interno di un <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>

Definisce prezzi e disponibilità dei pacchetti camera come elemento secondario <Result> in un messaggio <Transaction>. Definisci un elemento separato per ogni di un pacchetto o di un itinerario. Per definire il pacchetto e i termini del Pacchetti camera, utilizza <RoomData>.

L'elemento <RoomBundle> compare nella posizione seguente all'interno Gerarchia XML dei messaggi Transaction:

+ <Transaction>
    + <PropertyDataSet>  // Room and package metadata
        + <Property>
        + <RoomData>
        + <PackageData>
    + <Result>           // Pricing and availability
        + <Rates>
        + <RoomBundle>
        + ...

Per ulteriori informazioni, consulta la sezione Utilizzare i pacchetti camera.

Sintassi

L'elemento <RoomBundle> utilizza la seguente sintassi:

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

Attributi

L'elemento <RoomBundle> non ha attributi.

Elementi secondari

L'elemento <RoomBundle> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<Baserate> Required float Definisce il prezzo del pacchetto camera per il soggiorno. Questo elemento utilizza la stessa sintassi di <Baserate> in <Result>, con seguente eccezione:
  • Se la camera non è disponibile per l'itinerario, rimuovi la voce Elemento <RoomBundle> per indicare che una stanza non è più a lungo nell'inventario. Per ulteriori informazioni, consulta Rimuovere un pacchetto camera.
<BreakfastIncluded> Optional boolean Specifica se questo pacchetto camera include la colazione con la tariffa.
<ChargeCurrency> Optional enum Quando e dove l'utente paga per una prenotazione. Questo elemento utilizza lo stesso come <ChargeCurrency> in <Result>.

Il valore predefinito è web.

<Custom[1‑5]> Optional string Campi personalizzati per trasmettere dati aggiuntivi alle pagine di destinazione per il pacchetto camera. Questi elementi utilizzano la stessa sintassi di <Custom[1-5]> in <Result>. Il limite è 200. caratteri per campo personalizzato. Per ulteriori informazioni, consulta file delle pagine di destinazione.

Se <Custom> sono forniti nel <Result>, non verranno ereditati nell'elemento <RoomBundle> e deve essere definito separatamente per ogni <RoomBundle> oppure può essere incluso in <PackageData> se necessaria.

<InternetIncluded> Optional boolean Se un pacchetto camera include l'accesso a internet senza costi, mentre gli altri pacchetti non lo includerebbero. Non impostare per i pacchetti camera in un hotel che offre la connessione internet gratuita a tutti nelle stanze virtuali. Questo elemento non si applica all'accesso cablato o wireless all'interno delle camere internet non disponibile nelle camere degli ospiti.
<Occupancy> Required integer Specifica il numero massimo di persone consentite per questa tariffa. Ad esempio, un di grandi dimensioni può ospitare fisicamente 6 persone, ma "Pacchetto Luna di miele" accetta solo 2 ospiti.

Questo valore deve essere minore o uguale al <Capacity>, ovvero il numero di persone che che può ospitare fisicamente.

Quando definisci il numero di persone nell'URL pagina di destinazione, utilizza il metodo NUM-ADULTS e NUM-CHILDREN, come descritto in Utilizzo Variabili e condizioni. Il valore predefinito è 2 adulti e 0 bambini.

Il valore di <Occupancy> deve essere un numero positivo numero intero compreso tra 1 e 99 inclusi.

Note:

  • <Occupancy> per <RoomBundle> è vivamente consigliato, quindi viene segnalato come obbligatorio e, se omesso, genera un errore 1097.
  • <Occupancy> proviene dall'oggetto dati in questo ordine: <RoomBundle>, <PackageData>, quindi = <RoomData>. Se non è presente alcun valore in nessuno di questi valori, il valore predefinito è 2.
  • <Occupancy> può essere accompagnato da <OccupancyDetails>, che specifica il tipo di ospiti (adulti o bambini). Se l'ospite digita non sono specificati, si presume che siano adulti. Consulenza <OccupancyDetails> per la sintassi e la descrizione degli elementi secondari.
  • Quando imposti <Occupancy> in entrambi <RoomBundle> e <PackageData>, il valore in <RoomBundle> ha la precedenza.
<OtherFees> Required float Commissioni diverse dalla tariffa di base e dalle tasse che influenzano la prezzo finale di una camera. L'elemento <OtherFees> utilizza un singolo attributo obbligatorio, currency, che definisce codice valuta di tre lettere per le tariffe. Ad esempio, utilizza USD per i dollari statunitensi.
<PackageID> Optional (recommended) string L'ID univoco dei dati del pacchetto. Utilizza questo ID per abbinare Dati del pacchetto camera con quelli inviati nel giorno <PackageData>. Per per saperne di più, consulta Stanza Metadati dei bundle. (tu puoi utilizzare questo ID anche per fare riferimento a una definizione comune di un pacchetto camera usata in un singolo messaggio Transaction durante la definizione dei dati del pacchetto camera inline.)
<ParkingIncluded> Optional boolean Indica se un pacchetto camera include il parcheggio senza costi aggiuntivi, dove il parcheggio è un servizio a pagamento dell'hotel. Non specificare un valore per questo elemento per un hotel che offre il parcheggio gratuito.

I valori validi sono 0 (o false) e 1 (o true). Il valore predefinito è false.

<RatePlanID> Optional string L'ID piano tariffario rappresenta l'identificatore univoco di un di camere e pacchetti. Ad esempio, in base a un Valore 5 di <RoomID> e un <PackageID> valore di ABC, potresti utilizzare il valore 5-ABC per <RatePlanID>. Ti consigliamo vivamente di utilizzare RatePlanID come variabile per creare la pagina di destinazione dinamica (in precedenza point of sale).

Per ulteriori informazioni, consulta Utilizzare le variabili Condizioni.

<Rates> Optional <Rates> Tariffe che sostituiscono le impostazioni predefinite per questo pacchetto camera. Questo utilizza la stessa sintassi di <Rates> in <Result>.
<Refundable> Optional Object Consente di indicare una tariffa come completamente rimborsabile o come offerta l'annullamento. Se non viene specificato, non vengono visualizzate informazioni sul rimborso. Le norme sui rimborsi a livello di <PackageData> sostituiscono le norme sui rimborsi indicate il livello <Result>. Una norma sui rimborsi a livello di <Rates> sostituisce le norme sui rimborsi a livello di <PackageData>. I prezzi rimborsabili possono essere messi in evidenza per gli utenti tramite opzioni alternative senza Modificando lo schema dei messaggi di transazione. Scopri di più su queste opzioni Norme sulle tariffe rimborsabili.

L'esempio seguente mostra l'elemento <Refundable> con tutti i suoi attributi impostati:

<Refundable available="1" refundable_until_days="7"
refundable_until_time="18:00:00"/>

Nota:consigliamo di impostare tutti gli attributi. Un feed viene generato quando uno o più attributi vengono non impostato.

Se non imposti alcun attributo, la tariffa non viene visualizzata come rimborsabile. Gli attributi sono:

  • available: (obbligatorio) è impostato su 1 (o true) per indicare se la tariffa consente un addebito completo refund; altrimenti impostato su 0 (o false).
  • refundable_until_days: (obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile ricevere un rimborso totale richiesto. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (vivamente consigliata se available è true) Specifica l'ultima ora del giorno, nell'ora locale dell'hotel, che la richiesta di rimborso verrà soddisfatta. Questo può essere combinato con refundable_until_days da specificare, per ad esempio "i rimborsi sono disponibili fino alle 16:00 di due giorni prima controllo". Se refundable_until_time non è impostato, il valore il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Ora.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non è impostato, la tariffa non viene visualizzata come rimborsabile.
  • Se available è 0 (o false), mentre gli altri vengono ignorati. La tariffa non viene visualizzata come Rimborsabile anche se uno o entrambi gli altri attributi sono impostati.
<RoomID> Required string L'ID univoco per i dati della camera. Utilizza questo ID per abbinare I dati del pacchetto camera con quelli che hai inviato in <RoomData>. Per ulteriori informazioni, consulta Metadati dei pacchetti camera. Puoi utilizzare questo ID anche per fare riferimento a un definizione comune della stanza in un singolo messaggio Transaction durante la definizione dati della stanza in linea.)
<Tax> Required float Le tasse calcolate per il prezzo finale di una camera. L'elemento <Tax> utilizza un singolo attributo obbligatorio, currency, che definisce il codice valuta di tre lettere per le tasse. Ad esempio, utilizza USD per i dollari statunitensi.

Esempi

Pacchetto per un solo ospite

L'esempio seguente definisce una risposta con un pacchetto con un numero di persone singolo. Quando un utente seleziona 1 nel selettore Numero di persone, Google mostra la parte più bassa prezzo idoneo a prescindere dal numero di persone.

Se non è disponibile un prezzo per un solo numero, Google mostrerà il prezzo più basso per due persone. I prezzi per un numero di persone non sono query in tempo reale se per due persone o più prezzi vengono memorizzati nella cache itinerario.

Questo esempio fa riferimento ai metadati di camere e pacchetti predefiniti con il Elementi <RoomID> e <PackageID>. Utilizza i <RoomData> e <PackageData> per definire queste informazioni.

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


Due o più persone

L'esempio seguente definisce una risposta contenente due o più persone.

Questo esempio fa riferimento ai metadati di camere e pacchetti predefiniti con il Elementi <RoomID> e <PackageID>. Utilizza i <RoomData> e <PackageData> per definire queste informazioni.

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


Più pacchetti camera

L'esempio seguente imposta il numero di persone in più pacchetti camera per dimostrare i possibili prezzi delle camere in ostello.

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

Più tariffe agevolate

L'esempio seguente definisce una tariffa di base e più tariffe agevolate all'interno di un <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 un messaggio di transazione specifica il numero massimo di ospiti per una camera o un pacchetto. <OccupancyDetails> può contenere informazioni aggiuntive come il numero e il tipo di ospiti (adulti o bambini).

Quando <Occupancy> e <OccupancyDetails> compaiono all'interno dell'elemento <Rates> di <Result> o <RoomBundle>, significa che la tariffa è vincolata da i dettagli sul numero di persone.

Sintassi

Quando viene visualizzato, il carattere <OccupancyDetails> è sempre preceduto da <Occupancy>. Nota la seguente sintassi:

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

Elementi secondari

L'elemento <OccupancyDetails> ha i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<NumAdults> Required integer Il numero di ospiti adulti. Minimo:1, max:20.
<Children> Optional Object Un contenitore per uno o più elementi <Child>.
<Child age> Optional integer L'età massima per questo account secondario, ad esempio <Child age="17">.

Esempi

I seguenti esempi mostrano come <OccupancyDetails> può apparire all'interno di <Results>, <RoomBundle> o <Rates> elemento secondario.

Risposta al risultato

L'esempio seguente definisce un itinerario e i relativi prezzi per uno in risposta a una query sui prezzi in tempo reale in cui l'utente ha specificato il numero e i tipi di ospiti. Qui, i <OccupancyDetails> -- 2 adulti e un figlio -- viene restituito in <Result>.

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

Risposta alle tariffe

L'esempio seguente definisce un itinerario e il relativo prezzo per 1 adulto e 1 figlio. In questo caso, i valori <OccupancyDetails> vengono restituiti nell'elemento <Rates> elemento di <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>

Pacchetto camera

L'esempio seguente definisce un numero di persone per 2 adulti e 1 bambino per due notti, con una tariffa rimborsabile. In questo caso, i valori <OccupancyDetails> all'interno di <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>

Più pacchetti camera

L'esempio seguente definisce più tariffe <RoomBundle> che sono La sistemazione è limitata a 2 adulti e 2 bambini. In questo caso, <OccupancyDetails> compaiono nell'elemento <Rates> di <RoomBundle>.

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