Questa pagina fornisce un riferimento per i messaggi Transaction basati su XML.
<Transaction>
L'elemento principale di un messaggio Transaction
è <Transaction>
. È un contenitore per le informazioni descrittive su
camere e pacchetti, nonché per 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, purché le dimensioni totali del messaggio non superino 100 MB.
Sintassi
L'elemento <Transaction>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp" id="transaction_ID">
<!-- Defines data about a room or package (Room Bundle) -->
<PropertyDataSet>
...
</PropertyDataSet>
<!-- Updates/sets prices and availability for rooms and Room Bundles -->
<!-- (Also removes itineraries from inventory) -->
<Result>
...
</Result>
</Transaction>
Attributi
L'elemento <Transaction>
ha i seguenti attributi:
Attributo | Campo 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, da utilizzare se il backend fornisce feed del prezzo per più account partner. Questo valore di stringa è il valore "Chiave del partner" elencato nella pagina Impostazioni account in Hotel Center. |
timestamp | Required | DateTime | Il momento in cui è stato inviato il messaggio Transaction. Verranno elaborati tutti i messaggi inviati con un timestamp entro le 24 ore precedenti, mentre quelli non inviati verranno eliminati. I messaggi vengono elaborati nell'ordine di |
Elementi secondari
L'elemento <Transaction>
ha i seguenti elementi secondari:
Elemento secondario | Campo 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
elemento |
* È obbligatorio almeno uno dei valori <PropertyDataSet> o <Result> . |
Esempi
Dati della camera
L'esempio seguente definisce i dati della camera in un messaggio Transaction:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
Dati sui prezzi
L'esempio seguente definisce i dati sui prezzi in un messaggio Transaction:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
Tariffe per notte
L'esempio seguente definisce i dati sui prezzi per un 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>
Tariffe di base e agevolate
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>
Rimuovi inventario
L'esempio seguente rimuove diversi inventari (soggiorni di 1 notte per più date diverse) per un hotel dall'inventario:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-05-23T16:20:00-04:00" id="42">
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-23</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-24</Checkin>
<Nights>1</Nights>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
<!---Sending <Baserate> is optional with <Unavailable> -->
<Result>
<Property>1123581321</Property>
<Checkin>2023-05-25</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">-1</Baserate>
<Unavailable>
<NoVacancy/>
</Unavailable>
<Tax currency="USD">0</Tax>
<OtherFees currency="USD">0</OtherFees>
</Result>
</Transaction>
<PropertyDataSet>
Un contenitore per le informazioni sulla camera e sul pacchetto (o pacchetto camera) in un messaggio <Transaction>
. I valori impostati su un hotel sostituiscono quelli impostati su un partner.
Google memorizza queste informazioni in modo che non sia necessario definirle 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
L'elemento <PropertyDataSet>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> <!-- (Required) ID that matches the Hotel List Feed --> <Property>hotel_ID</Property> <!-- (Optional) Defines metadata about a room --> <RoomData> ... </RoomData> <!-- (Optional) Defines package metadata to be paired with rooms (Room Bundles) --> <PackageData> ... </PackageData> </PropertyDataSet> ... </Transaction>
Attributi
L'elemento <PropertyDataSet>
non ha attributi.
Elementi secondari
L'elemento <PropertyDataSet>
ha i seguenti elementi secondari:
Elemento secondario | Campo 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 comfort e termini che non fanno parte
della descrizione fisica di una camera.
Negli aggiornamenti di prezzo devi fare riferimento all'ID pacchetto. Per maggiori informazioni, consulta la sezione Metadati dei pacchetti camera. |
<Property> | Required | string | L'ID di un hotel a cui si applicano i dati associati. Il
valore di questo elemento deve essere una stringa corrispondente all'elemento
<id> dell'hotel nel tuo 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 fare riferimento all'ID camera. |
* È obbligatorio almeno uno dei valori <PackageData> o <RoomData> . |
Esempi
Dati di camere e pacchetti
L'esempio seguente mostra i dati delle camere e dei pacchetti in un
<PropertyDataSet>
:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Quando invii i prezzi e la disponibilità di questa camera e di questo pacchetto camera, puoi fare riferimento agli ID camera e pacchetto nei messaggi sui prezzi. Il risultato è che puoi ridurre notevolmente le dimensioni dei messaggi e il numero di errori che potresti riscontrare a causa di dati duplicati. Per maggiori informazioni, consulta la sezione Metadati dei pacchetti camera.
<RoomData>
Definisce i metadati indipendenti dall'itinerario delle camere e, di conseguenza, dei pacchetti
camera (in quanto i pacchetti camera sono camere e servizi aggiuntivi). Utilizza l'<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 diversi dall'itinerario.
L'elemento <RoomData>
è simile a <PackageData>
, ma descrive
la camera fisica anziché i comfort e i termini di un pacchetto. Puoi utilizzare
<RoomData>
e <PackageData>
insieme per fornire i 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
L'elemento <RoomData>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet> ... <RoomData> <RoomID>room_ID</RoomID> <Name> <Text text="room_name" language="language_code"/> ... </Name> <Description> <Text text="room_description" language="language_code"/> ... </Description> <Capacity>max_number_of_occupants</Capacity> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults, children, or seniors --></OccupancyDetails> <OccupancySettings> <MinOccupancy>min_number_of_occupants</MinOccupancy> <MinAge>min_age_of_occupants</MinAge> </OccupancySettings> <PhotoURL> <Caption> <Text text="photo_description" language="language_code"/> ... </Caption> <URL>photo_location</URL> </PhotoURL> <RoomFeatures> ... </RoomFeatures> </RoomData> ... </PropertyDataSet> </Transaction>
Attributi
L'elemento <RoomData>
non ha attributi.
Elementi secondari
L'elemento <RoomData>
ha i seguenti elementi secondari:
Elemento secondario | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
<Capacity> | Optional | integer | Il numero massimo di persone che una camera può ospitare
fisicamente. Per una camera, la capacità è maggiore o uguale al
numero di persone.
Se specificato, questo valore deve essere uguale o superiore al valore
dell'elemento Il valore di |
<Description> | Optional | Object | Una descrizione dettagliata della camera. Questo elemento deve
contenere le informazioni non descritte da altri elementi o dall'elemento
<Name> . Non utilizzare solo lettere maiuscole
nella descrizione della camera.
L'elemento
Utilizza un elemento L'esempio seguente mostra la descrizione della camera in francese e 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 della camera. Questo valore deve corrispondere a quanto visualizzato sulla pagina di destinazione dell'hotel (in precedenza point of sale). Non impostare il valore di questo elemento solo in lettere maiuscole.
Questo elemento utilizza un singolo elemento secondario,
Utilizza un elemento L'esempio seguente mostra il nome della stanza 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 essere in grado di ospitare fisicamente 6
persone (capienza = 6), ma è destinata a un massimo di 4 persone.
Questo valore deve essere inferiore o uguale all'elemento
Il valore di
|
<OccupancySettings> | Optional | Object | Impostazioni che possono limitare o modificare i requisiti di occupazione di una
camera.
L'elemento
<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 delle foto deve essere nel proprio
<PhotoURL> .
Questo elemento utilizza i seguenti elementi secondari:
Esempio: <PhotoURL> <URL>https://www.example.com/static/bar/image1234.jpg</URL> <Caption> <Text text="A bright and breezy way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse et aérée pour profiter de votre journée tasse de thé." language="fr"/> </Caption> </PhotoURL> <PhotoURL> <URL>https://www.foo.com/static/bar/image5678.jpg</URL> <Caption> <Text text="Or, perhaps you prefer coffee." language="en"/> <Text text="Ou peut-être préférez-vous le café." language="fr"/> </Caption> </PhotoURL> |
<RoomFeatures> | Optional | <RoomFeatures> |
Contiene informazioni sulle caratteristiche della camera. |
<RoomID> | Required | string | L'ID univoco della camera. Utilizza questo ID per associare i dati della camera
ai blocchi <Result> negli aggiornamenti dei prezzi. Per
maggiori 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
Dati della camera
L'esempio seguente definisce i dati della camera:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>5440OF</RoomID>
<Name>
<Text text="Single King Bed Room" language="en"/>
<Text text="Simple Lit de Roi" language="fr"/>
</Name>
<Description>
<Text text="One king bed with pillowtop mattresses, 300-thread-count linens,
and down comforters (bedspreads). City view. 300 square feet. Desk with
rolling chair. Multi-line phone with voice mail. Cable/satellite TV with
complimentary HBO and pay movies." language="en"/>
<Text text="Un très grand lit avec matelas à plateau-coussin, ..." language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Bathroom View" language="en"/>
<Text text="La salle de baines" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Capacity>4</Capacity>
</RoomData>
</PropertyDataSet>
</Transaction>
Metadati di camere e pacchetti
L'esempio seguente definisce i metadati di camere e pacchetti:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Più pacchetti camera
L'esempio seguente definisce i metadati di camere e pacchetti per più 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à trovate 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
L'elemento <RoomFeatures>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <PropertyDataSet ... > ... <RoomData> <RoomFeatures> <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle> <Beds> <Bed size="[single|semi_double|double|queen|king]"> <Width unit="cm" number="width"/> <Length unit="cm" number="length"/> </Bed> <!-- Include with any additional beds. --> </Beds> <Suite/> <Capsule/> <Roomsharing>[shared|private]</Roomsharing> <Outdoor/> <MobilityAccessible/> <Smoking>[smoking|non_smoking]</Smoking> <BathAndToilet relation="[together|separate]"> <Bath bathtub="[false|true]" shower="[false|true]"/> <Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/> </BathAndToilet> <OpenAirBath/> <AirConditioning/> <Balcony/> <Views> <!-- (Optional) Defines the type of views from the room. --> <!-- Example: <OceanView/> --> </Views> </RoomFeatures> ... </RoomData> ... </PropertyDataSet> </Transactions>
Attributi
L'elemento <RoomFeatures>
non ha attributi.
Elementi secondari
L'elemento <RoomFeatures>
ha i seguenti elementi secondari:
Elemento secondario | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
<JapaneseHotelRoomStyle> | Optional | enum | Indica lo stile di una camera d'albergo giapponese. I valori validi sono:
|
<Beds> | Optional | Object | Contiene un numero di <Bed> pari a quello della camera. Tieni presente che i futon giapponesi non devono essere conteggiati qui.
Ogni
<Bed> ha i seguenti elementi secondari:
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
<Suite> | Optional | empty | Fornisci questo elemento quando questa camera è una suite. |
<Capsule> | Optional | empty | Fornisci questo elemento se la stanza è una capsula. |
<Roomsharing> | Optional | enum | Indica se questa camera è condivisa con altri ospiti, ad esempio proprietari o altri ospiti. I valori validi sono shared e private . |
<Outdoor> | Optional | empty | Fornisci questo elemento quando questa camera è una struttura all'aperto senza pareti fisse, impianto idraulico e climatizzatore. Ad esempio, le camere d'albergo non sono alloggi all'aperto, mentre i campeggi in cui gli ospiti soggiornano in tende e le aree di sosta per camper dove gli ospiti portano il proprio camper sono alloggi all'aperto. |
<MobilityAccessible> | Optional | empty | Fornisci questo elemento quando la stanza è accessibile a persone con mobilità ridotta. |
<Smoking> | Optional | enum | Indica se questa è una camera per non fumatori o per fumatori. I valori validi sono non_smoking e smoking . |
<BathAndToilet> | Optional | Object | Contiene informazioni su una vasca e servizi igienici nella camera.
L'attributo è:
Facoltativamente, l'elemento accetta i seguenti elementi secondari:
Esempio: <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
<OpenAirBath> | Optional | empty | Fornisci questo elemento quando questa camera ha una vasca privata all'aperto. |
<AirConditioning> | Optional | empty | Fornisci questo elemento se questa camera è dotata di aria condizionata. |
<Balcony> | Optional | empty | Fornisci questo elemento se questa camera ha un balcone o una veranda. |
<Views> | Optional | Object | Le opzioni valide includono:
|
Esempi
JapaneseHotelRoomStyle
non ha un valore predefinito. L'omissione
di un valore non comporta un errore XML, ma la tua scheda non viene visualizzata nei
risultati di ricerca, quando l'utente filtra per stile della camera o letti.
Due letti singoli
L'esempio seguente mostra come utilizzare <RoomFeatures>
:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two single beds -->
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>private</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>non_smoking</Smoking>
<BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet electronic_bidet="1" mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<LakeView/>
<MarinaView/>
<BeachView/>
<ForestView/>
<MountainView/>
<NatureView/>
</Views>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
Due letti matrimoniali
Di seguito è riportato un esempio di camera giapponese in stile western
con due
double
letti.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two double beds-->
<Bed size="double"></Bed>
<Bed size="double"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
Stile giapponese senza letto
Di seguito è riportato un esempio di camera in stile giapponese senza letto. Le informazioni
dei letti non sono necessarie per le camere in stile japanese
.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
Western giapponese con letto
Di seguito è riportato un esempio di camera in stile japanese_western
con letto
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 delle informazioni sul numero di letti nelle camere di japanese_western
, segui l'esempio:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
<PackageData>
Definisce i metadati indipendenti dall'itinerario sui pacchetti camera per una struttura. Questo elemento contiene informazioni associate a un partner e a un hotel, ma non a un itinerario. Lo scopo previsto è definire una sola volta tutti i dati diversi dall'itinerario e farvi riferimento dai dati dell'itinerario.
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 a <RoomData>
, ma
descrive le caratteristiche e i termini delle tariffe che non fanno parte della descrizione fisica
della camera. Utilizza <RoomData>
e <PackageData>
in combinazione per
fornire dettagli sui pacchetti camera e sulle caratteristiche delle tariffe. 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>
della proprietà.
Ciascun elemento <PropertyDataSet>
viene considerato come tutti i dati della proprietà e
sovrascrive tutti i dati esistenti.
Per ulteriori informazioni, consulta la sezione Metadati dei pacchetti camera.
Sintassi
L'elemento <PackageData>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction ... >
<PropertyDataSet ... >
<PackageData>
<PackageID>package_ID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
...
</Name>
<Description>
<Text text="package_description" language="language_code"/>
...
</Description>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency>
<Occupancy>max_number_of_intended_occupants</Occupancy>
<OccupancyDetails><!-- optional info about the types of guests,
whether adults or children --></OccupancyDetails>
<!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
<BreakfastIncluded>boolean_value</BreakfastIncluded>
<InternetIncluded>boolean_value</InternetIncluded>
<ParkingIncluded>boolean_value</ParkingIncluded>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
...
</Caption>
<URL>photo_location</URL>
</PhotoURL>
...
<Meals>
<Breakfast
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
<Dinner
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
</Meals>
<CheckinTime>checkin_time</CheckinTime>
<CheckoutTime>checkout_time</CheckoutTime>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Special Rewards">
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum">
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<!-- a PackageID with a MilesIncluded
rate feature -->
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en">
</Name>
<ChargeCurrency>hotel </ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000 </NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines">
</Provider>
</MilesIncluded>
</PackageData>
...
...
</PropertyDataSet>
...
</Transaction>
Attributi
L'elemento <PackageData>
non ha attributi.
Elementi secondari
L'elemento <PackageData>
ha i seguenti elementi secondari:
Elemento secondario | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
<BreakfastIncluded> | Optional | boolean | Specifica se questo pacchetto include la colazione con la tariffa.
I valori validi sono 0 (o false ) e 1
(o true ).
È preferibile utilizzare
|
<ChargeCurrency> | Optional | enum | Quando e dove l'utente paga per una prenotazione. Questo elemento utilizza la stessa
sintassi di <ChargeCurrency> in un elemento <Result> .
Il valore predefinito è |
<CheckinTime> | Optional | Time | La prima ora di check-in possibile. L'orario deve essere inferiore alle 24:00 dell'ora locale dell'hotel. |
<CheckoutTime> | Optional | Time | Ultimo orario di check-out possibile nell'ora locale dell'hotel. |
<Description> | Optional | Object | Una descrizione dettagliata del pacchetto. Questo elemento deve
contenere le informazioni non descritte da altri elementi o dall'elemento
<Name> . Non utilizzare solo lettere maiuscole
nella descrizione della camera.
L'elemento <Description> <Text text="Two breakfast buffet certificates for each night of stay." language="en"/> <Text text="Deux certificats petit-déjeuner buffet pour chaque nuit de séjour." language="fr"/> </Description> |
<InternetIncluded> | Optional | boolean | Se un pacchetto include l'accesso a internet senza costi aggiuntivi,
mentre gli altri non lo includono. Non impostare questo
elemento per i pacchetti camera in un hotel che offre la connessione internet gratuita 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. I valori validi sono
0 (o false ) e 1
(o true ).
|
<Meals> | Optional | Object | Contiene informazioni sui pasti inclusi in questo pacchetto.
L'elemento
Gli attributi facoltativi vengono utilizzati solo quando Affinché i filtri per i pasti ( |
<Name> | Required | string | Il nome del pacchetto. Questo valore deve corrispondere a quanto visualizzato nella
pagina di destinazione dell'hotel. Non impostare il valore di questo elemento solo in lettere maiuscole.
Questo elemento utilizza un singolo elemento secondario, <Name> <Text text="Bed and Breakfast" language="en"/> <Text text="Lit et petit déjeuné" language="fr"/> </Name> |
<Occupancy> | Optional | integer | Il numero massimo di ospiti destinato a un pacchetto camera.
Ad esempio, una suite di grandi dimensioni potrebbe ospitare fisicamente 6
persone, ma è destinata a un massimo di 4 persone.
Questo valore deve essere inferiore o uguale all'elemento
Il valore di Se specifichi questo elemento sia in Nota: <Occupancy> può essere accompagnato da
<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 Puoi utilizzare questo ID anche per fare riferimento a una definizione comune del pacchetto camera utilizzata in un singolo messaggio Transaction quando definisci i dati del pacchetto camera in linea. |
<ParkingIncluded> | Optional | boolean | Indica se un pacchetto camera include il parcheggio senza costi aggiuntivi, 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 |
<PhotoURL> | Optional | Object | (come <PhotoURL> in <RoomData> , ma per il pacco (ad es. foto di pasti).)
|
<Refundable> | Optional | Object | Consente di indicare una tariffa come completamente rimborsabile o con cancellazione
senza costi. Se non viene specificato, non vengono visualizzate informazioni sul rimborso.
Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono le norme sui rimborsi a livello dell'elemento <Result> . Le norme sui rimborsi a livello di <Rates> sostituiscono
quelle a livello di <PackageData> . I prezzi rimborsabili possono anche essere evidenziati per gli utenti tramite opzioni alternative senza modificare direttamente lo schema dei messaggi di transazione. Scopri di più su queste opzioni
Norme sulle tariffe rimborsabili.
L'esempio seguente mostra l'elemento <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:
Quando imposti gli attributi, tieni presente quanto segue:
|
<MembershipBenefits |
Optional | boolean | La tariffa include vantaggi per lo status Elite per la durata del soggiorno. Include
i seguenti parametri:
|
<CarRentalIncluded> | Optional | boolean | La tariffa include il noleggio auto senza costi per la durata del soggiorno. |
<MilesIncluded>> | Optional | boolean | La tariffa include miglia frequent flyer. I parametri includono:
|
<OnPropertyCredit> | Optional | boolean | La tariffa include credito interno alla proprietà (alimenti e/o bevande analcoliche, resort, spa e così via). Parametro:
|
<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 viene fornito dall'aeroporto alla
proprietà. Questo è il valore predefinito se non viene specificata alcuna direzione.
to : dalla proprietà viene fornito il trasporto per l'aeroporto.
round_trip : il trasporto è previsto sia da e per l'aeroporto.
|
Esempi
Pacchetto per camera singola
L'esempio seguente definisce un pacchetto camera singolo per 2 persone (un adulto e un bambino) e include la colazione:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<Occupancy>2</Occupancy>
<OccupancyDetails>
<NumAdults>1</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Two certificates for continental
breakfast will be provided." language="en"/>
<Text text="Deux certificats pour le petit déjeuner
continental seront fournis." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Metadati di camere e pacchetti
L'esempio seguente definisce i metadati di camere e pacchetti:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>180054</Property>
<RoomData>
<RoomID>060773</RoomID>
<Name>
<Text text="Single Bed Room" language="en"/>
<Text text="Chambre single" language="fr"/>
</Name>
<Description>
<Text text="Non-smoking" language="en"/>
<Text text="Pas de fumiers" language="fr"/>
</Description>
<PhotoURL>
<Caption>
<Text text="Living area" language="en"/>
<Text text="Le chambre" language="fr"/>
</Caption>
<URL>http://www.foo.com/static/bar/image1234.jpg</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>P54321</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
<Text text="Avec le petit déjeuner" language="fr"/>
</Name>
<Description>
<Text text="Includes a delightful array of jams and jellies." language="en"/>
<Text text="Comprend une délicieuse gamme de confitures et gelées." language="fr"/>
</Description>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
Più pacchetti camera
L'esempio seguente definisce i metadati di camere e pacchetti per più 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>
Pacchetto camera con tariffe
L'esempio seguente definisce i metadati di camere e pacchetti per un pacchetto camera con caratteristiche delle tariffe:
<Transaction timestamp="2010-04-24T20:44:56-04:00" id="TXNID">
<PropertyDataSet>
<Property>12345</Property>
<RoomData>
...
</RoomData>
<!-- definitions of PackageData types including rate features -->
<PackageData>
<PackageID>room_with_addl_benefits</PackageID>
<Name>
<Text text="Acme Hotels 2017 Promotion Package" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<BreakfastIncluded>1</BreakfastIncluded>
<MembershipBenefitsIncluded>
<ProgramName>
<Text language="en" text="Marriott Rewards"/>
</ProgramName>
<ProgramLevel>
<Text language="en" text="Platinum"/>
</ProgramLevel>
</MembershipBenefitsIncluded>
<OnPropertyCredit>
<Amount currency="USD">123.45</Amount>
</OnPropertyCredit>
</PackageData>
<PackageData>
<PackageID>room_with_miles</PackageID>
<Name>
<Text text="Room with Bundled Miles" language="en"/>
</Name>
<ChargeCurrency>hotel</ChargeCurrency>
<MilesIncluded>
<NumberOfMiles>1000</NumberOfMiles>
<Provider>
<Text language="en" text="United Airlines"/>
</Provider>
</MilesIncluded>
<AirportTransportationIncluded direction="from"/>
</PackageData>
</PropertyDataSet>
<!-- The actual list of prices -->
<Result>
…
</Result>
</Transaction>
Pasti e foto
L'esempio seguente definisce i metadati di camere e pacchetti per pasti, foto e orari di check-in e check-out:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Meals Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<!-- Guests can choose to have breakfast in their room or in another
space to avoid contact with other guests. -->
<Breakfast included="1" in_room="1" in_private_space="1"/>
<Dinner included="1" buffet="1"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
Colazione
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<Breakfast included="true"/>
<!-- Dinner not included needs to be explicitly specified -->
<Dinner included="false"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
<Result>
Un contenitore per gli aggiornamenti di prezzi e disponibilità in 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 in genere fanno riferimento
ai metadati indipendenti dall'itinerario di una camera o pacchetto (ad esempio una descrizione o
un insieme di comfort) definiti in <PackageData>
e <RoomData>
.
In genere i messaggi Transaction con gli aggiornamenti dei prezzi vengono inviati molto spesso. La modalità e la frequenza di esecuzione di questa operazione dipendono dalla modalità di invio.
Puoi utilizzare <Result>
in un messaggio Transaction per rimuovere gli itinerari, come
descritto in Rimuovere dall'inventario.
Per saperne di più sull'utilizzo dei messaggi Transaction per aggiornare prezzi e
disponibilità, consulta la sezione Aggiungere e aggiornare l'inventario.
Un singolo messaggio Transaction può includere un numero illimitato di elementi <Result>
, a condizione che le dimensioni del messaggio non superino 100 MB.
Sintassi
L'elemento <Result>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <!-- Required --> <Property>hotel_ID</Property> <!-- Required --> <Checkin>YYYY-MM-DD</Checkin> <!-- Required --> <Nights>number_of_nights</Nights> <Baserate currency="currency_code">price</Baserate> <!-- Only required when <Baserate> contains a real price --> <Tax currency="currency_code">tax_amount</Tax> <!-- Only required when <Baserate> contains a real price --> <OtherFees currency="currency_code">fee_amount</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <RoomID>room_ID</RoomID> <PackageID>package_ID</PackageID> <ExpirationTime>expiration_time</ExpirationTime> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <!-- For Baserate, occupancy value must be greater than or equal to 2. If a value is not provided for occupancy, it defaults to 2. --> <OccupancyDetails>occupancy_info</OccupancyDetails> <Rates>...</Rates> <RoomBundle>...</RoomBundle> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> ... </AllowablePointsOfSale> <Custom[1-5]>custom_value</Custom[1-5]> </Result> ... </Transaction>
Attributi
L'elemento <Result>
ha i seguenti attributi:
Attributo | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
mergeable | Optional | boolean | Per impostazione predefinita, i nuovi prezzi per una coppia hotel e itinerario specifica
sovrascriveranno eventuali prezzi precedenti (non scaduti) presenti nella cache di Google. L'attributo unione consente di archiviare prezzi aggiuntivi nella cache di Google senza eliminare le informazioni sui prezzi precedenti. Per le risposte alle query sui prezzi in tempo reale con
contesto questo attributo sarà sempre impostato su true
(indipendentemente dalla risposta del messaggio di transazione). |
Elementi secondari
L'elemento <Result>
ha i seguenti elementi secondari:
Elemento secondario | Campo 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 sono considerate idonee per essere utilizzate per prenotare la camera. Per maggiori 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 dovrebbe riflettere quanto segue:
Quando la camera non è disponibile per l'itinerario,
Per rimuovere un pacchetto camera, segui le istruzioni riportate in Rimuovere un pacchetto camera.
<Baserate currency="USD">1200.40</Baserate> L'elemento
|
<ChargeCurrency> | Optional | enum | Quando e dove l'utente paga 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:
Il valore predefinito è |
<Checkin> | Required | Date | La data di check-in per un itinerario utilizzando il formato Data. La combinazione dell'elemento <Nights> e
dell'elemento <Checkin> costituisce un itinerario. |
<Custom[1‑5]> | Optional | string | Definisce un campo personalizzato che puoi utilizzare per trasmettere ulteriori dati
associati a un hotel. Puoi inserire fino a cinque valori personalizzati con i
seguenti nomi di elementi:
Gli elementi Gli elementi <Custom> forniti nell'elemento |
<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 alcun prezzo scaduto e gli itinerari con un prezzo scaduto diventeranno idonei per l' esecuzione di 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> forma un itinerario. |
<OtherFees> | Optional | float | Commissioni diverse dalla tariffa di base e dalle tasse che influenzano il prezzo finale di una camera. L'elemento <OtherFees> accetta un singolo attributo obbligatorio, currency , che definisce il codice valuta di tre lettere per le tariffe. Ad esempio: USD .
L'elemento |
<Occupancy> | Optional | integer | Specifica il numero massimo di persone consentite per questa tariffa.
Quando <Occupancy> viene visualizzato direttamente in <Result> ,
deve specificare 2 o un numero maggiore. <Occupancy> può
essere accompagnato da <OccupancyDetails> , che specifica
il tipo di ospiti (adulti o bambini). Se non vengono specificati tipi di ospiti, si presume che siano adulti. Consulta la sezione <OccupancyDetails> per la sintassi e la descrizione degli elementi secondari. Se l'elemento <Occupancy> non viene fornito, il numero di persone viene impostato per impostazione predefinita come 2 .
Nota: contatta il team di assistenza per attivare la funzionalità e inviare prezzi per un numero di persone diverso da due. |
<PackageID> | Optional | string | L'ID univoco del pacchetto per mapparlo ai dati predefiniti del pacchetto. Utilizzato anche per compilare la variabile pagina di destinazione PACKAGE-ID. Per maggiori 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>
elenco 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 Nota: entro |
<Refundable> | Optional | Object | Consente di indicare una tariffa come completamente rimborsabile o con cancellazione
senza costi. Se non viene specificato, non vengono visualizzate informazioni sul rimborso.
Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono le norme sui rimborsi a livello dell'elemento <Result> . Le norme sui rimborsi a livello di <Rates> sostituiscono
quelle a livello di <PackageData> . I prezzi rimborsabili possono anche essere evidenziati per gli utenti tramite opzioni alternative senza modificare direttamente lo schema dei messaggi di transazione. Scopri di più sulle
norme sulle tariffe rimborsabili.
L'esempio seguente mostra l'elemento <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:
Quando imposti gli attributi, tieni presente quanto segue:
|
<RoomBundle> | Optional | <RoomBundle> |
Un contenitore di informazioni sulle descrizioni fisiche a pagamento 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 il prezzo della camera base e per i diversi tipi di camere all'interno della stessa proprietà. Sebbene sia possibile definire le descrizioni dei pacchetti camera in linea, devi utilizzare un messaggio Transaction separato per definire queste informazioni. Google archivierà i metadati in modo che tu possa farvi riferimento, anziché ripeterli, in tutti gli aggiornamenti futuri dei prezzi. |
<RoomID> | Optional | string | L'ID univoco della camera da associare ai dati predefiniti della camera. Utilizzato anche per compilare la variabile pagina di destinazione PARTNER-ROOM-ID. Per maggiori informazioni, consulta la sezione Metadati dei pacchetti camera. |
<Tax> | Optional | float | Le tasse calcolate per il prezzo finale di una camera.
L'elemento <Tax> utilizza un singolo attributo obbligatorio,
currency , che definisce il codice valuta
di tre lettere per le tasse. Ad esempio: USD . L'elemento
<Tax> è obbligatorio se
<Baserate> è maggiore di zero. |
<Unavailable> | Optional | Object | Indica che l'itinerario non è disponibile per la prenotazione. Serve da
contenitore per motivi più dettagliati per cui l'itinerario non era disponibile. Sotto il tag <Unavailable> potrebbero essere nidificati uno
o più dei seguenti motivi di indisponibilità:
|
Esempi
Esempio di più proprietà
L'esempio seguente definisce un itinerario e i relativi prezzi per due proprietà:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>052213</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">299.98</Baserate>
<Tax currency="USD">26.42</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="otto"/>
<PointOfSale id="simon"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
In questo esempio non sono riportati i dettagli della camera, come una descrizione, un'immagine e una didascalia, il nome della camera e la sua capienza.
Puoi specificare queste informazioni una volta in un messaggio Transaction separato archiviato da Google. Potrai quindi farvi riferimento in tutti i successivi aggiornamenti di prezzo e inventario. Per maggiori informazioni, consulta la sezione Metadati dei pacchetti camera.
Esempio di tariffe multiple
L'esempio seguente definisce un singolo itinerario e una struttura con più tariffe per diversi numeri di persone. L'elemento <Rates>
può essere utilizzato per
fornire prezzi a più tariffe per una proprietà specifica. L'esempio seguente è
utile anche per le case vacanze:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-23T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2021-01-13</Checkin>
<Nights>9</Nights>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>2</Occupancy>
<Rates>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>1</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>3</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>4</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>5</Occupancy>
</Rate>
<Rate>
<Baserate currency="USD">3196.1</Baserate>
<Tax currency="USD">559.49</Tax>
<OtherFees currency="USD">543.34</OtherFees>
<Occupancy>6</Occupancy>
</Rate>
</Rates>
</Result>
</Transaction>
Esempio non disponibile
L'esempio seguente definisce un itinerario la cui disponibilità non è stata recuperata dai canali downstream, un secondo che è sia inferiore al soggiorno di notte minimo e già prenotato per le date specificate e un secondo la cui struttura è chiusa alla data di arrivo, ma che apre durante il soggiorno:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NotFetched/>
</Unavailable>
</Result>
<Result>
<Property>073313</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Unavailable>
<NoVacancy/>
<MinNightStay value=3/>
</Unavailable>
</Result>
<Result>
<Property>052213</Property>
<Checkin>2018-06-10</Checkin>
<Nights>10</Nights>
<Unavailable>
<PropertyClosed first_open="2018-06-15" first_closed="2018-06-10"/>
</Unavailable>
</Result>
</Transaction>
<Rates>
Un contenitore per uno o più blocchi <Rate>
. Ogni 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 nei 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 <Rate>
sostituiscono quelli relativi ai prezzi nell'elemento
principale <Result>
o <RoomBundle>
. Se non sono impostati in <Rate>
,
ereditano il valore dall'elemento principale. Solo
<AllowablePointsofSale> viene ereditato all'elemento <RoomBundle>
.
Sintassi
L'elemento <Rates>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> <Rates> <Rate rate_rule_id="rate_rule_id"> <Baserate currency="currency_code">price</Baserate> <Tax currency="currency_code">tax_amount</Tax> <OtherFees currency="currency_code">fee_amount</OtherFees> <ExpirationTime>expiration_time</ExpirationTime> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <AllowablePointsOfSale> <PointOfSale id="landing_page_identifier"/> </AllowablePointsOfSale> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> ... <Custom[1-5]>custom_value</Custom[1-5]> </Rate> ... </Rates> </Result> ... </Transaction>
Attributi
L'elemento <Rates>
ha i seguenti attributi:
Attributo | Campo obbligatorio? | Descrizione |
---|---|---|
rate_rule_id | Optional | Per le tariffe agevolate, questo ID associa una tariffa a una definizione nel file di definizione delle regole tariffarie. Il limite di caratteri per questo campo è 40. |
Elementi secondari
L'elemento <Rates>
ha i seguenti elementi secondari:
Elemento secondario | Campo 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: non è possibile definire l'elemento secondario |
<ChargeCurrency> | Optional | enum | Quando e dove l'utente paga 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 a una pagina di destinazione dati aggiuntivi associati a un hotel. Questo elemento utilizza la stessa sintassi di
<Custom[1‑5]> in <Result> . Esiste un limite di 200 caratteri per campo personalizzato. Per saperne di più, consulta la sezione sui
file delle pagine di destinazione.
Se gli elementi <Custom> vengono forniti nell'elemento
|
<ExpirationTime> | Optional | DateTime | La data e l'ora in cui la tariffa è considerata scaduta. Questo
elemento utilizza la stessa sintassi di
<ExpirationTime> in <Result> . |
<Occupancy> | Optional | integer | Specifica il numero massimo di persone consentite per questa tariffa. Se non specificato, si presume che sia uguale alla tariffa padre.
|
<OtherFees> | Required | float | Commissioni diverse dalla tariffa di base e dalle tasse che influenzano il prezzo finale di una camera. Questo elemento utilizza la stessa sintassi di
<OtherFees> in un elemento <Result> . |
<Refundable> | Optional | Object | Consente di indicare una tariffa come completamente rimborsabile o con cancellazione
senza costi. Se non viene specificato, non vengono visualizzate informazioni sul rimborso.
Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono le norme sui rimborsi a livello dell'elemento <Result> . Le norme sui rimborsi a livello di <Rates> sostituiscono
quelle a livello di <PackageData> . I prezzi rimborsabili possono anche essere evidenziati per gli utenti tramite opzioni alternative senza modificare direttamente lo schema dei messaggi di transazione. Scopri di più su queste opzioni
Norme sulle tariffe rimborsabili.
L'esempio seguente mostra l'elemento <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:
Quando imposti gli attributi, tieni presente quanto segue:
|
<Tax> | Required | float | Le tasse calcolate per il prezzo finale di una camera. Questo
elemento utilizza la stessa sintassi di <Tax> in
<Result> . |
Esempi
Tariffa di base e tariffa agevolata
L'esempio seguente mostra un messaggio Transaction che contiene una tariffa di base e una tariffa agevolata:
<?xml version="1.0" encoding="UTF-8" ?>
<Transaction timestamp="2023-05-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2023-04-10</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">200.00</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Rates>
<!-- The rate_rule_id is required when using conditional rates -->
<Rate rate_rule_id="mobile">
<!-- Override base rate and taxes for conditional rates -->
<Baserate currency="USD">180.00</Baserate>
<Tax currency="USD">18.00</Tax>
<!-- NOTE: OtherFees is inherited from the above setting -->
<Custom1>ratecode123</Custom1>
</Rate>
</Rates>
</Result>
</Transaction>
Più tariffe agevolate
L'esempio seguente definisce una tariffa di base e più tariffe agevolate
all'interno di un 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 pacchetto o itinerario. 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 sezione Utilizzare i pacchetti camera.
Sintassi
L'elemento <RoomBundle>
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <RoomBundle> <!-- Required unless specified inline under<RoomData>
--> <RoomID>room_ID</RoomID> <!-- Required<PackageData>
--> <PackageID>package_ID</PackageID> <!-- Required --> <Baserate currency="currency_code">price</Baserate> <!-- Required --> <Tax currency="currency_code">taxes</Tax> <!-- Required --> <OtherFees currency="currency_code">other_fees</OtherFees> <Refundable available="[false|true]" refundable_until_days="number_of_days" refundable_until_time="time"/> <!-- Required --> <ChargeCurrency>[deposit|hotel|installments|web]</ChargeCurrency> <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <!-- optional info about the types of guests, whether adults or children --></OccupancyDetails> <BreakfastIncluded>boolean_value</BreakfastIncluded> <InternetIncluded>boolean_value</InternetIncluded> <ParkingIncluded>boolean_value</ParkingIncluded> <RatePlanID>rate_plan_ID</RatePlanID> <Rates>...</Rates> <Custom1>custom_value_1</Custom1> <Custom2>custom_value_2</Custom2> <Custom3>custom_value_3</Custom3> <Custom4>custom_value_4</Custom4> <Custom5>custom_value_5</Custom5> </RoomBundle> ... </Result> </Transaction>
Attributi
L'elemento <RoomBundle>
non ha attributi.
Elementi secondari
L'elemento <RoomBundle>
ha i seguenti elementi secondari:
Elemento secondario | Campo 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:
|
<BreakfastIncluded> | Optional | boolean | Specifica se questo pacchetto camera include la colazione con la tariffa. |
<ChargeCurrency> | Optional | enum | Quando e dove l'utente paga per una prenotazione. Questo elemento utilizza la stessa
sintassi di <ChargeCurrency> in un elemento <Result> .
Il valore predefinito è |
<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> . Esiste un limite di 200 caratteri per campo personalizzato. Per saperne di più, consulta la sezione
File delle pagine di destinazione.
Se gli elementi <Custom> vengono forniti nell'elemento
|
<InternetIncluded> | Optional | boolean | Se un pacchetto camera include l'accesso a internet senza costi aggiuntivi, mentre gli altri pacchetti non includono questo servizio. Non impostare questo elemento per i pacchetti camera in un hotel che offre la connessione internet gratuita 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. |
<Occupancy> | Required | integer | Specifica il numero massimo di persone consentite 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 a
Quando definisci il numero di persone nell'URL pagina di destinazione, utilizza le
variabili Il valore di Note:
|
<OtherFees> | Required | float | Commissioni diverse dalla tariffa di base e dalle tasse che influenzano il prezzo finale di una camera. L'elemento <OtherFees> accetta 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 dei dati del pacchetto. Utilizza questo ID per associare i
dati del pacchetto camera a quelli inviati in <PackageData> . Per
maggiori informazioni, consulta la sezione
Metadati
dei pacchetti camera. Puoi utilizzare questo ID anche per fare riferimento a una definizione comune del pacchetto camera utilizzata in un singolo messaggio Transaction quando definisci i dati del pacchetto camera in linea. |
<ParkingIncluded> | Optional | boolean | Indica se un pacchetto camera include il parcheggio senza costi aggiuntivi, 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 |
<RatePlanID> | Optional | string | L'ID piano tariffario rappresenta l'identificatore univoco di una combinazione di camera e pacchetto. Ad esempio, se
il valore <RoomID> è 5 e il
valore <PackageID> è ABC, potresti utilizzare il valore
5-ABC per <RatePlanID> . Ti consigliamo vivamente di utilizzare
RatePlanID come variabile per creare l'URL della tua pagina di destinazione dinamica
(in precedenza point of sale).
Per saperne di più, consulta la pagina 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 completamente rimborsabile o con cancellazione
senza costi. Se non viene specificato, non vengono visualizzate informazioni sul rimborso.
Le norme sui rimborsi a livello dell'elemento <PackageData> sostituiscono le norme sui rimborsi a livello dell'elemento <Result> . Le norme sui rimborsi a livello di <Rates> sostituiscono
quelle a livello di <PackageData> . I prezzi rimborsabili possono anche essere evidenziati per gli utenti tramite opzioni alternative senza modificare direttamente lo schema dei messaggi di transazione. Scopri di più su queste opzioni
Norme sulle tariffe rimborsabili.
L'esempio seguente mostra l'elemento <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:
Quando imposti gli attributi, tieni presente quanto segue:
|
<RoomID> | Required | string | L'ID univoco per i dati della camera. Utilizza questo ID per associare
i dati del pacchetto camera a quelli che hai inviato in <RoomData> .
Per maggiori 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> utilizza un singolo attributo obbligatorio,
currency , che definisce il codice valuta
di tre lettere per le tasse. Ad esempio, utilizza USD per i dollari statunitensi. |
Esempi
Pacchetto per un solo ospite
L'esempio seguente definisce una risposta con un pacchetto con un numero di persone singolo.
Quando un utente seleziona 1
nel selettore del numero di persone, Google mostra il prezzo idoneo più basso a prescindere 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 un solo numero di persone non vengono sottoposti a query in tempo reale se per un itinerario vengono memorizzati nella cache prezzi per due o più persone.
Questo esempio fa riferimento ai metadati predefiniti di camere e pacchetti 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>
Due o più persone
L'esempio seguente definisce una risposta contenente due o più persone.
Questo esempio fa riferimento ai metadati predefiniti di camere e pacchetti 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>
Più pacchetti camera
L'esempio seguente imposta il numero di persone in più pacchetti camera per illustrare 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>
Più tariffe agevolate
L'esempio seguente definisce una tariffa di base e più tariffe agevolate
all'interno di 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>
<Occupancy>
in un messaggio di transazione specifica il numero massimo di ospiti
per una camera o un pacchetto. <OccupancyDetails>
può contenere informazioni aggiuntive,
come numero e tipo di ospiti (adulti o bambini).
Se <Occupancy>
e <OccupancyDetails>
vengono visualizzati all'interno dell'elemento <Rates>
di <Result>
o <RoomBundle>
, significa che la tariffa è vincolata dai
dettagli sul numero di persone.
Sintassi
Quando viene visualizzato, il carattere <OccupancyDetails>
è sempre preceduto da <Occupancy>
.
Nota la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?> <Transaction ... > <Result> ... <Occupancy>max_number_of_intended_occupants</Occupancy> <OccupancyDetails> <NumAdults>number_of_adults</NumAdults> <Children> <Child age=age_of_one_child_guest/> <Child age=age_of_one_child_guest/> </Children> </OccupancyDetails> </Result> </Transaction>
Elementi secondari
L'elemento <OccupancyDetails>
ha i seguenti elementi secondari:
Elemento secondario | Campo obbligatorio? | Tipo | Descrizione |
---|---|---|---|
<NumAdults> | Required | integer | Il numero di ospiti adulti. Minimo:1, max:20. |
<Children> | Optional | Object | Un contenitore per uno o più elementi <Child> . |
<Child age> | Optional | integer | L'età massima per questo account secondario, ad esempio <Child age="17"> . |
Esempi
I seguenti esempi mostrano come <OccupancyDetails>
potrebbe essere visualizzato all'interno di
<Results>
, <RoomBundle>
o nell'elemento secondario <Rates>
.
Risposta al risultato
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 i tipi di ospiti. Qui i dati di <OccupancyDetails>
, ovvero 2 adulti e
un bambino, vengono restituiti nel mese di <Result>
.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>060773</Property>
<RoomID>RoomType101</RoomID>
<PackageID>Package101</PackageID>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">278.33</Baserate>
<Tax currency="USD">25.12</Tax>
<OtherFees currency="USD">2.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="site1"/>
</AllowablePointsOfSale>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
</Result>
</Transaction>
Risposta alle tariffe
L'esempio seguente definisce un itinerario e i relativi prezzi per 1 adulto
e 1 bambino. In questo caso, i valori <OccupancyDetails>
vengono restituiti nell'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>
Pacchetto camera
L'esempio seguente definisce un numero di persone pari a 2 adulti e 1 bambino per
due notti, con una tariffa rimborsabile. Qui, i valori <OccupancyDetails>
compaiono all'interno di <RoomBundle>
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-23T16:20:00-04:00" id="42">
<Result>
<Property>6781291</Property>
<Checkin>2017-08-05</Checkin>
<Nights>2</Nights>
...
<RoomBundle>
<RoomID>10291</RoomID>
<RatePlanID>564739</RatePlanID>
<PackageID>564739</PackageID>
<Occupancy>3</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
</Children>
</OccupancyDetails>
<ChargeCurrency>web</ChargeCurrency>
<Refundable available="true" refundable_until_days="1" refundable_until_time="23:59:00" />
<Baserate currency="USD">185.34</Baserate>
<Tax currency="USD">37.06</Tax>
<OtherFees currency="USD">2.22</OtherFees>
</RoomBundle>
</Result>
</Transaction>
Più pacchetti camera
L'esempio seguente definisce più tariffe <RoomBundle>
limitate a un numero di persone pari a 2 adulti e 2 bambini. In questo caso, <OccupancyDetails>
compare nell'elemento <Rates>
di <RoomBundle>
.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<Result>
<Property>1234</Property>
<Checkin>2018-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<RoomBundle>
<RoomID>5</RoomID>
<PackageID>STD</PackageID>
<Baserate currency="USD">275.00</Baserate>
<Tax currency="USD">27.50</Tax>
<OtherFees currency="USD">0</OtherFees>
<InternetIncluded>1</InternetIncluded>
<ChargeCurrency>web</ChargeCurrency>
<Custom1>ratebasic</Custom1>
<Custom2>ratebasic</Custom2>
<Occupancy>4</Occupancy>
<OccupancyDetails>
<NumAdults>2</NumAdults>
<Children>
<Child age="17"/>
<Child age="17"/>
</Children>
</OccupancyDetails>
<Rates>
<Rate rate_rule_id="mobile">
<Baserate currency="USD">258.33</Baserate>
<Tax currency="USD">25.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<ChargeCurrency>hotel</ChargeCurrency>
<Custom1>ratecode321</Custom1>
</Rate>
<Rate rate_rule_id="us_or_gb">
<Baserate currency="USD">268.33</Baserate>
<Tax currency="USD">26.83</Tax>
<OtherFees currency="USD">1.00</OtherFees>
<Custom1>ratecode432</Custom1>
</Rate>
</Rates>
</RoomBundle>
</Result>
</Transaction>