Cette page fournit une référence pour les messages Transaction au format XML.
<Transaction>
L'élément racine d'un message Transaction est <Transaction>
. Il s'agit d'un conteneur d'informations descriptives sur les chambres et les séjours organisés, ainsi que sur les prix et la disponibilité des chambres et des séjours organisés.
L'élément <Transaction>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Les messages qui utilisent <Transaction>
comme élément racine doivent comporter au moins un élément enfant. Les messages Transaction peuvent comporter un nombre illimité d'éléments enfants, mais la taille totale des messages ne doit pas dépasser 100 Mo.
Syntaxe
L'élément <Transaction>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <Transaction>
comporte les attributs suivants :
Attribute | Requis ? | Type | Description |
---|---|---|---|
id | Required | chaîne | Identifiant unique de chaque message Transaction. |
partner | Optional | string | Compte du partenaire auquel le message Transaction est destiné. Vous devez généralement l'utiliser si votre backend fournit des flux de prix pour plusieurs comptes partenaires. Cette valeur de chaîne correspond à la valeur "Partner key" (Clé partenaire) indiquée sur la page Paramètres du compte dans Hotel Center. |
timestamp | Required | DateTime | Moment où le message Transaction a été envoyé. Tous les messages envoyés dont le code temporel date de moins de 24 heures seront traités. Les autres seront supprimés. Les messages sont traités dans l'ordre de |
Éléments enfants
L'élément <Transaction>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<PropertyDataSet> | Optional* | <PropertyDataSet> |
Décrit une chambre et des offres de chambres spécifiques. Vous utilisez généralement cet élément dans un message Transaction distinct pour définir des valeurs communes pour les offres de chambres et réduire la taille de vos messages Transaction. |
<Result> | Optional* | <Result> |
Données tarifaires pour l'itinéraire d'une chambre ou un élément |
* Vous devez renseigner au moins l'un des champs <PropertyDataSet> ou <Result> . |
Exemples
Données de la chambre
L'exemple suivant définit les données d'une chambre dans un message 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>
Données de tarification
L'exemple suivant définit les données tarifaires dans un message 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>
Tarifs par nuit
L'exemple suivant définit les données tarifaires pour une à sept nuits à partir du 7 juin 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>
Tarifs de base et sous conditions
L'exemple suivant présente un message Transaction contenant un tarif de base et un tarif sous conditions:
<?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>
Supprimer l'inventaire
L'exemple suivant permet de supprimer plusieurs inventaires (séjours d'une nuit à différentes dates) pour un hôtel de l'inventaire:
<?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>
Conteneur pour les informations sur les chambres et les formules (ou offre de chambres) dans un message <Transaction>
. Les valeurs définies au niveau d'un hôtel remplacent celles définies au niveau du partenaire.
Google stocke ces informations de sorte que vous n'ayez pas à les définir chaque fois que vous envoyez des mises à jour de prix.
L'élément <PropertyDataSet>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Pour en savoir plus, consultez Métadonnées des offres de chambres.
Syntaxe
L'élément <PropertyDataSet>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <PropertyDataSet>
ne comporte aucun attribut.
Éléments enfants
L'élément <PropertyDataSet>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<PackageData> | Optional* | <PackageData> |
Décrit une offre de chambres. Ces données sont associées au partenaire et à l'hôtel, mais pas au séjour. Cet élément est semblable à <RoomData> , mais il décrit des services et des conditions qui ne font pas partie de la description de la chambre physique.
Vous devez faire référence à l'ID du package dans vos mises à jour de prix. Pour en savoir plus, consultez Métadonnées des offres de chambres. |
<Property> | Required | string | Identifiant de l'hôtel auquel les données associées s'appliquent. La valeur de cet élément doit être une chaîne correspondant à la fiche <id> de votre flux Hotel List Feed.
|
<RoomData> | Optional* | <RoomData> |
Décrit une chambre. Ces données sont associées au partenaire et à l'hôtel, mais pas au séjour.
Vous devez faire référence à l'identifiant de la chambre dans vos mises à jour de prix. |
* Vous devez renseigner au moins l'un des champs <PackageData> ou <RoomData> . |
Exemples
Données sur les chambres et les formules
L'exemple suivant montre à la fois les données de chambres et de séjours organisés dans un élément <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>
Lorsque vous envoyez les prix et les disponibilités de cette chambre et de cette offre de chambres, vous devez faire référence à l'identifiant de la chambre et de la formule dans vos messages de tarification. Vous réduisez ainsi considérablement la taille de vos messages et le nombre d'erreurs que vous pouvez rencontrer en raison de données en double. Pour en savoir plus, consultez Métadonnées des offres de chambres.
<RoomData>
Définit des métadonnées sur les chambres indépendamment de l'itinéraire et, par extension, sur les offres de chambres (étant donné que les offres de chambres sont des chambres avec des équipements supplémentaires). Utilisez <RoomData>
pour limiter la répétition des données descriptives dans votre flux des prix.
L'élément <RoomData>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Les éléments <RoomData>
contiennent des informations associées à un partenaire et à un hôtel, mais pas à un séjour. L'objectif est de collecter des données non relatives à l'itinéraire.
L'élément <RoomData>
est semblable à <PackageData>
, mais il décrit la chambre plutôt que les services et les conditions d'un séjour organisé. Vous utilisez conjointement les champs <RoomData>
et <PackageData>
pour fournir des informations sur les offres de chambres. Pour les chambres individuelles qui ne font pas partie d'un séjour organisé, utilisez simplement <RoomData>
.
Vous pouvez définir les éléments <RoomData>
et <PackageData>
pour la même chambre ou offre de chambres. Lorsque Google affiche cette chambre ou ce séjour organisé dans les résultats de recherche, les deux descriptions sont indiquées, séparées par un trait d'union.
Pour en savoir plus, consultez Métadonnées des offres de chambres.
Syntaxe
L'élément <RoomData>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <RoomData>
ne comporte aucun attribut.
Éléments enfants
L'élément <RoomData>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<Capacity> | Optional | integer | Nombre maximal de personnes que la chambre peut matériellement accueillir. Pour une salle, la capacité est supérieure ou égale au nombre de personnes.
Si cette valeur est spécifiée, elle doit être supérieure ou égale à la valeur de l'élément La valeur de |
<Description> | Optional | Object | Description détaillée de la chambre. Cet élément doit contenir des informations qui ne sont pas décrites par d'autres éléments ni par l'élément <Name> . La description de la chambre ne doit pas être qu'en majuscules.
L'élément
Utilisez un élément L'exemple suivant présente les versions en français et en anglais de la description de la chambre: <Description> <Text text="Two queen-sized beds" language="en"/> <Text text="Deux lits de la reine" language="fr"/> </Description> |
<Name> | Required | string | Nom de la catégorie de la chambre. Cette valeur doit correspondre à ce qui apparaît sur la page de destination de l'hôtel (anciennement "point de vente"). Ne définissez pas la valeur de cet élément tout en majuscules.
Cet élément dispose d'un seul élément enfant,
Utilisez un élément L'exemple suivant présente les versions française et anglaise du nom de la chambre: <Name> <Text text="Standard Double Room" language="en"/> <Text text="Le chambre double" language="fr"/> </Name> |
<Occupancy> | Optional | integer | Nombre maximal de personnes pour lequel la chambre est destinée.
Par exemple, une grande suite peut accueillir physiquement 6 personnes (capacité = 6), mais n'est prévue que pour 4 personnes.
Cette valeur doit être inférieure ou égale à l'élément La valeur de
|
<OccupancySettings> | Optional | Object | Paramètres pouvant limiter ou modifier le nombre de personnes dans une salle.
L'élément
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> Il n'est pas nécessaire d'inclure tous les éléments enfants. |
<PhotoURL> | Optional | Object | URL et légende facultative de la photo de la chambre ou de l'offre de chambres donnée. Vous pouvez spécifier plusieurs éléments <PhotoURL> pour une chambre ou une offre de chambres. L'URL de chaque photo doit figurer dans son propre <PhotoURL> .
Cet élément comporte les éléments enfants suivants:
Exemple : <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> |
Contient des informations sur les caractéristiques de la chambre. |
<RoomID> | Required | string | Identifiant unique de la chambre. Utilisez cet identifiant pour faire correspondre les données de la chambre aux blocs <Result> dans vos mises à jour des prix. Pour en savoir plus, consultez Métadonnées des offres de chambres. (Vous pouvez également utiliser cet identifiant pour faire référence à une définition de chambre commune dans un message Transaction lorsque vous définissez les données de la chambre de façon intégrée.) |
Exemples
Données de la chambre
L'exemple suivant définit les données d'une chambre:
<?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>
Métadonnées des chambres et des formules
L'exemple suivant définit les métadonnées de chambres et de formules:
<?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>
Plusieurs offres de chambres
L'exemple suivant définit les métadonnées de chambres et de formules pour plusieurs offres de chambres:
<?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>
Définit les caractéristiques détectées dans la salle.
L'élément <RoomFeatures>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<RoomFeatures>
Syntaxe
L'élément <RoomFeatures>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <RoomFeatures>
ne comporte aucun attribut.
Éléments enfants
L'élément <RoomFeatures>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<JapaneseHotelRoomStyle> | Optional | enum | Indique le style d'une chambre d'hôtel japonaise. Les valeurs possibles sont les suivantes :
|
<Beds> | Optional | Object | Contient autant de <Bed> que la salle. Notez que les futons japonais ne sont pas comptés ici.
Chaque
<Bed> comporte les éléments enfants suivants :
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
<Suite> | Optional | empty | Fournissez cet élément lorsque cette chambre est une suite. |
<Capsule> | Optional | empty | Fournissez cet élément lorsque cette pièce est une pièce capsule. |
<Roomsharing> | Optional | enum | Indique si la chambre est partagée avec d'autres occupants, tels que des propriétaires ou d'autres invités. Les valeurs valides sont shared et private . |
<Outdoor> | Optional | empty | Fournissez cet élément si cette chambre est un hébergement extérieur sans murs fixes, plomberie ni climatisation. Par exemple, les chambres d'hôtel ne sont pas des hébergements en plein air, tandis que les campings où les clients séjournent dans des tentes et des emplacements pour camping-cars où les clients apportent leur propre camping-car sont des hébergements en plein air. |
<MobilityAccessible> | Optional | empty | Fournissez cet élément lorsque cette chambre est accessible aux personnes à mobilité réduite. |
<Smoking> | Optional | enum | Indique s'il s'agit d'une pièce non-fumeurs ou d'un fumoir. Les valeurs valides sont non_smoking et smoking . |
<BathAndToilet> | Optional | Object | Contient des informations sur une baignoire et des toilettes dans la chambre.
L'attribut est:
L'élément comporte également les éléments enfants suivants:
Exemple : <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
<OpenAirBath> | Optional | empty | Fournissez cet élément si la chambre dispose d'une baignoire privée en plein air. |
<AirConditioning> | Optional | empty | Indiquez cet élément lorsque cette chambre est climatisée. |
<Balcony> | Optional | empty | Fournissez cet élément si la chambre dispose d'un balcon ou d'une véranda. |
<Views> | Optional | Object | Les options suivantes sont acceptées:
|
Exemples
JapaneseHotelRoomStyle
n'a pas de valeur par défaut. L'omission d'une valeur n'entraîne pas d'erreur XML, mais votre fiche n'apparaît pas dans les résultats de recherche lorsque l'utilisateur effectue un filtrage par style de chambre ou par lit.
Deux lits simples
L'exemple suivant montre comment utiliser <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>
Deux lits doubles
Voici un exemple de chambre japonaise de style western
avec deux lits double
.
<?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>
Style japonais sans lit
Voici un exemple de chambre de style japonais sans lit. Les informations sur la chambre ne sont pas requises pour la chambre de style 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 japonais avec lit
Voici un exemple de chambre de style japanese_western
avec un lit de taille 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>
Si le partenaire ne dispose pas des informations sur le nombre de lits dans japanese_western
chambres, suivez l'exemple suivant:
<?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>
Définit les métadonnées des offres de chambres d'un établissement indépendamment du séjour. Cet élément contient des informations associées à un partenaire et à un hôtel, mais pas à un séjour. L'objectif est de définir une seule fois toutes les données non associées à un séjour et de les référencer à partir des données de séjour.
L'élément <PackageData>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
L'élément <PackageData>
est semblable à <RoomData>
, mais il décrit des caractéristiques et des conditions tarifaires qui ne font pas partie de la description de la chambre physique. Vous utilisez conjointement les champs <RoomData>
et <PackageData>
pour fournir des informations sur les offres de chambres et les caractéristiques tarifaires. Pour les chambres individuelles qui ne font pas partie d'un séjour organisé, utilisez simplement <RoomData>
.
Vous pouvez définir à la fois les éléments <RoomData>
et <PackageData>
pour la même chambre ou offre de chambres. Lorsque Google affiche cette chambre ou ce séjour organisé dans les résultats de recherche, les deux descriptions sont indiquées, séparées par un trait d'union.
Si vous mettez à jour un seul élément <PackageData>
pour un établissement, vous devez mettre à jour tous les éléments <PackageData>
et <RoomData>
de l'établissement.
Chaque <PropertyDataSet>
englobe toutes les données de l'établissement et écrase toutes les données existantes.
Pour en savoir plus, consultez Métadonnées des offres de chambres.
Syntaxe
L'élément <PackageData>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <PackageData>
ne comporte aucun attribut.
Éléments enfants
L'élément <PackageData>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<BreakfastIncluded> | Optional | boolean | Indique si cette formule inclut le petit-déjeuner dans le tarif.
Les valeurs valides sont 0 (ou false ) et 1 (ou true ).
Il est préférable d'utiliser |
<ChargeCurrency> | Optional | enum | Le moment et le lieu où l'utilisateur paie sa réservation. Cet élément utilise la même syntaxe que <ChargeCurrency> dans un <Result> .
La valeur par défaut est |
<CheckinTime> | Optional | Time | Heure d'arrivée la plus proche possible. L'heure doit être inférieure à 24h selon l'heure locale de l'hôtel. |
<CheckoutTime> | Optional | Time | Heure de départ la plus proche possible dans l'heure locale de l'hôtel. |
<Description> | Optional | Object | Description détaillée du package. Cet élément doit contenir des informations qui ne sont pas décrites par d'autres éléments ni par l'élément <Name> . La description de la chambre ne doit pas être qu'en majuscules.
L'élément <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 | Si un forfait comprend un accès à Internet sans frais, alors que d'autres ne l'incluent pas, N'utilisez pas cet élément pour les offres de chambres d'un hôtel proposant un accès Internet sans frais à toutes les chambres. Cet élément ne s'applique pas à l'accès à Internet filaire ou sans fil non disponible dans les chambres. Les valeurs valides sont 0 (ou false ) et 1 (ou true ).
|
<Meals> | Optional | Object | Contient des informations sur les repas contenus dans ce colis.
L'élément
Les attributs facultatifs ne sont utilisés que lorsque Pour que les filtres de repas ( |
<Name> | Required | string | Nom du package. Cette valeur doit correspondre à celle affichée sur la page de destination de l'hôtel. Ne définissez pas la valeur de cet élément tout en majuscules.
Cet élément dispose d'un seul élément enfant, <Name> <Text text="Bed and Breakfast" language="en"/> <Text text="Lit et petit déjeuné" language="fr"/> </Name> |
<Occupancy> | Optional | integer | Nombre maximal de personnes pour lequel l'offre de chambres est destinée.
Par exemple, une grande suite peut physiquement accueillir six personnes, mais n'être prévue que pour quatre personnes.
Cette valeur doit être inférieure ou égale à l'élément La valeur de Si vous spécifiez cet élément à la fois dans Remarque : <Occupancy> peut être accompagné de <OccupancyDetails> ,qui spécifie le type de personnes (adultes ou enfants). Consultez <OccupancyDetails> pour connaître la syntaxe et la description des éléments enfants.
|
<PackageID> | Required | string | Identifiant unique du package. Utilisez cet identifiant pour faire correspondre les données de l'offre de chambres aux blocs (Vous pouvez également utiliser cet identifiant pour faire référence à une définition d'offre de chambres commune utilisée dans un message Transaction lorsque vous définissez les données de l'offre de manière intégrée.) |
<ParkingIncluded> | Optional | boolean | Indique si une offre de chambres inclut un parking sans frais, si le stationnement est normalement payant dans cet hôtel. Ne spécifiez aucune valeur pour cet élément si l'hôtel propose un parking gratuit.
Les valeurs valides sont |
<PhotoURL> | Optional | Object | (Identique à <PhotoURL> dans <RoomData> , mais pour le séjour organisé (par exemple, les photos des repas).)
|
<Refundable> | Optional | Object | Permet d'indiquer qu'un tarif est entièrement remboursable ou de proposer une annulation sans frais. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche.
Les conditions de remboursement définies au niveau <PackageData> remplacent celles du niveau <Result> . Les conditions de remboursement définies au niveau <Rates> remplacent celles du niveau <PackageData> . Les utilisateurs peuvent également présenter les tarifs remboursables aux utilisateurs à l'aide d'autres options sans modifier directement le schéma de votre message de transaction. Pour en savoir plus sur ces options, consultez les Règles relatives aux tarifs remboursables.
L'exemple suivant montre l'élément <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Remarque:Nous vous recommandons de définir tous les attributs. Un message d'avertissement concernant l'état du flux est généré lorsqu'un ou plusieurs attributs ne sont pas définis. Si vous ne définissez aucun attribut, le tarif ne s'affiche pas comme remboursable. Les attributs sont les suivants :
Lorsque vous définissez les attributs, tenez compte des points suivants:
|
<MembershipBenefits |
Optional | boolean | Le tarif inclut les avantages du niveau Élite pendant la durée du séjour. Inclut les paramètres suivants :
|
<CarRentalIncluded> | Optional | boolean | Le tarif comprend la location de voitures sans frais pendant la durée du séjour. |
<MilesIncluded>> | Optional | boolean | Le tarif comprend les miles du programme de fidélité. Les paramètres sont les suivants :
|
<OnPropertyCredit> | Optional | boolean | Le tarif comprend un crédit valable dans l'établissement (aliments et/ou boissons non alcoolisées, complexe hôtelier, spa, etc.). Paramètre :
|
<AirportTransportationIncluded> | Optional | Object | Le tarif comprend le transport sans frais depuis/vers un aéroport voisin. L'attribut facultatif direction spécifie le sens du transport. Les valeurs valides incluent les suivantes :
from : le transport est assuré de l'aéroport à l'établissement. Il s'agit de la valeur par défaut si aucune direction n'est spécifiée.
to : une navette est assurée pour l'aéroport depuis l'établissement.
round_trip : le transport est assuré à la fois depuis et vers l'aéroport.
|
Exemples
Offre pour une seule chambre
L'exemple suivant définit une seule offre de chambres pour deux personnes (un adulte et un enfant) et inclut le petit-déjeuner:
<?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>
Métadonnées des chambres et des formules
L'exemple suivant définit les métadonnées de chambres et de formules:
<?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>
Plusieurs offres de chambres
L'exemple suivant définit les métadonnées de chambres et de formules pour plusieurs offres de chambres:
<?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>
Offre de chambres avec tarifs
L'exemple suivant définit les métadonnées d'une chambre et d'un séjour organisé pour une offre de chambres avec caractéristiques tarifaires:
<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>
Repas et photos
L'exemple suivant définit les métadonnées des chambres et des formules pour les repas, les photos, ainsi que les heures d'arrivée et de départ:
<?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>
Petit-déjeuner
<?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>
Conteneur pour les mises à jour des prix et des disponibilités dans un message <Transaction>
.
L'élément <Result>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Utilisez <Result>
pour définir ou mettre à jour les prix de vos chambres, et indiquer l'inventaire disponible. Les éléments définis dans cet élément font généralement référence à des métadonnées d'une chambre ou d'un forfait (telles qu'une description ou un ensemble d'équipements) définies dans <PackageData>
et <RoomData>
, indépendamment de l'itinéraire.
En général, vous envoyez très fréquemment des messages Transaction contenant des mises à jour de prix. La fréquence et la fréquence exacte de cette opération dépendent du mode d'envoi.
Vous pouvez utiliser <Result>
dans un message Transaction pour supprimer des séjours, comme décrit dans la section Supprimer des éléments de l'inventaire.
Si vous souhaitez en savoir plus sur l'utilisation des messages Transaction pour mettre à jour les prix et la disponibilité, consultez la page Ajouter et mettre à jour un inventaire.
Un message Transaction peut inclure un nombre illimité d'éléments <Result>
, mais sa taille ne doit pas dépasser 100 Mo.
Syntaxe
L'élément <Result>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <Result>
comporte les attributs suivants :
Attribute | Requis ? | Type | Description |
---|---|---|---|
mergeable | Optional | boolean | Par défaut, les nouveaux prix d'une paire hôtel/séjour spécifique remplacent les prix précédents (qui n'ont pas expiré) présents dans le cache de Google. Cet attribut vous permet de stocker des prix supplémentaires dans le cache de Google sans supprimer les informations tarifaires précédentes. Pour les réponses aux requêtes de prix en temps réel avec contexte, cet attribut sera toujours défini sur true (quelle que soit la réponse de votre message de transaction). |
Éléments enfants
L'élément <Result>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | Une ou plusieurs pages de destination éligibles pour l'hôtel. Une page de destination est un site Web qui peut gérer le processus de réservation pour l'utilisateur final. Pour inclure explicitement certaines pages de destination (et en exclure d'autres), ajoutez un ou plusieurs éléments <AllowablePointsOfSale> correspondant à l'attribut id de l'élément <PointOfSale> dans le fichier de pages de destination.
Si vous n'incluez pas cet élément, toutes les pages de destination définies dans le fichier des pages de destination sont considérées comme éligibles pour être utilisées pour la réservation de la chambre. Pour en savoir plus, consultez Syntaxe du fichier des pages de destination. |
<Baserate> | Optional | float | Prix de la chambre pour le séjour. La valeur de cet élément doit correspondre à ce qui suit:
Lorsque la chambre n'est pas disponible pour le séjour, Pour supprimer une offre de chambres, suivez les instructions de la section Supprimer une offre de chambres. L'élément <Baserate currency="USD">1200.40</Baserate> L'élément
|
<ChargeCurrency> | Optional | enum | Le moment et le lieu où l'utilisateur paie sa réservation. Dans un message Transaction, cet élément peut être utilisé dans l'élément <Result> pour le prix de l'hôtel ou dans le bloc <PackageData> pour une offre de chambres.
Les valeurs possibles sont les suivantes :
La valeur par défaut est |
<Checkin> | Required | Date | Date d'arrivée pour un séjour au format Date. La combinaison des éléments <Nights> et <Checkin> constitue un séjour. |
<Custom[1‑5]> | Optional | string | Définit un champ personnalisé que vous pouvez utiliser pour transmettre des données supplémentaires associées à un hôtel. Vous pouvez transmettre jusqu'à cinq valeurs personnalisées à l'aide des noms d'éléments suivants :
Les éléments Les éléments <Custom> fournis dans l'élément |
<ExpirationTime> | Optional | DateTime | Date et heure auxquelles le prix est considéré comme ayant expiré (au moins trois heures).
Nous vous recommandons de ne pas fournir d'horodatage d'expiration s'il n'est pas essentiel à votre structure tarifaire. Google ne diffuse pas de prix arrivés à expiration, et tout séjour dont le prix a expiré peut faire l'objet d' requêtes de prix en temps réel. |
<Nights> | Required | integer | Nombre de nuits pour un séjour. La valeur de l'élément <Nights> doit être un entier positif.
La combinaison de <Nights> et <Checkin> constitue un séjour. |
<OtherFees> | Optional | float | Frais, autres que le tarif de base et les taxes, qui ont une incidence sur le prix final d'une chambre. L'élément <OtherFees> comporte un seul attribut obligatoire, currency , qui définit le code de devise à trois lettres pour les frais. Exemple :USD
L'élément |
<Occupancy> | Optional | integer | Spécifie le nombre maximal de personnes autorisé pour ce tarif.
Lorsque <Occupancy> apparaît directement sous <Result> , il doit spécifier 2 ou plus. <Occupancy> peut être accompagné de <OccupancyDetails> , qui spécifie le type de personnes (adultes ou enfants). Si les types d'invités ne sont pas spécifiés, ils sont considérés comme des adultes. Consultez <OccupancyDetails> pour connaître la syntaxe et la description des éléments enfants. Si l'élément <Occupancy> n'est pas fourni, le nombre de personnes est défini par défaut sur 2 .
Remarque: Contactez votre équipe d'assistance pour activer la fonctionnalité permettant d'envoyer des prix pour un nombre de personnes autre que "2". |
<PackageID> | Optional | string | Identifiant unique du séjour organisé à associer à des données prédéfinies de séjours organisés. Sert également à renseigner la variable de page de destination PACKAGE-ID. Pour en savoir plus, consultez Métadonnées des offres de chambres. |
<Property> | Required | string | Identifiant d'un hôtel affecté par les données associées (prix, séjour, offre de chambres ou métadonnées). La valeur de cet élément doit être une chaîne. La valeur de cet élément doit correspondre à la fiche <id> que vous avez définie dans votre flux Hotel List Feed.
|
<Rates> | Optional | <Rates> |
Conteneur pour un ou plusieurs blocs <Rate> . Chaque élément <Rate> dans <Rates> définit un prix différent pour la combinaison chambre/séjour.
Utilisez l'élément Remarque: Dans |
<Refundable> | Optional | Object | Permet d'indiquer qu'un tarif est entièrement remboursable ou de proposer une annulation sans frais. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche.
Les conditions de remboursement définies au niveau <PackageData> remplacent celles du niveau <Result> . Les conditions de remboursement définies au niveau <Rates> remplacent celles du niveau <PackageData> . Les utilisateurs peuvent également présenter les tarifs remboursables aux utilisateurs à l'aide d'autres options sans modifier directement le schéma de votre message de transaction. En savoir plus sur les Règles relatives aux tarifs remboursables
L'exemple suivant montre l'élément <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Remarque:Nous vous recommandons de définir tous les attributs. Un message d'avertissement concernant l'état du flux est généré lorsqu'un ou plusieurs attributs ne sont pas définis. Si vous ne définissez aucun attribut, le tarif ne s'affiche pas comme remboursable. Les attributs sont les suivants :
Lorsque vous définissez les attributs, tenez compte des points suivants:
|
<RoomBundle> | Optional | <RoomBundle> |
Conteneur pour les informations sur les modalités tarifaires d'une chambre, les formules de services et certaines conditions d'achat pour l'hôtel et le séjour donnés.
En général, utilisez cet élément pour définir le prix de la chambre de base et les différents types de chambres dans le même établissement. Bien qu'il soit possible de définir des descriptions d'offres de chambres de façon intégrée, vous devez utiliser un message Transaction distinct pour le faire. Google stockera les métadonnées afin que vous puissiez y faire référence au lieu de les répéter dans toutes les futures mises à jour de prix. |
<RoomID> | Optional | string | Identifiant unique de la chambre, à associer aux données prédéfinies de la chambre. Sert également à renseigner la variable de page de destination PARTNER-ROOM-ID. Pour en savoir plus, consultez Métadonnées des offres de chambres. |
<Tax> | Optional | float | Taxes calculées pour le prix final d'une chambre.
L'élément <Tax> comporte un seul attribut obligatoire, currency , qui définit le code de devise à trois lettres pour les taxes. Exemple :USD L'élément <Tax> est obligatoire si la valeur de <Baserate> est supérieure à zéro. |
<Unavailable> | Optional | Object | Indique que l'itinéraire ne peut pas être réservé. Sert de conteneur pour des raisons plus détaillées expliquant pourquoi le séjour n'était pas disponible. Un ou plusieurs des motifs d'indisponibilité suivants peuvent être imbriqués sous la balise <Unavailable> :
|
Exemples
Exemple pour plusieurs établissements
L'exemple suivant définit un séjour et ses tarifs pour deux établissements:
<?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>
Cet exemple ne montre pas les détails de la chambre, tels que sa description, sa photo et sa légende, son nom et sa capacité d'accueil.
Vous pouvez définir ces informations une seule fois dans un message Transaction distinct qui sera stocké par Google. Vous pourrez ensuite y faire référence dans toutes les mises à jour ultérieures de prix et d'inventaire. Pour en savoir plus, consultez Métadonnées des offres de chambres.
Exemple de tarifs multiples
L'exemple suivant définit un seul séjour et un seul établissement avec plusieurs tarifs en fonction du nombre de personnes. L'élément <Rates>
permet de fournir des tarifs à plusieurs tarifs pour un établissement spécifique. L'exemple suivant est également utile pour les locations de vacances (LV) :
<?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>
Exemple non disponible
L'exemple suivant définit un séjour dont la disponibilité n'a pas pu être récupérée sur les canaux en aval, un second qui est à la fois inférieur au minimum de nuit et déjà réservé aux dates spécifiées, et un troisième dont l'établissement est fermé à la date d'arrivée, mais qui est ouvert pendant le séjour:
<?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>
Conteneur pour un ou plusieurs blocs <Rate>
. Chaque élément <Rate>
dans <Rates>
définit un prix différent pour la combinaison de chambre ou de séjour.
N'utilisez l'élément <Rates>
que s'il existe plusieurs tarifs pour la même combinaison de chambre ou de séjour. Par exemple, vous définissez plusieurs tarifs pour des tarifs sous conditions, des tarifs préférentiels ou des tarifs sous conditions dans les offres de chambres.
L'élément <Rates>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
(Can also contain<Rates>
) + ...
Les valeurs définies dans un élément <Rate>
remplacent les valeurs liées à la tarification dans l'élément parent <Result>
ou <RoomBundle>
. Si elles ne sont pas définies dans <Rate>
, elles héritent de la valeur de l'élément parent. Seul l'élément <AllowablePointsofSale> est hérité de l'élément <RoomBundle>
.
Syntaxe
L'élément <Rates>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <Rates>
comporte les attributs suivants :
Attribute | nécessaire | Description |
---|---|---|
rate_rule_id | Optional | Pour les tarifs sous conditions, cet identifiant fait correspondre un tarif à une définition dans votre fichier de définition des règles d'offres. Le nombre maximal de caractères pour ce champ est de 40. |
Éléments enfants
L'élément <Rates>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<AllowablePointsOfSale> | Optional | Object | Une ou plusieurs pages de destination éligibles pour l'hôtel. Cet élément utilise la même syntaxe que <AllowablePointsOfSale> dans <Result> . |
<Baserate> | Required | float | Prix de la chambre pour le séjour. Cet élément utilise la même syntaxe que <Baserate> dans <Result> .
Remarque:L'élément enfant |
<ChargeCurrency> | Optional | enum | Le moment et le lieu où l'utilisateur paie sa réservation. Cet élément utilise la même syntaxe que <ChargeCurrency> dans un élément <Result> . |
<Custom[1‑5]> | Optional | string | Champs personnalisés que vous pouvez utiliser pour transmettre des données supplémentaires associées à un hôtel vers une page de destination. Cet élément utilise la même syntaxe que <Custom[1‑5]> dans un élément <Result> . Chaque champ personnalisé est limité à 200 caractères. Pour en savoir plus, consultez les
fichiers de pages de destination.
Si des éléments <Custom> sont fournis dans l'élément |
<ExpirationTime> | Optional | DateTime | Date et heure auxquelles le tarif est considéré comme expiré. Cet élément utilise la même syntaxe qu'un <ExpirationTime> dans un <Result> . |
<Occupancy> | Optional | integer | Spécifie le nombre maximal de personnes autorisé pour ce tarif. S'il n'est pas spécifié, il est considéré comme identique au tarif parent.
|
<OtherFees> | Required | float | Frais, autres que le tarif de base et les taxes, qui ont une incidence sur le prix final d'une chambre. Cet élément utilise la même syntaxe que <OtherFees> dans un élément <Result> . |
<Refundable> | Optional | Object | Permet d'indiquer qu'un tarif est entièrement remboursable ou de proposer une annulation sans frais. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche.
Les conditions de remboursement définies au niveau <PackageData> remplacent celles définies au niveau <Result> . Les conditions de remboursement définies au niveau <Rates> remplacent celles du niveau <PackageData> . Les utilisateurs peuvent également présenter les tarifs remboursables aux utilisateurs à l'aide d'autres options sans modifier directement le schéma de votre message de transaction. Pour en savoir plus sur ces options, consultez les Règles relatives aux tarifs remboursables.
L'exemple suivant montre l'élément <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Remarque:Nous vous recommandons de définir tous les attributs. Un message d'avertissement concernant l'état du flux est généré lorsqu'un ou plusieurs attributs ne sont pas définis. Si vous ne définissez aucun attribut, le tarif ne s'affiche pas comme remboursable. Les attributs sont les suivants :
Lorsque vous définissez les attributs, tenez compte des points suivants:
|
<Tax> | Required | float | Taxes calculées pour le prix final d'une chambre. Cet élément utilise la même syntaxe que <Tax> dans un élément <Result> . |
Exemples
Tarif de base et tarif sous conditions
L'exemple suivant présente un message Transaction contenant un tarif de base et un tarif sous conditions:
<?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>
Plusieurs tarifs sous conditions
L'exemple suivant définit un tarif de base et plusieurs tarifs sous conditions dans un élément <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>
Définit les prix et la disponibilité des offres de chambres en tant qu'enfant de <Result>
dans un message <Transaction>
. Définissez un élément distinct pour chaque combinaison de formules ou de séjours. Pour définir la formule et les conditions des offres de chambres, utilisez <RoomData>
.
L'élément <RoomBundle>
apparaît à l'emplacement suivant dans la hiérarchie XML des messages de transaction:
+<Transaction>
+<PropertyDataSet>
// Room and package metadata + <Property> +<RoomData>
+<PackageData>
+<Result>
// Pricing and availability +<Rates>
+<RoomBundle>
+ ...
Pour en savoir plus, consultez Utiliser des offres de chambres.
Syntaxe
L'élément <RoomBundle>
utilise la syntaxe suivante :
<?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>
Attributs
L'élément <RoomBundle>
ne comporte aucun attribut.
Éléments enfants
L'élément <RoomBundle>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<Baserate> | Required | float | Définit le prix de l'offre de chambres pour le séjour. Cet élément utilise la même syntaxe que <Baserate> dans <Result> , à l'exception de la syntaxe suivante :
|
<BreakfastIncluded> | Optional | boolean | Indique si cette offre de chambres inclut le petit-déjeuner dans le tarif. |
<ChargeCurrency> | Optional | enum | Le moment et le lieu où l'utilisateur paie sa réservation. Cet élément utilise la même syntaxe que <ChargeCurrency> dans un <Result> .
La valeur par défaut est |
<Custom[1‑5]> | Optional | string | Champs personnalisés permettant de transmettre des données supplémentaires aux pages de destination de l'offre de chambres. Ces éléments utilisent la même syntaxe que <Custom[1-5]> dans <Result> . Chaque champ personnalisé est limité à 200 caractères. Pour en savoir plus, consultez les fichiers des pages de destination.
Si des éléments <Custom> sont fournis dans l'élément |
<InternetIncluded> | Optional | boolean | Si une offre de chambres inclut un accès à Internet sans frais, alors que d'autres offres n'en incluent pas, N'utilisez pas cet élément pour les offres de chambres d'un hôtel proposant un accès Internet sans frais à toutes les chambres. Cet élément ne s'applique pas à l'accès à Internet filaire ou sans fil non disponible dans les chambres. |
<Occupancy> | Required | integer | Spécifie le nombre maximal de personnes autorisé pour ce tarif. Par exemple, une grande suite peut accueillir physiquement six personnes, mais la formule "Lune de miel" n'en autorise que deux.
Cette valeur doit être inférieure ou égale à Lorsque vous définissez le nombre de personnes dans l'URL de votre page de destination, utilisez les variables La valeur de Remarques :
|
<OtherFees> | Required | float | Frais, autres que le tarif de base et les taxes, qui ont une incidence sur le prix final d'une chambre. L'élément <OtherFees> comporte un seul attribut obligatoire, currency , qui définit le code de devise à trois lettres pour les frais. Par exemple, utilisez USD pour le dollar américain. |
<PackageID> | Optional (recommended) | string | Identifiant unique des données du séjour organisé. Utilisez cet identifiant pour faire correspondre les données de l'offre de chambres avec celles envoyées dans <PackageData> . Pour en savoir plus, consultez Métadonnées des offres de chambres. (Vous pouvez également utiliser cet identifiant pour faire référence à une définition d'offre de chambres commune utilisée dans un message Transaction lorsque vous définissez les données de l'offre de manière intégrée.) |
<ParkingIncluded> | Optional | boolean | Indique si une offre de chambres inclut un parking sans frais, si le stationnement est normalement payant dans cet hôtel. Ne spécifiez aucune valeur pour cet élément si l'hôtel propose un parking gratuit.
Les valeurs valides sont |
<RatePlanID> | Optional | string | L'ID de l'offre de chambres représente l'identifiant unique d'une combinaison chambre/formule. Par exemple, si la valeur <RoomID> est de 5 et que la valeur <PackageID> est ABC, vous pouvez utiliser la valeur 5-ABC pour <RatePlanID> . Nous vous recommandons vivement d'utiliser RatePlanID comme variable pour créer l'URL dynamique de votre page de destination (anciennement "point de vente").
Pour plus d'informations, reportez-vous à la page Utiliser des variables et des conditions. |
<Rates> | Optional | <Rates> |
Tarifs qui remplacent les valeurs par défaut pour cette offre de chambres. Cet élément utilise la même syntaxe que <Rates> dans <Result> . |
<Refundable> | Optional | Object | Permet d'indiquer qu'un tarif est entièrement remboursable ou de proposer une annulation sans frais. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche.
Les conditions de remboursement définies au niveau <PackageData> remplacent celles du niveau <Result> . Les conditions de remboursement définies au niveau <Rates> remplacent celles du niveau <PackageData> . Les utilisateurs peuvent également présenter les tarifs remboursables aux utilisateurs à l'aide d'autres options sans modifier directement le schéma de votre message de transaction. Pour en savoir plus sur ces options, consultez les Règles relatives aux tarifs remboursables.
L'exemple suivant montre l'élément <Refundable available="1" refundable_until_days="7" refundable_until_time="18:00:00"/> Remarque:Nous vous recommandons de définir tous les attributs. Un message d'avertissement concernant l'état du flux est généré lorsqu'un ou plusieurs attributs ne sont pas définis. Si vous ne définissez aucun attribut, le tarif ne s'affiche pas comme remboursable. Les attributs sont les suivants :
Lorsque vous définissez les attributs, tenez compte des points suivants:
|
<RoomID> | Required | string | Identifiant unique des données de la chambre. Utilisez cet identifiant pour faire correspondre les données de l'offre de chambres avec celles que vous avez envoyées dans <RoomData> .
Pour en savoir plus, consultez
Métadonnées des offres de chambres. (Vous pouvez également utiliser cet identifiant pour faire référence à une définition de chambre commune dans un message Transaction lorsque vous définissez les données de la chambre de façon intégrée.) |
<Tax> | Required | float | Taxes calculées pour le prix final d'une chambre.
L'élément <Tax> comporte un seul attribut obligatoire, currency , qui définit le code de devise à trois lettres pour les taxes. Par exemple, utilisez USD pour le dollar américain. |
Exemples
Offre pour une personne
L'exemple suivant définit une réponse avec une offre pour une seule personne.
Lorsqu'un utilisateur sélectionne 1
dans l'outil de sélection du nombre de personnes, Google affiche le prix éligible le plus bas, quel que soit le nombre de personnes.
Si aucun tarif n'est disponible pour une seule personne, Google affiche le tarif le plus bas d'une chambre pour deux personnes. Notez que les tarifs pour une personne seule ne sont pas interrogés en temps réel si une chambre pour deux personnes ou plus est mise en cache pour un séjour.
Cet exemple fait référence à des métadonnées de chambres et de formules prédéfinies avec les éléments <RoomID>
et <PackageID>
. Utilisez les éléments <RoomData>
et <PackageData>
pour définir ces informations.
<!-- 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>
Nombre de personnes ou plus
L'exemple suivant définit une réponse contenant au moins deux nombres de personnes.
Cet exemple fait référence à des métadonnées de chambres et de formules prédéfinies avec les éléments <RoomID>
et <PackageID>
. Utilisez les éléments <RoomData>
et <PackageData>
pour définir ces informations.
<!-- 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>
Plusieurs offres de chambres
L'exemple suivant définit le nombre de personnes dans plusieurs offres de chambres pour illustrer les tarifs possibles des chambres d'auberge de jeunesse.
<?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>
Plusieurs tarifs sous conditions
L'exemple suivant définit un tarif de base et plusieurs tarifs sous conditions dans un élément <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>
Dans un message de transaction, <Occupancy>
spécifie le nombre maximal de personnes pour une chambre ou un séjour organisé. <OccupancyDetails>
peut contenir des informations supplémentaires, telles que le nombre et le type de personnes (adultes ou enfants).
Lorsque <Occupancy>
et <OccupancyDetails>
apparaissent dans l'élément <Rates>
de <Result>
ou <RoomBundle>
, cela signifie que le tarif est limité par les détails du nombre de personnes.
Syntaxe
Lorsque <OccupancyDetails>
apparaît, il est toujours précédé de <Occupancy>
.
Notez la syntaxe suivante:
<?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>
Éléments enfants
L'élément <OccupancyDetails>
comporte les éléments enfants suivants :
Élément enfant | Requis ? | Type | Description |
---|---|---|---|
<NumAdults> | Required | integer | Nombre d'adultes. Min:1, Max:20. |
<Children> | Optional | Object | Conteneur pour un ou plusieurs éléments <Child> . |
<Child age> | Optional | integer | Âge maximal de cet enfant (par exemple, <Child age="17"> ). |
Exemples
Les exemples suivants montrent comment <OccupancyDetails>
peut apparaître dans <Results>
, <RoomBundle>
ou l'élément enfant <Rates>
.
Réponse au résultat
L'exemple suivant définit un séjour et ses tarifs pour un établissement en réponse à une requête de prix en temps réel, dans laquelle l'utilisateur a spécifié le nombre et les types de clients. Ici, les <OccupancyDetails>
(deux adultes et un enfant) sont renvoyés dans <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>
Évaluer la réponse
L'exemple suivant définit un séjour et ses tarifs pour un adulte et un enfant. Ici, les <OccupancyDetails>
sont renvoyées dans l'élément <Rates>
de <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>
Offre de chambres
L'exemple suivant définit un nombre de personnes de deux adultes et un enfant pour deux nuits, avec un tarif remboursable. Ici, les <OccupancyDetails>
apparaissent dans <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>
Plusieurs offres de chambres
L'exemple suivant définit plusieurs tarifs <RoomBundle>
limités à un nombre de personnes de deux adultes et deux enfants. Ici, les <OccupancyDetails>
apparaissent dans l'élément <Rates>
de <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>