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 informazioni descrittive su camere e pacchetti, nonché su prezzi e disponibilità di camere e pacchetti.

L'elemento <Transaction> compare nella seguente posizione nella gerarchia XML del messaggio 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 un elemento secondario. I messaggi Transaction possono avere un numero illimitato di elementi secondari, a condizione che le dimensioni del messaggio non superino 100 MB.

Sintassi

La sintassi dell'elemento <Transaction> è la seguente:

<?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> prevede 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. In genere, devi usare questo attributo se il tuo backend fornisce feed del prezzo per più account partner. Il valore della stringa è il valore "Chiave del partner" presente nella pagina Impostazioni account in Hotel Center.
timestamp Required DateTime

Rappresenta il momento in cui è stato inviato il messaggio Transaction.

Verrà elaborato qualsiasi messaggio inviato con un timestamp entro le 24 ore precedenti, mentre gli altri verranno eliminati.

I messaggi vengono elaborati secondo l'ordine del timestamp e non nell'ordine con cui sono stati ricevuti. Ad esempio, un aggiornamento del prezzo con un timestamp 2019-05-03 14:09:00 che viene ricevuto dopo un messaggio con un timestamp 2019-05-03 14:10:00 continuerà a essere elaborato in base all'ordine di invio e verrà utilizzato il prezzo contenuto nel messaggio con il timestamp 2019-05-03 14:10:00.

Elementi secondari

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

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

Descrive una camera specifica e i pacchetti camera. In genere, questo elemento viene utilizzato in un messaggio Transaction separato per definire i valori condivisi dei pacchetti camera e ridurre le dimensioni dei messaggi Transaction.

<Result> Optional* <Result>

Dati dei prezzi per l'itinerario di una camera o un <RoomBundle> elemento che definisce i pacchetti camera e altri tipi di camere della proprietà. L'elemento <Result> può essere utilizzato anche per rimuovere gli itinerari dall'inventario.

* È obbligatorio almeno uno tra <PropertyDataSet> e <Result>.

Esempi

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>

L'esempio seguente definisce i dati dei 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>

L'esempio seguente definisce i dati dei prezzi per un soggiorno da 1 a 7 notti a partire dal 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>


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>

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

<?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 messaggio <Transaction>. I valori impostati per un hotel sostituiscono quelli specificati per un partner. Poiché Google archivia queste informazioni, non devi specificarle ogni volta che invii gli aggiornamenti sui prezzi.

L'elemento <PropertyDataSet> compare nella seguente posizione nella gerarchia XML del messaggio 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

La sintassi dell'elemento <PropertyDataSet> è la seguente:

<?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> prevede i seguenti elementi secondari:

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

Negli aggiornamenti di prezzo devi inserire un riferimento all'ID pacchetto.

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

<Property> Required string L'ID di un hotel a cui si riferiscono i dati associati. Il valore di questo elemento deve essere una stringa corrispondente all'elemento <id> dell'hotel nel feed elenco hotel.
<RoomData> Optional* <RoomData> Descrive una camera. Questi dati sono associati a un partner e a un hotel, ma non a un itinerario.

Negli aggiornamenti di prezzo devi inserire un riferimento all'ID camera.

* È obbligatorio almeno uno tra <PackageData> e <RoomData>.

Esempi

L'esempio seguente mostra sia i dati della camera sia quelli del pacchetto 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à per questa camera e per il pacchetto camera, devi fare riferimento agli ID camera e pacchetto nei messaggi sui prezzi. In questo modo puoi ridurre notevolmente le dimensioni dei messaggi e anche il numero di errori in cui potresti incorrere a causa di dati duplicati. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.

<RoomData>

Definisce i metadati indipendenti dall'itinerario delle camere e, per estensione, dei pacchetti camera (dal momento che i pacchetti camera sono camere più comfort aggiuntivi). Utilizza <RoomData> per ridurre la ripetizione dei dati descrittivi nel feed del prezzo.

L'elemento <RoomData> compare nella seguente posizione nella gerarchia XML del messaggio 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 a un hotel, ma non a un itinerario. Vengono utilizzati quindi per tutti i dati indipendenti dall'itinerario.

L'elemento <RoomData> è simile a <PackageData>, ma descrive la camera fisica anziché i comfort e i termini di un pacchetto. Utilizza una combinazione di <RoomData> e <PackageData> per fornire dettagli sui 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 la stessa camera o lo stesso pacchetto camera. Quando Google mostra la camera o il pacchetto nei risultati di ricerca, include le descrizioni di entrambi separate da un trattino.

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

Sintassi

La sintassi dell'elemento <RoomData> è la seguente:

<?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> prevede i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<Capacity> Optional integer Il numero massimo di persone che una camera può ospitare fisicamente. Per una camera, la capienza è maggiore o uguale al numero di persone.

Se specificato, questo valore deve essere uguale o superiore al valore dell'elemento <Occupancy>, che corrisponde al numero previsto di ospiti per una camera specifica. Ad esempio, il valore <Capacity> di una suite di grandi dimensioni potrebbe essere 6, ma il <Occupancy> per la stessa è 4.

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

<Description> Optional Object Una descrizione dettagliata della camera. Questo elemento deve contenere le informazioni non fornite da altri elementi o dall'elemento <Name>. Non utilizzare solo lettere maiuscole nella descrizione della camera.

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

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

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

L'esempio seguente mostra la descrizione della camera in francese e in inglese:

<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 di camera. Questo valore deve corrispondere a quanto visualizzato nella pagina di destinazione dell'hotel (in precedenza Punto di vendita). Non impostare il valore di questo elemento su tutte le lettere maiuscole.

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

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

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

L'esempio seguente mostra il nome della camera in francese e in inglese:

<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 potrebbe ospitare fisicamente 6 persone (capienza = 6), ma è destinata a un massimo di 4 ospiti.

Questo valore deve essere inferiore o uguale all'elemento <Capacity>, che corrisponde al numero di persone che la camera può ospitare.

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

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

<OccupancySettings> Optional Object Impostazioni che possono limitare o modificare i requisiti di numero di persone di una stanza.

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

  • <MinOccupancy>: il numero minimo di ospiti che possono soggiornare in una camera. Ad esempio, se questo valore è impostato su 2, la camera non può essere prenotata per un solo ospite.

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

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

    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 camera o di un pacchetto camera. Puoi specificare più di un <PhotoURL> per una camera o un pacchetto camera. Ogni URL della foto deve trovarsi in un proprio <PhotoURL>.

Questo elemento prevede i seguenti elementi secondari:

  • <URL>: specifica la posizione della foto. La posizione deve essere pubblica (non protetta da un firewall) e deve includere il protocollo (ad esempio https://). Utilizza un solo <URL> per <PhotoURL>.
  • <Caption>: definisce la didascalia della foto. Questo elemento prevede un singolo elemento secondario, <Text>, che ha due attributi obbligatori: text e language. L'attributo text è la didascalia, mentre l'attributo language specifica un codice lingua di due lettere, ad esempio 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 funzionalità della camera.
<RoomID> Required string L'ID univoco della camera. Utilizza questo ID per associare i dati della camera ai blocchi <Result> negli aggiornamenti dei prezzi. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera. Puoi utilizzare questo ID anche per fare riferimento a una definizione comune della camera in un singolo messaggio Transaction quando definisci i dati della camera in linea.

Esempi

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>

L'esempio seguente definisce i metadati di camera e pacchetto:

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

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

<?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à presenti nella stanza.

L'elemento <RoomFeatures> compare nella seguente posizione nella gerarchia XML del messaggio Transaction:

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

Sintassi

La sintassi dell'elemento <RoomFeatures> è la seguente:

<?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> prevede i seguenti elementi secondari:

Elemento secondario Obbligatorio? Tipo Descrizione
<JapaneseHotelRoomStyle> Optional enum

Indica lo stile di una camera di hotel giapponese.

I valori validi sono:

  • western: una camera in stile occidentale con letti.
  • japanese: una camera in stile giapponese con letti futon.
  • japanese_western: una camera in stile giapponese-occidentale con sia letti in stile occidentale che futon in stile giapponese.
<Beds> Optional Object Contiene il numero di <Bed> presenti nella stanza. Tieni presente che i futon giapponesi non devono essere conteggiati qui.

Ogni <Bed> ha i seguenti attributi:

  • size (facoltativo): i valori validi sono single, semi_double, double, queen e king.
Ogni <Bed> ha i seguenti elementi secondari:
  • <Width> (facoltativo): specifica la larghezza del letto. Deve avere l'attributo unit con il valore cm e l'attributo number con la larghezza del letto in centimetri interi.
  • <Length> (facoltativo): specifica la lunghezza del letto. Deve avere l'attributo unit con il valore cm e l'attributo number con la lunghezza del letto in centimetri interi.
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 la camera è una suite.
<Capsule> Optional empty Fornisci questo elemento se la camera è una camera a capsule.
<Roomsharing> Optional enum Indica se la camera è condivisa con altri occupanti, ad esempio proprietari o altri ospiti. I valori validi sono shared e private.
<Outdoor> Optional empty Fornisci questo elemento se la camera è un alloggio all'aperto che non ha pareti fisse, impianti idraulici e climatizzazione. Ad esempio, le camere degli hotel non sono strutture ricettive all'aperto, mentre i campeggi in cui gli ospiti soggiornano in tende e le aree di sosta per camper in cui gli ospiti portano i propri camper sono strutture ricettive all'aperto.
<MobilityAccessible> Optional empty Fornisci questo elemento se la camera è accessibile ai disabili.
<Smoking> Optional enum Indica se la camera è per non fumatori o fumatori. I valori validi sono non_smoking e smoking.
<BathAndToilet> Optional Object Contiene informazioni su una vasca e un WC nella stanza.

L'attributo è:

  • relation (facoltativo): indica come la vasca da bagno e la toilette sono posizionate una di fronte all'altra. I valori validi sono together (la vasca da bagno e i servizi igienici si trovano nella stessa stanza (ad es. bagno) uno accanto all'altro) e separate (la vasca da bagno e i servizi igienici hanno ciascuno spazi dedicati). Questo attributo non deve essere impostato quando la camera non dispone sia di una vasca che di un WC.

L'elemento può includere facoltativamente i seguenti elementi secondari:

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

    Gli attributi sono:

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

    Gli attributi sono:

    • electronic_bidet (facoltativo): indica che il bagno è dotato di un bidet elettronico. I valori validi sono 0 (o false) e 1 (o true).
    • mobility_accessible (facoltativo): indica che i bagni sono accessibili alle 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 se la camera dispone di un bagno privato all'aperto.
<AirConditioning> Optional empty Fornisci questo elemento se la camera è dotata di aria condizionata.
<Balcony> Optional empty Fornisci questo elemento se la 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. L'omissione di 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 numero di letti.

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>

Di seguito è riportato un esempio di camera in stile giapponese 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>


Di seguito è riportato un esempio di camera in stile giapponese senza letto. Le informazioni sui letti non sono richieste per la camera di 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>

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

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

Se il partner non dispone di informazioni sul numero di letti in japanese_western rooms, 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 dei pacchetti camera indipendenti dall'itinerario per una proprietà. Questo elemento contiene informazioni associate a un partner e a un hotel, ma non a un itinerario. Lo scopo previsto è definire una sola volta tutti i dati indipendenti dall'itinerario e farvi riferimento dai dati sugli itinerari.

L'elemento <PackageData> compare nella seguente posizione nella gerarchia XML del messaggio Transaction:

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

L'elemento <PackageData> è simile all'elemento <RoomData>, ma descrive le caratteristiche e i termini della tariffa che non fanno parte della descrizione fisica di una camera. Utilizza una combinazione di <RoomData> e <PackageData> per fornire dettagli sui pacchetti camera e le caratteristiche della tariffa. Per le singole camere che non fanno parte di un pacchetto, utilizza solo <RoomData>.

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

Se aggiorni un singolo elemento <PackageData> per una proprietà, devi aggiornare tutti gli elementi <PackageData> e <RoomData> relativi a tale proprietà. Ciascun elemento <PropertyDataSet> viene considerato come l'insieme di tutti i dati sulla proprietà e sovrascrive qualsiasi dato esistente.

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

Sintassi

La sintassi dell'elemento <PackageData> è la seguente:

<?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> prevede i seguenti elementi secondari:

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

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

<ChargeCurrency> Optional enum Definisce quando e dove l'utente effettua il pagamento per una prenotazione. Questo elemento utilizza la stessa sintassi di <ChargeCurrency> in un <Result>.

Il valore predefinito è web.

<CheckinTime> Optional Time Orario di check-in più presto possibile. L'ora deve essere inferiore a 24:00 nell'ora locale dell'hotel.
<CheckoutTime> Optional Time L'ora di check-out più tardi possibile nell'ora locale dell'hotel.
<Description> Optional Object Una descrizione dettagliata del pacchetto. Questo elemento deve contenere le informazioni non fornite da altri elementi o dall'elemento <Name>. Non utilizzare solo lettere maiuscole nella descrizione della camera.

L'elemento <Description> prevede un singolo elemento secondario, <Text>, che ha due attributi obbligatori, text e language. L'attributo text corrisponde alla descrizione, mentre l'attributo language specifica un codice lingua di due lettere, come indicato nell'esempio seguente:

<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 Indica se un pacchetto include l'accesso a internet senza costi aggiuntivi, a differenza di altri pacchetti che non includono tale comfort. Non impostare questo elemento per i pacchetti camera di un hotel che fornisce accesso gratuito a internet in tutte le camere. Questo elemento non si applica all'accesso cablato all'interno delle camere o all'accesso wireless che 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> prevede due elementi secondari facoltativi, <Breakfast> e <Dinner>, che hanno i seguenti attributi:

  • included (obbligatorio): impostato su 1 (o true) se la tariffa include la colazione/la cena; in caso contrario, impostato su 0 o false.
  • in_room (facoltativo): imposta su 1 (o true) se gli ospiti hanno la possibilità di consumare la colazione/la cena nella camera in cui soggiornano; in caso contrario, imposta su 0 (o false).
  • in_private_space (facoltativo): imposta su 1 (o true) se gli ospiti hanno la possibilità di fare colazione/cena in uno spazio (tranne nella camera in cui soggiornano) in cui possono evitare il contatto con altri ospiti; in caso contrario, imposta su 0 (o false).
  • buffet (facoltativo): imposta su 1 (o true) se la colazione/la cena viene servita a buffet; in caso contrario, imposta su 0 (o false).

Gli attributi facoltativi vengono utilizzati solo quando included è true.

Affinché i filtri dei pasti (no meals, breakfast only, dinner only e breakfast and dinner) funzionino, sia <Breakfast> che <Dinner> devono essere forniti 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 utilizzare solo lettere maiuscole per impostare il valore di questo elemento.

Questo elemento prevede un singolo elemento secondario, <Text>, che ha due attributi, text e language. L'attributo text corrisponde alla descrizione, mentre l'attributo language specifica un codice lingua di due lettere, come indicato 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 previsto per un Pacchetto camera. Ad esempio, una suite di grandi dimensioni potrebbe ospitare fisicamente 6 persone, ma è destinata a un massimo di 4 ospiti.

Questo valore deve essere inferiore o uguale all'elemento <Capacity>, che corrisponde al numero massimo di persone che la camera può ospitare fisicamente.

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

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

Nota:

L'elemento secondario <Occupancy> può essere accompagnato dall'elemento <OccupancyDetails>,che specifica il tipo di ospiti (adulti o bambini). Per la sintassi e la descrizione degli elementi secondari, consulta la sezione <OccupancyDetails>.
<PackageID> Required string

L'ID univoco del pacchetto. Utilizza questo ID per associare i dati del pacchetto camera ai blocchi <Result> negli aggiornamenti dei prezzi. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.

Puoi anche utilizzare questo ID per fare riferimento a una definizione comune del pacchetto camera utilizzata in un singolo messaggio Transaction quando definisci i dati del pacchetto in linea.

<ParkingIncluded> Optional boolean Indica se un pacchetto camera include il parcheggio gratuito, laddove questo servizio è a pagamento nell'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 (come <PhotoURL> in <RoomData>, ma per il pacchetto (ad es. foto dei pasti).)
<Refundable> Optional Object Consente di indicare una tariffa come totalmente rimborsabile o con cancellazione senza costi. Se non viene specificato un valore, le informazioni sul rimborso non verranno visualizzate. Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono quelle a livello dell'elemento <Result>. Le norme sui rimborsi a livello dell'elemento <Rates> sostituiscono quelle a livello dell'elemento <PackageData>. I prezzi rimborsabili possono essere evidenziati per gli utenti anche attraverso opzioni alternative, senza modificare direttamente lo schema dei messaggi Transaction. Scopri di più su queste opzioni Norme relative alle tariffe rimborsabili.

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

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

Nota: consigliamo di impostare tutti gli attributi. Quando non vengono impostati uno o più attributi, viene generato un messaggio di avviso relativo allo stato dei feed.

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

  • available: (Obbligatorio) Deve essere impostato su 1 o true per indicare se la tariffa prevede il rimborso totale; in caso contrario, deve essere impostato su 0 o false.
  • refundable_until_days: (Obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile richiedere un rimborso totale. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (Fortemente consigliato se il valore di available è true) Specifica l'ora precisa del giorno, in base al fuso orario dell'hotel, entro cui la richiesta di rimborso totale verrà accettata. Puoi associare questo valore a refundable_until_days per specificare, ad esempio, che "i rimborsi sono disponibili fino a due giorni prima del check-in entro le ore 16:00". Se refundable_until_time non è impostato, il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Time.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non sono impostati, la tariffa non viene mostrata come rimborsabile.
  • Se available è 0 o false, gli altri attributi vengono ignorati. La tariffa non viene mostrata come rimborsabile anche se sono impostati uno o entrambi gli altri attributi.
<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 dei vantaggi per notte.
<CarRentalIncluded> Optional boolean La tariffa include il noleggio auto senza costi aggiuntivi per la durata del soggiorno.
<MilesIncluded>> Optional boolean La tariffa include miglia del programma frequent flyer. I parametri includono:
  • NumberofMiles: numero di miglia per itinerario.
  • Provider: compagnia aerea del programma frequent flyer.
<OnPropertyCredit> Optional boolean La tariffa include credito consumabile all'interno della proprietà (alimenti e/o bevande analcoliche, accesso a resort, spa e così via). Parametro:
  • Amount: il valore del credito per itinerario, nella valuta locale.
<AirportTransportationIncluded> Optional Object La tariffa include il trasporto gratuito da/per un aeroporto nelle vicinanze. L'attributo facoltativo direction specifica la direzione del trasporto. I valori validi includono:
    from: il trasporto dall'aeroporto alla struttura è fornito. 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 che per l'aeroporto.

Esempi

L'esempio seguente definisce un pacchetto camera singolo per 2 persone (un adulto e un bambino) con 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>

L'esempio seguente definisce i metadati di camera e pacchetto:

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

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

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


L'esempio seguente definisce i metadati di camera e pacchetto per un pacchetto camera con caratteristiche della tariffa:

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

L'esempio seguente definisce i metadati di camere e pacchetti per i pasti, le foto e gli 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>
<?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 un messaggio <Transaction>.

L'elemento <Result> compare nella seguente posizione nella gerarchia XML del messaggio 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 ai metadati indipendenti dall'itinerario di una camera o pacchetto (come una descrizione o un insieme di comfort) definiti in <PackageData> e <RoomData>.

In genere, i messaggi Transaction con aggiornamenti dei prezzi vengono inviati molto frequentemente. La modalità e la frequenza di queste operazioni dipendono dalla modalità di invio.

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

Un singolo messaggio Transaction può avere un numero illimitato di elementi <Result>, a condizione che le dimensioni del messaggio non superino 100 MB.

Sintassi

La sintassi dell'elemento <Result> è la seguente:

<?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> prevede i seguenti attributi:

Attributo Obbligatorio? Tipo Descrizione
mergeable Optional boolean Per impostazione predefinita, i nuovi prezzi per una coppia hotel e itinerario specifica sovrascrivono eventuali prezzi precedenti (non scaduti) presenti nella cache di Google. L'attributo mergeable consente di archiviare prezzi aggiuntivi nella cache di Google senza eliminare le informazioni sui prezzi precedenti. Questo attributo è sempre impostato su true per le risposte a query sui prezzi in tempo reale con contesto, indipendentemente dalla risposta al messaggio Transaction.

Elementi secondari

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

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

Se non includi questo elemento, tutte le pagine di destinazione definite nel file delle pagine di destinazione vengono considerate idonee all'uso per la prenotazione della camera. Per ulteriori informazioni, consulta la sezione 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 camera doppia che offri. Qui sono consentite un numero di persone superiore se non hai un prezzo per il numero di due persone e il tuo account ha prezzi per un numero di persone diverso da due. Contattaci per attivare le tariffe per un numero di persone diverso da due. Le tariffe per una persona non sono consentite qui, devono essere impostate in <Rates>.
  • Per una camera condivisa, lascia vuoto e utilizza <RoomBundle>.
  • Questo valore deve essere il prezzo base totale per tutte le notti, non la tariffa media per notte.

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

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

L'elemento <Baserate> non deve contenere simboli di raggruppamento delle cifre, come virgole (,) o punti (.). Utilizza sempre il punto (.) come separatore decimale. Ad esempio, rappresenta 1.200,40 $come:

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

L'elemento <Baserate> prevede i seguenti attributi facoltativi:

  • all_inclusive: un valore booleano che indica se la tariffa include tasse e commissioni. In generale, imposta questo valore su false per gli utenti finali negli Stati Uniti e in Canada e fornisci valori per gli elementi <Tax> e <OtherFees>. Se utilizzi prezzi all-inclusive, potresti non essere idoneo alla visualizzazione nelle schede se i tuoi prezzi non distinguono tasse e commissioni per gli utenti canadesi.

    Ora i prezzi all-inclusive vengono mostrati agli utenti degli Stati Uniti.

    Per tutti gli altri utenti finali, dovrai includere tasse e commissioni nella tariffa di base e impostare il valore dell'attributo all_inclusive su true. Per ulteriori informazioni, consulta le norme su tasse e commissioni.

    Il valore predefinito è false.

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

I valori validi sono:

  • web: l'importo viene addebitato all'utente online al momento della prenotazione. Questo è il valore predefinito. La pagina di destinazione effettiva viene definita dal file della pagina di destinazione e può essere influenzata dalla valuta, dalla posizione, dalla lingua o da altri fattori dell'utente.
  • hotel: l'importo viene addebitato all'utente al momento del check-in in hotel. Se il pagamento deve essere sempre effettuato nella valuta dell'hotel, imposta il valore di <ChargeCurrency> su hotel. La pagina di destinazione effettiva non è influenzata dalla valuta dell'utente.
  • deposit: all'utente viene addebitata subito una parte dell'importo, che potrà essere saldato successivamente, in genere al momento del check-out in hotel.
  • installments: all'utente viene addebitata una frazione iniziale della somma totale dovuta e si prevede che paghi regolarmente un saldo fisso in un periodo di tempo prestabilito.

Il valore predefinito è web.

<Checkin> Required Date La data di check-in per un itinerario, espressa utilizzando il formato Date. La combinazione degli elementi <Nights> e <Checkin> costituisce un itinerario.
<Custom[1‑5]> Optional string Definisce un campo personalizzato che puoi utilizzare per trasmettere altri dati associati a un hotel. Puoi utilizzare fino a cinque valori personalizzati con i seguenti nomi degli elementi:
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

Gli elementi <Custom> consentono di trasmettere dati arbitrari. Ad esempio, in questo campo puoi specificare un valore che verrà poi utilizzato dal file delle pagine di destinazione per creare un URL personalizzato per una pagina di destinazione. Un campo personalizzato può contenere un massimo di 200 caratteri. Per ulteriori informazioni, consulta la sezione sui file delle pagine di destinazione .

Gli elementi <Custom> forniti nell'elemento <Rate> non vengono ereditati dall'elemento <RoomBundle>. Devi definire l'attributo <Custom> separatamente in ogni <RoomBundle>.

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

Ti consigliamo di non fornire timestamp di scadenza se non sono fondamentali per la struttura dei prezzi.

Google non pubblica prezzi scaduti e qualsiasi itinerario con un prezzo scaduto diventerà idoneo per le query sui prezzi in tempo reale.

<Nights> Required integer Il numero di notti per un itinerario. Il valore dell'elemento <Nights> deve essere un numero intero positivo. La combinazione di <Nights> e <Checkin> costituisce un itinerario.
<OtherFees> Optional float Altre tariffe diverse dalle tasse e dalla tariffa di base che influiscono sul prezzo finale di una camera. L'elemento <OtherFees> prevede un singolo attributo obbligatorio, currency, che definisce il 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 occupanti consentito per questa tariffa. Quando <Occupancy> è direttamente sotto <Result>, deve specificare 2 o più. L'elemento secondario <Occupancy> può essere accompagnato dall'elemento <OccupancyDetails>, che specifica il tipo di ospiti (adulti o bambini). Se i tipi di ospiti non sono specificati, si presume che siano adulti. Per la sintassi e la descrizione degli elementi secondari, consulta la sezione <OccupancyDetails>. Se non viene fornito l'elemento <Occupancy>, l'impostazione predefinita per il numero di persone è 2.

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

<PackageID> Optional string L'ID univoco del pacchetto per l'associazione ai dati predefiniti del pacchetto. Utilizzato anche per compilare la variabile della pagina di destinazione PACKAGE-ID. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.
<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 all'<id> dell'hotel definito nel feed elenco hotel.
<Rates> Optional <Rates> Un contenitore per uno o più blocchi <Rate>. Ogni elemento <Rate> in <Rates> definisce un prezzo diverso per la combinazione camera/itinerario.

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

Nota: all'interno di <Result>, le tariffe per una persona possono essere specificate solo in <Rates>. Contattaci per consentire prezzi per un numero di persone diverso da due.

<Refundable> Optional Object Consente di indicare una tariffa come totalmente rimborsabile o con cancellazione senza costi. Se non viene specificato un valore, le informazioni sul rimborso non verranno visualizzate. Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono quelle a livello dell'elemento <Result>. Le norme sui rimborsi a livello dell'elemento <Rates> sostituiscono quelle a livello dell'elemento <PackageData>. I prezzi rimborsabili possono essere evidenziati per gli utenti anche attraverso opzioni alternative, senza modificare direttamente lo schema dei messaggi Transaction. Scopri di più sulle norme relative alle tariffe rimborsabili.

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

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

Nota: consigliamo di impostare tutti gli attributi. Quando non vengono impostati uno o più attributi, viene generato un messaggio di avviso relativo allo stato dei feed.

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

  • available: (Obbligatorio) Deve essere impostato su 1 (o true) per indicare se la tariffa prevede il rimborso totale; in caso contrario, deve essere impostato su 0 (o false).
  • refundable_until_days: (Obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile richiedere un rimborso totale. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (Fortemente consigliato se il valore di available è true) Specifica l'ora precisa del giorno, in base al fuso orario dell'hotel, entro cui la richiesta di rimborso totale verrà accettata. Puoi associare questo valore a refundable_until_days per specificare, ad esempio, che "i rimborsi sono disponibili fino a due giorni prima del check-in entro le ore 16:00". Se refundable_until_time non è impostato, il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Time.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non sono impostati, la tariffa non viene mostrata come rimborsabile.
  • Se available è 0 (o false), gli altri attributi vengono ignorati. La tariffa non viene mostrata come rimborsabile anche se sono impostati uno o entrambi gli altri attributi.
<RoomBundle> Optional <RoomBundle> Un contenitore di informazioni sulla descrizione fisica e sul costo di una camera, eventuali pacchetti di comfort e alcuni dettagli sulle norme di acquisto per un determinato hotel e itinerario.

In generale, utilizza questo elemento per definire i prezzi della camera base e di diversi tipi di camere all'interno della stessa struttura. Sebbene sia possibile definire le descrizioni del pacchetto camera in linea, devi utilizzare un altro messaggio Transaction per specificare queste informazioni. Poiché Google memorizza i metadati, potrai riutilizzarli senza doverli ripetere in tutti gli aggiornamenti futuri dei prezzi.

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

Se l'attributo "all_inclusive" dell'elemento <Baserate> è impostato esplicitamente su true, l'impostazione di questo valore è facoltativa.

<Unavailable> Optional Object Indica che l'itinerario non è disponibile per la prenotazione. Funge da contenitore per motivi più dettagliati per cui l'itinerario non era disponibile. Uno o più dei seguenti motivi di mancata disponibilità possono essere nidificati sotto il tag <Unavailable>:
  • <NoVacancy/>: non sono disponibili altre camere per la vendita per una o più notti del soggiorno.
  • <MinNightStay value=N/>: l'itinerario era inferiore al soggiorno minimo di N notti per le date del soggiorno.
  • <MaxNightStay value=N/>: l'itinerario superava il numero massimo di notti di soggiorno pari a N per le date del soggiorno.
  • <MinAdvancePurchase value=N/>: l'itinerario era inferiore al periodo di prenotazione anticipata minimo di N per le date del soggiorno.
  • <MaxAdvancePurchase value=N/>: l'itinerario era superiore alla finestra di prenotazione anticipata massima di N per le date del soggiorno.
  • <ClosedToArrival/>: la struttura non consente il check-in nella data di arrivo dell'itinerario.
  • <ClosedToDeparture/>: la struttura non consente il check-out nella data di partenza dell'itinerario.
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: la struttura è chiusa per parte o per tutto il soggiorno. Gli attributi consigliati first_open e first_closed specificano le prime date maggiori o uguali alla data di arrivo per le quali la struttura è rispettivamente 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 struttura. Per una struttura chiusa nella data di arrivo, first_closed deve essere uguale alla data di arrivo e first_opened deve essere la data successiva in cui la struttura è aperta.
  • <NotFetched/>: un prezzo per l'itinerario non è stato fornito dalle origini dati a valle.
  • <InvalidProperty/>: l'identificatore della proprietà richiesto non è stato riconosciuto.
  • <InvalidOccupancy/>: il numero di persone richiesto non è supportato dalla struttura.
  • <PriceIssue/>: un problema con il prezzo ha impedito di inviarlo.
  • <InternalError reason=""/>: si è verificato un errore non elencato. L'attributo motivo facoltativo può segnalare l'errore come testo.
  • <OtherRestriction restriction=""/>: l'itinerario non era disponibile a causa di alcune limitazioni di prenotazione non enumerate. L'attributo facoltativo restriction consente di segnalare la limitazione come testo.

Esempi

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 vengono riportati i dettagli della camera, come descrizione, immagine e didascalia, nome della camera e capienza.

Puoi specificare queste informazioni una volta in un messaggio Transaction separato che verrà memorizzato da Google. Potrai poi farvi riferimento in tutti gli aggiornamenti di prezzo e inventario successivi. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.

L'esempio seguente definisce un singolo itinerario e una proprietà con più tariffe per diversi numeri di persone. L'elemento <Rates> può essere utilizzato per fornire prezzi con più tariffe per una proprietà specifica. L'esempio seguente è utile anche per le proprietà di tipo Casa 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>

L'esempio seguente definisce un itinerario di cui non è stato possibile recuperare la disponibilità dai canali a valle, un secondo itinerario che è inferiore al numero minimo di notti e già prenotato per le date specificate e un terzo itinerario la cui struttura è chiusa il giorno di arrivo, ma che apre nel corso del 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 elemento <Rate> in <Rates> definisce un prezzo diverso per la combinazione di camera o 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 tariffe agevolate, tariffe private o tariffe agevolate in pacchetti camera.

L'elemento <Rates> compare nella seguente posizione nella gerarchia XML del messaggio 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 elemento <Rate> sostituiscono i valori correlati ai prezzi nell'elemento principale <Result> o <RoomBundle>. Se non sono impostati nell'elemento <Rate>, ereditano il valore dall'elemento principale. Solo <AllowablePointsofSale> viene ereditato all'elemento <RoomBundle>.

Sintassi

La sintassi dell'elemento <Rates> è la seguente:

<?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> prevede i seguenti attributi:

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

Elementi secondari

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

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

Nota: in <Rate> non è possibile definire l'elemento secondario <Baserate> come non disponibile.

<ChargeCurrency> Optional enum Definisce quando e dove l'utente effettua il pagamento per una prenotazione. Questo elemento utilizza la stessa sintassi di <ChargeCurrency> in <Result>.
<Custom[1‑5]> Optional string Campi personalizzati che puoi utilizzare per trasmettere dati aggiuntivi associati a un hotel a una pagina di destinazione. Questo elemento utilizza la stessa sintassi di <Custom[1‑5]> in <Result>. Un campo personalizzato può contenere un massimo di 200 caratteri. Per ulteriori informazioni, consulta la sezione sui file delle pagine di destinazione.

Se gli elementi <Custom> sono forniti nell'elemento <Result>, non vengono ereditati nell'elemento <RoomBundle> e devono essere definiti separatamente per ogni <RoomBundle> oppure possono essere inclusi in <PackageData>, se necessario.

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

Specifica il numero massimo di occupanti consentito per questa tariffa. Se non specificato, si presume che sia uguale alla tariffa principale. L'elemento secondario <Occupancy> può essere accompagnato dall'elemento <OccupancyDetails>, che specifica il tipo di ospiti (adulti o bambini). Per la sintassi e la descrizione degli elementi secondari, consulta la sezione <OccupancyDetails>.

<OtherFees> Required float Altre tariffe diverse dalle tasse e dalla tariffa di base che influiscono sul prezzo finale di una camera. Questo elemento utilizza la stessa sintassi di <OtherFees> in un elemento <Result>.

Se l'attributo "all_inclusive" dell'elemento <Baserate> è impostato esplicitamente su true, l'impostazione di questo valore è facoltativa.

<Refundable> Optional Object Consente di indicare una tariffa come totalmente rimborsabile o con cancellazione senza costi. Se non viene specificato un valore, le informazioni sul rimborso non verranno visualizzate. Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono quelle a livello dell'elemento <Result>. Le norme sui rimborsi a livello dell'elemento <Rates> sostituiscono quelle a livello dell'elemento <PackageData>. I prezzi rimborsabili possono essere evidenziati per gli utenti anche attraverso opzioni alternative, senza modificare direttamente lo schema dei messaggi Transaction. Scopri di più su queste opzioni Norme relative alle tariffe rimborsabili.

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

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

Nota: consigliamo di impostare tutti gli attributi. Quando non vengono impostati uno o più attributi, viene generato un messaggio di avviso relativo allo stato dei feed.

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

  • available: (Obbligatorio) Deve essere impostato su 1 (o true) per indicare se la tariffa prevede il rimborso totale; in caso contrario, deve essere impostato su 0 (o false).
  • refundable_until_days: (Obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile richiedere un rimborso totale. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (Fortemente consigliato se il valore di available è true) Specifica l'ora precisa del giorno, in base al fuso orario dell'hotel, entro cui la richiesta di rimborso totale verrà accettata. Puoi associare questo valore a refundable_until_days per specificare, ad esempio, che "i rimborsi sono disponibili fino a due giorni prima del check-in entro le ore 16:00". Se refundable_until_time non è impostato, il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Time.

Quando imposti gli attributi, tieni presente quanto segue:

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

Esempi

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>

L'esempio seguente definisce una tariffa di base e più tariffe agevolate in un elemento <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 i prezzi e la disponibilità dei pacchetti camera come elemento secondario di <Result> in un messaggio <Transaction>. Definisci un elemento separato per ogni combinazione di pacchetti o itinerari. Per definire il pacchetto e i termini dei pacchetti camera, utilizza <RoomData>.

L'elemento <RoomBundle> compare nella seguente posizione nella gerarchia XML del messaggio Transaction:

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

Per ulteriori informazioni, consulta la pagina Utilizzo dei pacchetti camera.

Sintassi

La sintassi dell'elemento <RoomBundle> è la seguente:

<?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> prevede 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 la seguente eccezione:
  • Quando la camera non è disponibile per l'itinerario, rimuovi l'elemento <RoomBundle> per indicare che la camera non è più nell'inventario. Per ulteriori informazioni, consulta Rimuovere un pacchetto camera.
<BreakfastIncluded> Optional boolean Specifica se la tariffa del pacchetto camera comprende la colazione.
<ChargeCurrency> Optional enum Definisce quando e dove l'utente effettua il pagamento per una prenotazione. Questo elemento utilizza la stessa sintassi di <ChargeCurrency> in un elemento <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>. Un campo personalizzato può contenere un massimo di 200 caratteri. Per ulteriori informazioni, consulta la sezione sui file delle pagine di destinazione. Le variabili personalizzate vengono elencate solo quando invii i prezzi nel messaggio Transaction.

Se gli elementi <Custom> sono forniti nell'elemento <Result>, non vengono ereditati nell'elemento <RoomBundle> e devono essere definiti separatamente per ogni <RoomBundle> oppure possono essere inclusi in <PackageData>, se necessario.

<InternetIncluded> Optional boolean Indica se un pacchetto camera comprende l'accesso a internet gratuito, a differenza di altri pacchetti che non includono tale comfort. Non impostare questo elemento per i pacchetti camera di un hotel che fornisce accesso gratuito a internet in tutte le camere. Questo elemento non si applica all'accesso cablato all'interno delle camere o all'accesso wireless che non è disponibile nelle camere degli ospiti.
<Occupancy> Required integer Specifica il numero massimo di occupanti consentito per questa tariffa. Ad esempio, una suite di grandi dimensioni potrebbe ospitare fisicamente 6 persone, ma il "Pacchetto luna di miele" consente solo 2 persone.

Questo valore deve essere inferiore o uguale all'elemento <Capacity>, che corrisponde al numero massimo di persone che la camera può ospitare fisicamente.

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

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

Note:

  • <Occupancy> per <RoomBundle> è vivamente consigliato, quindi contrassegnato come obbligatorio e, se omesso, verrà visualizzato un errore 1097.
  • <Occupancy> proviene dall'oggetto dati in questo ordine: <RoomBundle>, <PackageData> e poi = <RoomData>. Se non è presente alcun valore in nessuno di questi, il valore predefinito è 2.
  • L'elemento secondario <Occupancy> può essere accompagnato dall'elemento <OccupancyDetails>, che specifica il tipo di ospiti (adulti o bambini). Se i tipi di ospiti non sono specificati, si presume che siano adulti. Per la sintassi e la descrizione degli elementi secondari, consulta la sezione <OccupancyDetails>.
  • Quando imposti <Occupancy> sia in <RoomBundle> che in <PackageData>, il valore in <RoomBundle> ha la precedenza.
<OtherFees> Required float Altre tariffe diverse dalle tasse e dalla tariffa di base che influiscono sul prezzo finale di una camera. L'elemento <OtherFees> prevede un singolo attributo obbligatorio, currency, che definisce il codice valuta di tre lettere per le tariffe. Ad esempio, utilizza USD per i dollari statunitensi.
<PackageID> Optional (recommended) string L'ID univoco per i dati del pacchetto. Utilizza questo ID per associare i dati del pacchetto camera con quelli inviati in <PackageData>. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera. (Puoi utilizzare questo ID anche per fare riferimento a una definizione comune del pacchetto camera in un singolo messaggio Transaction quando definisci i dati del pacchetto in linea.)
<ParkingIncluded> Optional boolean Indica se un pacchetto camera include il parcheggio gratuito, laddove questo servizio è a pagamento nell'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 una combinazione di camera e pacchetto. Ad esempio, se il valore di <RoomID> è 5 e il valore di <PackageID> è ABC, puoi utilizzare il valore 5-ABC per <RatePlanID>. Consigliamo vivamente di utilizzare RatePlanID come variabile per creare l'URL della tua pagina di destinazione dinamica (in precedenza Punto di vendita).

Per ulteriori informazioni, consulta la sezione Utilizzare variabili e condizioni.

<Rates> Optional <Rates> Tariffe che sostituiscono le impostazioni predefinite per questo pacchetto camera. Questo elemento utilizza la stessa sintassi di <Rates> in <Result>.
<Refundable> Optional Object Consente di indicare una tariffa come totalmente rimborsabile o con cancellazione senza costi. Se non viene specificato un valore, le informazioni sul rimborso non verranno visualizzate. Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono quelle a livello dell'elemento <Result>. Le norme sui rimborsi a livello dell'elemento <Rates> sostituiscono quelle a livello dell'elemento <PackageData>. I prezzi rimborsabili possono essere evidenziati per gli utenti anche attraverso opzioni alternative, senza modificare direttamente lo schema dei messaggi Transaction. Scopri di più su queste opzioni Norme relative alle tariffe rimborsabili.

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

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

Nota: consigliamo di impostare tutti gli attributi. Quando non vengono impostati uno o più attributi, viene generato un messaggio di avviso relativo allo stato dei feed.

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

  • available: (Obbligatorio) Deve essere impostato su 1 (o true) per indicare se la tariffa prevede il rimborso totale; in caso contrario, deve essere impostato su 0 (o false).
  • refundable_until_days: (Obbligatorio se available è true) Specifica il numero di giorni prima del check-in entro cui è possibile richiedere un rimborso totale. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
  • refundable_until_time: (Fortemente consigliato se il valore di available è true) Specifica l'ora precisa del giorno, in base al fuso orario dell'hotel, entro cui la richiesta di rimborso totale verrà accettata. Puoi associare questo valore a refundable_until_days per specificare, ad esempio, che "i rimborsi sono disponibili fino a due giorni prima del check-in entro le ore 16:00". Se refundable_until_time non è impostato, il valore predefinito è mezzanotte.

    Il valore di questo attributo utilizza il formato Time.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non sono impostati, la tariffa non viene mostrata come rimborsabile.
  • Se available è 0 (o false), gli altri attributi vengono ignorati. La tariffa non viene mostrata come rimborsabile anche se sono impostati uno o entrambi gli altri attributi.
<RoomID> Required string L'ID univoco per i dati della camera. Utilizza questo ID per associare i dati del pacchetto camera con quelli inviati nell'elemento <RoomData>. Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera. Puoi utilizzare questo ID anche per fare riferimento a una definizione comune della camera in un singolo messaggio Transaction quando definisci i dati della camera in linea.
<Tax> Required float Le tasse calcolate per il prezzo finale di una camera. L'elemento <Tax> prevede 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

L'esempio seguente definisce una risposta con un singolo pacchetto per numero di persone. Quando un utente seleziona 1 nel selettore Numero di persone, Google mostra il prezzo idoneo più basso indipendentemente dal numero di persone.

Se non è disponibile un prezzo per una persona, Google mostrerà il prezzo più basso per due persone. Tieni presente che i prezzi per una persona non vengono sottoposti a query in tempo reale se le informazioni nella cache relative a un itinerario contengono prezzi per due o più persone.

Questo esempio fa riferimento ai metadati di camere e pacchetti predefiniti con gli elementi <RoomID> e <PackageID>. Utilizza gli elementi <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>


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

Questo esempio fa riferimento ai metadati di camere e pacchetti predefiniti con gli elementi <RoomID> e <PackageID>. Utilizza gli elementi <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>


L'esempio seguente imposta il numero di persone in più pacchetti camera per mostrare i possibili prezzi delle camere in un 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>

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

L'elemento secondario <Occupancy> in un messaggio Transaction specifica il numero massimo di ospiti per una camera o un pacchetto. L'elemento <OccupancyDetails> può contenere ulteriori informazioni come il numero e il tipo di ospiti (adulti o bambini).

Quando <Occupancy> e <OccupancyDetails> sono all'interno dell'elemento <Rates> di <Result> o <RoomBundle>, la tariffa è vincolata dai dettagli sul numero di persone.

Sintassi

Quando viene visualizzato <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> prevede i seguenti elementi secondari:

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

Esempi

Gli esempi seguenti mostrano come <OccupancyDetails> può essere inserito in <Results>, <RoomBundle> o nell'elemento secondario <Rates>.

L'esempio seguente definisce un itinerario e i relativi prezzi per una proprietà in risposta a una Query sui prezzi in tempo reale in cui l'utente ha specificato il numero e il tipo di ospiti. In questo caso, i dati per <OccupancyDetails>, ovvero 2 adulti e un bambino, sono inseriti direttamente 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>

L'esempio seguente definisce un itinerario e i relativi prezzi per 1 adulto e 1 bambino. In questo caso, <OccupancyDetails> è inserito all'interno dell'elemento <Rates> 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>

L'esempio seguente definisce il numero di persone come 2 adulti e 1 bambino per due notti, con una tariffa rimborsabile. In questo caso, <OccupancyDetails> è inserito 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>

L'esempio seguente definisce più tariffe <RoomBundle> limitate a un numero di persone pari a 2 adulti e 2 bambini. In questo caso, <OccupancyDetails> è inserito all'interno dell'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>