Documentation de référence XML sur les prix et l'inventaire des chambres (transactions)

Cette page fournit une référence pour les messages Transaction au format XML.

<Transaction>

Élément racine d'un message Transaction. est <Transaction>. Il s'agit d'un conteneur d'informations descriptives les chambres et les séjours organisés, ainsi que les tarifs et la disponibilité des chambres et séjours organisés.

L'élément <Transaction> apparaît à l'emplacement suivant dans 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 nécessitent au moins un élément élément enfant. Les messages Transaction peuvent comporter autant d'éléments enfants que nécessaire, tant que la taille totale du message ne dépasse pas 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é. Toi utilisez cette option si votre backend fournit des flux de prix pour plusieurs comptes partenaires. Cette valeur de chaîne correspond à la "clé partenaire" valeur indiquée sur le <ph type="x-smartling-placeholder"></ph> Page "Paramètres du compte" dans Hotel Center.
timestamp Required DateTime

Le moment où le message Transaction a été envoyé.

Tout message envoyé avec un code temporel datant de moins de 24 heures traitées, et celles qui ne l'ont pas été seront supprimées.

Les messages sont traités dans l'ordre de timestamp et non dans l'ordre de réception. Par exemple, la mise à jour d'un prix code temporel de 2019-05-03 14:09:00 reçu après une dont l'horodatage est 2019-05-03 14:10:00 être traités dans l'ordre, et le prix indiqué dans le message le code temporel 2019-05-03 14:10:00 sera utilisé.

Éléments enfants

L'élément <Transaction> comporte les éléments enfants suivants :

Élément enfant Obligatoire ? Type Description
<PropertyDataSet> Optional* <PropertyDataSet>

Décrit une chambre et des offres de chambres spécifiques. Vous l'utilisez généralement dans un autre message Transaction pour définir les valeurs partagées et de réduire la taille de vos messages Transaction.

<Result> Optional* <Result>

Les données tarifaires de l'itinéraire d'une chambre Un élément <RoomBundle> qui définit les offres de chambres et d'autres types de chambres pour l'établissement. La L'élément <Result> peut aussi être utilisé pour supprimer de l'inventaire.

* Au moins l'une des valeurs suivantes : <PropertyDataSet> ou <Result> est obligatoire.

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 des données tarifaires pour une à sept nuits à partir de 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>


Base et tarifs sous conditions

L'exemple suivant présente un message Transaction contenant un bloc d'annonces 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 supprime plusieurs inventaires (séjours d'une nuit pour plusieurs dates différentes) 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>

Un conteneur pour les informations sur les chambres et les formules (ou offre de chambres) dans une <Transaction>. Les valeurs définies au niveau d'un hôtel remplacent celles définies au niveau du partenaire. Google stocke ces informations afin que vous n'ayez pas à les définir à chaque fois lorsque vous envoyez des mises à jour de prix.

L'élément <PropertyDataSet> apparaît à l'emplacement suivant dans 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 Obligatoire ? Type Description
<PackageData> Optional* <PackageData> Décrit une offre de chambres. Ces données sont associées à un partenaire mais pas d'itinéraire. Cet élément est similaire à <RoomData>, mais il décrit des services et 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 la valeur de cet élément doit être une chaîne correspondant à la liste <id> dans votre flux Hotel List Feed.
<RoomData> Optional* <RoomData> Décrit une chambre. Ces données sont associées à un partenaire et à un hôtel, mais pas avec un itinéraire.

Vous devez faire référence à l'identifiant de la chambre dans vos mises à jour de prix.

* Au moins l'une des valeurs suivantes : <PackageData> ou <RoomData> est obligatoire.

Exemples

Données sur les chambres et les formules

L'exemple suivant présente à la fois les données de chambres et de séjours organisés dans une <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 : référencer les identifiants des chambres et des formules dans vos messages sur les prix. Le résultat est de réduire considérablement la taille de vos messages et de réduire d'erreurs que vous pourriez rencontrer en raison de données en double. Pour plus en savoir plus, consultez Métadonnées des offres de chambres.

<RoomData>

Définit des métadonnées sur les chambres indépendantes de l'itinéraire et, par extension, Room Offres (étant donné que les offres de chambres correspondent à des chambres avec services supplémentaires). Utilisez <RoomData> pour limiter la répétition de données descriptives dans votre prix Flux.

L'élément <RoomData> apparaît à l'emplacement suivant dans 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 le partenaire et l'hôtel, mais pas avec un séjour. L'objectif est que tous les données non liées à l'itinéraire.

L'élément <RoomData> est semblable à <PackageData>, mais il décrit la chambre physique plutôt que les services et les conditions d'un forfait. Vous utilisez <RoomData> et <PackageData> combinés pour fournir des informations sur Offres de chambres. 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 pour la même chambre ou offre de chambres. Lorsque Google affiche la chambre ou la formule dans la dans les résultats de recherche, elle inclura les descriptions des deux types de résultats, séparées par une ligne tiret.

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 Obligatoire ? Type Description
<Capacity> Optional integer Nombre maximum de personnes que la chambre peut physiquement accueillir s'adapter. Pour une salle, la capacité est supérieure ou égale à le nombre de personnes.

Si spécifiée, cette valeur doit être supérieure ou égale à la valeur de l'élément <Occupancy>, qui est la cible le nombre de personnes pour une chambre donnée. Par exemple, l'espace de stockage <Capacity> peut être égal à 6, mais la valeur <Occupancy> est égal à 4.

La valeur de <Capacity> doit être un entier positif compris entre 1 et 20, inclus.

<Description> Optional Object Description détaillée de la chambre. Cet élément doit contiennent des informations non décrites par d'autres éléments ou par l' Élément <Name>. Vous ne devez pas utiliser tout en majuscules lettres pour décrire la chambre.

L'élément <Description> n'a qu'un seul enfant. <Text>, qui comporte les deux attributs obligatoires:

  • text: description détaillée de la chambre.
  • language: code de langue à deux lettres Exemple : fr

Utiliser un élément <Text> distinct pour chaque langue où votre annonce ou lien de réservation gratuit peut apparaître (avec des valeurs différentes pour le champ language).

L'exemple suivant présente les versions française et anglaise de la salle description:

<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 s'affiche sur la page de destination de l'hôtel (anciennement "point de vente"). Ne pas définir la valeur de cet élément en majuscules.

Cet élément dispose d'un seul élément enfant, <Text>, qui comporte les deux attributs obligatoires suivants:

  • text: nom de la salle.
  • language: code de langue à deux lettres Exemple : fr

Utiliser un élément <Text> distinct pour chaque langue où votre annonce ou votre lien de réservation gratuit peuvent apparaître (avec différentes pour les attributs language).

L'exemple suivant présente les versions française et anglaise de la salle nom:

<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 (6 personnes maximum), mais est prévue pour un maximum de quatre personnes.

Cette valeur doit être inférieure ou égale à Élément <Capacity>, qui correspond au nombre de personnes que la chambre peut accueillir physiquement.

La valeur de <Occupancy> doit être un positif Nombre entier compris entre 1 et 99 inclus.

<Occupancy> peut être accompagné de <OccupancyDetails>, qui spécifie le type invités (adultes ou enfants). Consultez <OccupancyDetails> pour connaître la syntaxe et la description des éléments enfants.

<OccupancySettings> Optional Object Paramètres permettant de limiter ou de modifier le nombre de personnes salle.

L'élément <OccupancySettings> utilise l'élément éléments enfants suivants:

  • <MinOccupancy>: nombre minimal de clients pouvant rester dans une pièce. Par exemple, s'il est défini sur 2, cette salle ne peut pas être réservée pour une seule personne.

    La valeur de <MinOccupancy> doit être un positif Nombre entier compris entre 1 et 99 inclus.

  • <MinAge>: âge minimal pour tous les invités dans une pièce. Par exemple, si la valeur est 18, cette salle ne peut être réservée que pour les groupes dont tous les invités ont 18 ans ou avant.

    La valeur de <MinAge> doit être un entier positif compris entre 0 et 99 inclus.

<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 d'une photo de la salle ou Offre de chambres. Vous pouvez spécifier plusieurs <PhotoURL> pour une chambre ou une offre de chambres. L'URL de chaque photo doit être différente <PhotoURL>

Cet élément comporte les éléments enfants suivants:

  • <URL>: spécifie l'emplacement de la photo. La doit être publique (et non derrière un pare-feu) et doit inclure le protocole (par exemple, https://) ; N'en utiliser qu'un <URL> par <PhotoURL>.
  • <Caption>: définit la légende de la photo. Cet élément dispose d'un seul élément enfant, <Text>, qui comporte deux attributs obligatoires: text et language L'attribut text correspond à la légende. L'attribut language spécifie quant à lui un code de langue tel que en.

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 avec les blocs <Result> dans vos mises à jour de prix. Pour en savoir plus, consultez Métadonnées des offres de chambres. (Vous vous pouvez également utiliser cet identifiant pour faire référence à une définition de chambre commune message Transaction lorsque les données de la chambre sont définies 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>

Pièce et métadonnées du package

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 d'une chambre et d'un séjour organisé pour plusieurs chambres Groupes:

<?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 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 Obligatoire ? Type Description
<JapaneseHotelRoomStyle> Optional enum

Indique le style d'une chambre d'hôtel japonaise.

Les valeurs valides sont les suivantes :

  • western: chambre de style occidental avec des lits.
  • japanese: chambre de style japonais avec futon.
  • japanese_western: une pièce de style occidental japonais avec lits de style occidental et futons de style japonais.
<Beds> Optional Object Contient autant de <Bed> que la salle. Remarque que les futons japonais ne sont pas comptés ici.

Chaque <Bed> possède les attributs suivants:

  • size (facultatif): les valeurs valides sont single, semi_double, double, queen et king.
Chaque <Bed> comporte les éléments enfants suivants: <ph type="x-smartling-placeholder">
    </ph>
  • <Width> (facultatif): spécifie la largeur du lit. Doit comportent l'attribut unit avec la valeur cm ; l'attribut number avec la largeur du lit en nombre entier centimètres.
  • <Length> (facultatif): spécifie la longueur du lit. Doit comporter l'attribut unit avec la valeur cm et l'attribut number avec la longueur du lit en un nombre entier de centimètres.
Exemple:
<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 cette salle est partagée avec d'autres occupants, comme des propriétaires ou d'autres invités. Les valeurs valides sont shared et private.
<Outdoor> Optional empty Spécifiez cet élément lorsque cette chambre est un hébergement en extérieur qui n'est pas ont des murs fixes, de la plomberie et de la climatisation. Par exemple, les chambres d'hôtel ne constituent pas un hébergement en plein air, alors que les campings où les clients sont logés dans des tentes Emplacements pour camping-cars où les clients apportent leurs propres camping-cars 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. 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:

  • relation (facultatif): indique comment les toilettes et les toilettes sont placés les uns par rapport aux autres. Les valeurs valides sont together (la salle de bain et les toilettes se trouvent dans la même pièce) (par exemple, une salle de bain) l'un à côté de l'autre) et separate (les salles de bain et les toilettes disposent chacune d'un espace dédié). Cet attribut ne doit pas être défini lorsque la chambre ne dispose pas d'une baignoire et de toilettes.

L'élément comporte également les éléments enfants suivants:

  • <Bath> (facultatif): existence de cet élément indique que la pièce est équipée d'une baignoire.

    Les attributs sont les suivants :

    • bathtub (facultatif): indique que le bain baignoire dans la salle de bain. Les valeurs valides sont 0 (ou false) et 1 (ou true).
    • shower (facultatif): indique que le bain douche. Les valeurs valides sont 0 (ou false) et 1 (ou true).
  • <Toilet> (facultatif): existence de cet élément indique que la chambre est équipée de toilettes.

    Les attributs sont les suivants :

    • electronic_bidet (facultatif): indique que le paramètre toilettes sont équipées d'un bidet électronique. Les valeurs valides sont 0 (ou false) et 1 (ou true).
    • mobility_accessible (facultatif): indique que le paramètre toilettes sont accessibles aux personnes à mobilité réduite. Les valeurs valides sont 0 (ou false) et 1 (ou true).

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:

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

Exemples

JapaneseHotelRoomStyle n'a pas de valeur par défaut. Omission 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 filtre 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 double lits.

<?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. Lit les informations ne sont pas requises pour la salle 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 salle de style japanese_western avec king de la taille d'un lit.

<?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 salles, puis 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 avec un itinéraire. L'objectif est de définir tous les éléments une seule fois et de les référencer à partir des données de l'itinéraire.

L'élément <PackageData> apparaît à l'emplacement suivant dans 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 les caractéristiques et conditions tarifaires qui ne font pas partie de la chambre physique la description. Vous utilisez conjointement <RoomData> et <PackageData> pour fournir des informations sur les offres de chambres et les caractéristiques tarifaires. Pour les salles individuelles ne font pas partie d'un package, utilisez simplement <RoomData>.

Vous pouvez définir à la fois les éléments <RoomData> et <PackageData> pour pour la même chambre ou offre de chambres. Lorsque Google affiche la chambre ou la formule dans la dans les résultats de recherche, elle inclura les descriptions des deux types de résultats, séparées par une ligne tiret.

Si vous mettez à jour un seul élément <PackageData> pour un établissement, vous devez mettez à jour tous les éléments <PackageData> et <RoomData> de l'établissement. Chaque <PropertyDataSet> englobe toutes les données de l'établissement. é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 Obligatoire ? 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 <Meals> au lieu de <BreakfastIncluded>

<ChargeCurrency> Optional enum Le moment et le lieu où l'utilisateur paie sa réservation. Cet élément utilise le même comme <ChargeCurrency> dans un <Result>.

La valeur par défaut est web.

<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 contiennent des informations non décrites par d'autres éléments ou par l' Élément <Name>. Vous ne devez pas utiliser tout en majuscules lettres pour décrire la chambre.

L'élément <Description> accepte un seul élément l'élément enfant <Text>, qui comporte deux attributs obligatoires. text et language. text est la description, et l'attribut language spécifie un code de langue à deux lettres, comme dans l'exemple suivant : affiche:

<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, tandis que d'autres packs n'incluent pas cet équipement. Ne pas définir pour les offres de chambres dans un hôtel proposant un accès sans frais à Internet salles. Cet élément ne s'applique pas à l'accès Internet filaire ou sans fil dans la chambre qui n'est pas 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 <Meals> comporte deux éléments enfants facultatifs <Breakfast> et <Dinner>, qui présentent les attributs suivants:

  • included (obligatoire): défini sur 1 (ou true) si le tarif comprend le petit-déjeuner/dîner ; sinon défini sur 0 ou false.
  • in_room (facultatif): définie sur 1 (ou true) si les clients ont la possibilité de prendre le petit-déjeuner/dîner dans la chambre dans ; sinon défini sur 0 (ou false).
  • in_private_space (facultatif): défini sur 1 (ou true) si les clients ont la possibilité de prendre le petit-déjeuner/dîner sur place un espace (sauf la pièce dans laquelle ils restent) où ils peuvent éviter tout contact avec autres invités ; sinon défini sur 0 (ou false).
  • buffet (facultatif): définie sur 1 (ou true) si le petit-déjeuner/dîner est proposé sous forme de buffet ; sinon défini sur 0 (ou false).

Les attributs facultatifs ne sont utilisés que lorsque included est "true".

Pour les filtres de repas (no meals, breakfast only, dinner only et breakfast and dinner) au travail, <Breakfast> et <Dinner> doivent à renseigner avec l'attribut included.

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

Cet élément dispose d'un seul élément enfant, <Text>, qui comporte deux attributs, text et language. L'attribut text correspond à la description, et l'attribut L'attribut language permet de spécifier un code de langue à deux lettres. comme le montre l'exemple suivant:

<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 accueillir physiquement 6 invités, mais est réservé à un maximum de quatre personnes.

Cette valeur doit être inférieure ou égale à Élément <Capacity>, qui correspond au nombre de personnes que la chambre peut accueillir physiquement.

La valeur de <Occupancy> doit être un positif Nombre entier compris entre 1 et 99 inclus.

Si vous spécifiez cet élément à la fois dans <RoomBundle> et <PackageData>, la valeur dans <RoomBundle> est prioritaire.

Remarque :

<Occupancy> peut être accompagné de <OccupancyDetails>,qui spécifie le type d'invités. (adultes ou enfants). Consultez <OccupancyDetails> pour connaître la syntaxe et description des éléments enfants.
<PackageID> Required string

Identifiant unique du package. Utilisez cet identifiant pour faire correspondre les Données d'offre de chambres avec les blocs <Result> de votre les mises à jour des prix. Pour en savoir plus, consultez Pièce Métadonnées du bundle.

Vous pouvez également utiliser cet identifiant pour faire référence à une définition commune d'offre de chambres. utilisé dans un seul message Transaction lors de la définition de données d'offre de chambres inline.)

<ParkingIncluded> Optional boolean Si une offre de chambres inclut un parking sans frais, où le parking est payant dans cet hôtel. Ne pas spécifier une valeur pour cet élément si l'hôtel propose un parking gratuit.

Les valeurs valides sont 0 (ou false) et 1 (ou true). La valeur par défaut est false

<PhotoURL> Optional Object (Identique à <PhotoURL> dans <RoomData>, mais pour le colis (par exemple, des photos de repas).
<Refundable> Optional Object Permet de présenter un tarif comme étant entièrement remboursable ou de proposer une offre l'annulation. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche. Les conditions de remboursement définies au niveau de <PackageData> remplacent celles spécifiées ci-dessous au niveau de <Result>. Les conditions de remboursement définies au niveau de <Rates> remplacent les conditions de remboursement au niveau de <PackageData>. Les tarifs remboursables peuvent sont également mises en avant auprès des utilisateurs à l'aide d'autres options, modifier le schéma de votre message Transaction. En savoir plus sur ces options Règles relatives aux tarifs remboursables

L'exemple suivant montre le <Refundable> avec tous ses attributs définis:

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

Remarque:Nous vous recommandons de définir tous les attributs. Un flux un message d'avertissement concernant l'état est généré lorsqu'un ou plusieurs attributs sont non défini.

Si vous ne définissez aucun attribut, le tarif n'apparaît pas remboursables. Les attributs sont les suivants :

  • available (obligatoire) : défini sur 1 ou true pour indiquer si le tarif autorise un remboursement ; Sinon, définissez-la sur 0 ou false.
  • refundable_until_days: (obligatoire si available est true) spécifie Nombre de jours avant la date d'arrivée pendant lesquels un remboursement total peut être effectué demandée. La valeur de refundable_until_days doit être un nombre entier compris entre 0 et 330 inclus.
  • refundable_until_time: (fortement recommandé si available est true) spécifie à la dernière heure de la journée, à l'heure locale de l'hôtel, qu'une votre demande de remboursement sera traitée. Cela peut être combiné avec refundable_until_days pour spécifier, pour Exemple : "les remboursements sont possibles jusqu'à 16 h deux jours avant "check-in". Si refundable_until_time n'est pas défini, la valeur la valeur par défaut est minuit.

    La valeur de cet attribut utilise le format Heure.

Lorsque vous définissez les attributs, tenez compte des points suivants:

  • Si available ou refundable_until_days ne l'est pas défini, le tarif ne s'affiche pas comme remboursable.
  • Si available est 0 ou false, les autres attributs sont ignorés. Le tarif ne s'affiche pas sous la forme remboursable même si l'un des autres attributs ou les deux sont définis.
<MembershipBenefits Included> Optional boolean Le tarif inclut les avantages du niveau Élite pendant la durée du séjour. Inclut les paramètres suivants: <ph type="x-smartling-placeholder">
    </ph>
  • ProgramName: nom du programme de statut d'élite
  • ProgramLevel: niveau du programme. Par exemple: « Or ».
  • NightlyValue (optional): valeur par nuit de la avantages.
<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: <ph type="x-smartling-placeholder">
    </ph>
  • NumberofMiles: nombre de miles par séjour.
  • Provider: cela inclut les miles du programme de fidélité.
<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: <ph type="x-smartling-placeholder">
    </ph>
  • Amount: valeur du crédit par séjour, en devise locale devise.
<AirportTransportationIncluded> Optional Object Le tarif comprend le transport sans frais depuis/vers un aéroport voisin. L'option L'attribut direction spécifie l'orientation de la les transports. Les valeurs possibles sont les suivantes: <ph type="x-smartling-placeholder">
    </ph> from: transport entre l'aéroport et le . Il s'agit de la valeur par défaut si aucune direction n'est spécifiée. to: le transport est assuré jusqu'à l'aéroport depuis le . round_trip: le transport est assuré à la fois depuis et vers le à l'aéroport.

Exemples

Offre pour une seule chambre

L'exemple suivant définit une seule offre de chambres, pour un nombre de personnes 2 (un adulte et un enfant) et le petit-déjeuner inclus:

<?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 d'une chambre et d'un séjour organisé pour plusieurs chambres Groupes:

<?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 de chambres et de séjours organisés pour les repas, photos, et 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 élément <Transaction> .

L'élément <Result> apparaît à l'emplacement suivant dans Hiérarchie XML des messages de transaction:

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

Définissez ou modifiez les prix des chambres à l'aide de <Result>, puis définissez l'inventaire disponible. Les éléments définis dans cet élément font généralement référence métadonnées indépendantes de l'itinéraire concernant une chambre ou un séjour organisé (comme une description ou ensemble d'équipements) défini dans <PackageData> et <RoomData>.

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 comme décrit dans la section Supprimer des éléments de l'inventaire. Pour en savoir plus sur l'utilisation des messages Transaction pour mettre à jour les prix la disponibilité, Ajouter et mettre à jour un inventaire.

Un message Transaction peut inclure plusieurs éléments <Result>. tant que la taille du message ne dépasse pas 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 remplace tous les prix précédents (qui n'ont pas expiré) présents dans le cache de Google. La fusionable vous permet de stocker des prix supplémentaires dans le cache de Google sans supprimer les informations tarifaires précédentes. Requête de prix en temps réel avec Cet attribut sera toujours défini sur true pour les réponses de contexte (quelle que soit la réponse de votre message Transaction).

Éléments enfants

L'élément <Result> comporte les éléments enfants suivants :

Élément enfant Obligatoire ? Type Description
<AllowablePointsOfSale> Optional Object Une ou plusieurs pages de destination éligibles pour hôtel. Une page de destination est un site Web qui peut gérer le processus de réservation du de l'utilisateur final. Pour inclure explicitement certaines pages de destination (et exclure autres), ajoutez un ou plusieurs <AllowablePointsOfSale> qui correspondent aux paramètres de l'élément <PointOfSale> id dans le fichier de pages de destination.

Si vous n'incluez pas cet élément, toutes les pages de destination définies dans le de vos pages de destination sont considérées comme pouvant être utilisées pour réserver salle. Pour en savoir plus, consultez Syntaxe du fichier des pages de destination

<Baserate> Optional float

Prix de la chambre pour le séjour. Valeur de cet élément doit refléter ce qui suit:

  • Pour une chambre individuelle, définissez le tarif le moins cher d'une chambre pour deux personnes que vous proposez. Un nombre plus élevé est autorisé ici si vous n'avez pas prix d'une chambre double, mais que votre compte inclut une personne qui n'est pas double ou tarifs activés. Veuillez nous contacter pour activer les tarifs pour un nombre de personnes autre que "2". Les tarifs pour une personne seule ne sont pas autorisés ici. Ils doit être défini sur <Rates>.
  • Pour une salle partagée, laissez ce champ vide et utilisez <RoomBundle>
  • Cette valeur doit correspondre au prix de base total pour toutes les nuits, et non au prix tarif par nuit moyen.

Si la chambre n'est pas disponible pour l'itinéraire, <Baserate> doit être omis ou défini sur -1 et <Unavailable> doivent être spécifiée, ainsi que les raisons connues de l'indisponibilité.

Pour supprimer une offre de chambres, suivez les instructions de la section Supprimer une offre de chambres.

L'élément <Baserate> ne doit contenir aucun regroupement de chiffres tels qu'une virgule (,) ou un point (.). Toujours séparer fractions en utilisant un point (.) comme séparateur décimal. Par exemple : représentent 1 200,40 € comme suit:

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

L'élément <Baserate> comporte les éléments suivants : attributs facultatifs:

  • all_inclusive: valeur booléenne indiquant si ce taux taxes et frais compris. En général, définissez cette valeur sur false pour les utilisateurs finaux au Canada et aux États-Unis, et fournissez des valeurs pour les variables <Tax> et <OtherFees> éléments. Si vous utilisez des prix tout compris, vous n'êtes peut-être pas éligible d'apparaître dans les fiches si vos prix n'indiquent pas le montant des taxes et les frais pour les utilisateurs canadiens.

    Les tarifs tout compris sont désormais visibles par les utilisateurs situés aux États-Unis.

    Pour tous les autres utilisateurs finaux, vous incluez généralement les taxes et les frais au tarif de base et définissez la valeur de all_inclusive à true. Pour en savoir plus, consultez Règles relatives aux taxes et aux frais.

    La valeur par défaut est false.

  • currency: code de devise à trois lettres. Pour Exemple : USD pour le dollar américain.
<ChargeCurrency> Optional enum Le moment et le lieu où l'utilisateur paie sa réservation. Cet élément peut dans un message Transaction dans le champ <Result> pour le bloc "Prix de l'hôtel" ou "<PackageData>" pour une offre de chambres.

Les valeurs valides sont les suivantes :

  • web: l'utilisateur est facturé en ligne au moment de la réservation. Il s'agit de la valeur par défaut. La page de destination réelle est défini par le fichier de la page de destination, et peuvent varier selon la devise de l'utilisateur, la zone géographique, la langue ou d'autres facteurs.
  • hotel: l'utilisateur est facturé lorsqu'il s'enregistre hôtel. Si le paiement doit être effectué systématiquement dans la devise de l'hôtel, définissez la valeur de <ChargeCurrency> pour hotel La page de destination réelle n'est pas affectée par le paramètre dans la devise de l'utilisateur.
  • deposit: l'utilisateur est facturé immédiatement en partie. et le reste est facturé ultérieurement, en général lorsque l'utilisateur libère la chambre.
  • installments: une fraction initiale est facturée à l'utilisateur. de la somme totale due et est censée payer régulièrement un solde défini sur une période déterminée.

La valeur par défaut est web.

<Checkin> Required Date Date d'arrivée pour un itinéraire utilisant le champ Date . La combinaison de l'élément <Nights> et de l'élément <Checkin> constituent un itinéraire.
<Custom[1‑5]> Optional string Définit un champ personnalisé que vous pouvez utiliser pour transmettre des données supplémentaires associée à un hôtel. Vous pouvez transmettre jusqu'à cinq valeurs personnalisées à l'aide du paramètre les noms d'éléments suivants: <ph type="x-smartling-placeholder">
    </ph>
  • <Custom1>
  • <Custom2>
  • <Custom3>
  • <Custom4>
  • <Custom5>

Les éléments <Custom> vous permettent de transmettre des données arbitraires. Par exemple, vous pouvez spécifier dans ce champ une valeur qui sera utilisées par le fichier de pages de destination afin de créer une URL personnalisée pour une page de destination . Chaque champ personnalisé est limité à 200 caractères. Pour plus d'informations, reportez-vous à fichiers des pages de destination

<Personnalisé> fournis dans le <Rate> ne sont pas hérités de l'élément <RoomBundle>. Vous devez définir <Custom> séparément dans chaque <RoomBundle>.

<ExpirationTime> Optional DateTime Date et heure auxquelles le prix est considéré comme expiré (trois heures minimum).

Nous vous recommandons de ne pas fournir d'horodatage n'est pas essentiel à votre structure tarifaire.

Google ne fournit aucun prix arrivé à expiration, ni aucun séjour dont le prix a expiré deviennent éligibles <ph type="x-smartling-placeholder"></ph> les requêtes de prix en temps réel.

<Nights> Required integer Nombre de nuits pour un séjour. La valeur du paramètre L'élément <Nights> doit être un entier positif. La combinaison de <Nights> et <Checkin> constituent un itinéraire.
<OtherFees> Optional float Frais, autres que le tarif de base et les taxes, qui ont une incidence sur le le prix final d'une chambre. L'élément <OtherFees> prend en charge Un seul attribut obligatoire, currency, qui définit le code de devise à trois lettres pour les frais. Par exemple, USD.

L'élément <OtherFees> est obligatoire si <Baserate> est supérieur à zéro.

<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ée de <OccupancyDetails>, qui spécifie le type de clients (adultes ou enfants). Si aucun type d'invité n'est spécifié, ils sont considérés comme des adultes. Consultez <OccupancyDetails> pour la syntaxe et la description des éléments enfants. Si le <Occupancy> élément 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é envoyez 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 Pièce Métadonnées du bundle.
<Property> Required string Identifiant de l'hôtel concerné par les données associées (prix, l'itinéraire, l'offre de chambres ou les métadonnées). La valeur de cet élément doit être une chaîne. La valeur de cet élément doit correspondre à celle indiquée dans la fiche. <id> que vous avez défini dans votre flux Hotel List Feed.
<Rates> Optional <Rates> Conteneur pour un ou plusieurs blocs <Rate>. Chaque <Rate> de <Rates> définit un prix différent pour la chambre et l'itinéraire. combinaison de valeurs.

Utilisez l'élément <Rates> lorsqu'il existe plusieurs tarifs pour pour la même combinaison chambre/séjour ou lorsqu'un tarif n'est pas autorisé être spécifiée au niveau <Result>. Par exemple, vous définissez plusieurs tarifs pour tarifs sous conditions, <ph type="x-smartling-placeholder"></ph> les tarifs préférentiels, Tarifs sous conditions dans des offres de chambres ou pour différents nombres de personnes.

Remarque: Dans un délai de <Result>, les tarifs d'une chambre pour une seule personne ne doit être spécifié que dans <Rates>. Veuillez nous contacter pour autoriser prix pour un nombre de personnes autre que "2".

<Refundable> Optional Object Permet de présenter un tarif comme étant entièrement remboursable ou de proposer une offre l'annulation. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche. Les conditions de remboursement définies au niveau de <PackageData> remplacent celles spécifiées ci-dessous au niveau de <Result>. Les conditions de remboursement définies au niveau de <Rates> remplacent les conditions de remboursement au niveau de <PackageData>. Les tarifs remboursables peuvent sont également mises en avant auprès des utilisateurs à l'aide d'autres options, modifier le schéma de votre message Transaction. En savoir plus sur Règles relatives aux tarifs remboursables

L'exemple suivant montre le <Refundable> avec tous ses attributs définis:

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

Remarque:Nous vous recommandons de définir tous les attributs. Un flux un message d'avertissement concernant l'état est généré lorsqu'un ou plusieurs attributs sont non défini.

Si vous ne définissez aucun attribut, le tarif n'apparaît pas remboursables. Les attributs sont les suivants :

  • available (obligatoire) : défini sur 1 (ou true) pour indiquer si le tarif autorise un remboursement ; sinon défini sur 0 (ou false).
  • refundable_until_days: (obligatoire si available est true) spécifie Nombre de jours avant la date d'arrivée pendant lesquels un remboursement total peut être effectué demandée. La valeur de refundable_until_days doit être un nombre entier compris entre 0 et 330 inclus.
  • refundable_until_time: (fortement recommandé si available est true) spécifie à la dernière heure de la journée, à l'heure locale de l'hôtel, qu'une votre demande de remboursement sera traitée. Cela peut être combiné avec refundable_until_days pour spécifier, pour Exemple : "les remboursements sont possibles jusqu'à 16 h deux jours avant "check-in". Si refundable_until_time n'est pas défini, la valeur la valeur par défaut est minuit.

    La valeur de cet attribut utilise le format Heure.

Lorsque vous définissez les attributs, tenez compte des points suivants:

  • Si available ou refundable_until_days ne l'est pas défini, le tarif ne s'affiche pas comme remboursable.
  • Si available est 0 (ou false), les autres attributs sont ignorés. Le tarif ne s'affiche pas sous la forme remboursable même si l'un des autres attributs ou les deux sont définis.
<RoomBundle> Optional <RoomBundle> Un conteneur pour les informations sur les descriptions physiques payantes d'une chambre, les conditions d'achat et les modalités d'achat l'hôtel et le séjour qu'il propose.

Utilisez généralement cet élément pour définir le prix de la chambre de base différents types de chambres dans le même établissement. Bien qu'il soit possible pour définir des descriptions d'offres de chambres intégrées, vous devez utiliser une balise Message Transaction pour définir ces informations. Google stockera de manière à pouvoir y faire référence au lieu de les répéter les futures mises à jour des prix.

<RoomID> Optional string Identifiant unique de la chambre, à associer aux données prédéfinies de la chambre. Aussi utilisée pour renseigner la variable de page de destination PARTNER-ROOM-ID. Pour en savoir plus, consultez Pièce Métadonnées du bundle.
<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. Par exemple, USD. La L'élément <Tax> est obligatoire si <Baserate> est supérieur à zéro.

Si la valeur de l'élément <Baserate> "tout_inclus" est explicitement défini sur "true", est facultative.

<Unavailable> Optional Object Indique que l'itinéraire ne peut pas être réservé. Sert de pour en savoir plus sur les raisons pour lesquelles le séjour n'était pas disponible. Un un ou plusieurs des motifs d'indisponibilité suivants peuvent être imbriqués sous Balise <Unavailable>: <ph type="x-smartling-placeholder">
    </ph>
  • <NoVacancy/>: aucune autre salle n'est disponible à la vente pour une ou plusieurs nuits du séjour.
  • <MinNightStay value=N/>: l'itinéraire était inférieur au nuit minimum de N aux dates de séjour.
  • <MaxNightStay value=N/>: l'itinéraire était au-dessus de la valeur séjours maximum de N nuits aux dates.
  • <MinAdvancePurchase value=N/>: l'itinéraire était en dessous de la période minimale de réservation à l'avance de N pour le séjour dates.
  • <MaxAdvancePurchase value=N/>: l'itinéraire était supérieure à la période maximale de réservation à l'avance de N pour le séjour dates.
  • <ClosedToArrival/>: la propriété n'autorise pas arrivée à la date d'arrivée de l'itinéraire.
  • <ClosedToDeparture/>: la propriété n'autorise pas le départ le jour de l'itinéraire de départ.
  • <PropertyClosed first_open="YYYY-MM-DD" first_closed="YYYY-MM-DD"/>: l'établissement est fermé depuis une partie ou pendant toute la durée du séjour. Attributs recommandés first_open et first_closed spécifie les premières dates supérieures ou égales à la date d'arrivée pour laquelle l'établissement est ouvert ou fermé, respectivement. Pour un établissement qui ferme après la date d'arrivée, first_open doit correspondre à la date d'arrivée, et first_closed doit correspond à la date de fermeture de l'établissement. Pour un établissement fermé le la date d'arrivée, first_closed doit être égal à la date d'arrivée date, et first_opened correspond à la prochaine date à laquelle la est ouverte.
  • <NotFetched/>: aucun prix pour le séjour fournies par les sources de données en aval.
  • <InvalidProperty/>: identifiant de propriété demandé n'a pas été reconnu.
  • <InvalidOccupancy/>: le nombre de personnes demandé n'est pas acceptées par la propriété.
  • <PriceIssue/>: un problème de prix a entraîné ne seront pas envoyées.
  • <InternalError reason=""/>: erreur non numérotée s'est produit. L'attribut de motif facultatif peut signaler l'erreur sous forme de texte.
  • <OtherRestriction restriction=""/>: l'itinéraire était n'est pas disponible en raison de restrictions de réservation non comptabilisées. Optionnel L'attribut restriction permet de signaler la restriction sous forme de texte.

Exemples

Exemple pour plusieurs établissements

L'exemple suivant définit un séjour et ses tarifs pour deux propriétés:

<?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 contient pas d'informations sur la chambre, comme une description, une photo et une légende, le nom de la salle et sa capacité d'accueil.

Vous pouvez définir ces informations une seule fois dans une transaction Transaction distincte. que Google stocke. Vous pouvez ensuite y faire référence les mises à jour ultérieures des prix et de l'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 en fonction du nombre de personnes. L'élément <Rates> peut être utilisé pour indiquer la tarification à plusieurs tarifs d'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 à partir des canaux en aval, une seconde inférieure au minimum séjours d'une nuit déjà réservés aux dates spécifiées, et un troisième dont l'établissement est fermé à la date d'arrivée, mais ouvre 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 <Rate> de <Rates> définit un prix différent pour la combinaison de chambre ou d'itinéraire.

N'utilisez l'élément <Rates> que lorsqu'il existe plusieurs tarifs pour pour la même combinaison de chambre ou d'itinéraire. Par exemple, vous définissez plusieurs les tarifs des tarifs sous conditions ; tarifs préférentiels Tarifs sous conditions dans les offres de chambres.

L'élément <Rates> apparaît à l'emplacement suivant dans 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 <Rate> remplacent les valeurs liées à la tarification dans le é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. Uniquement &lt;AllowablePointsofSale&gt; est héritée 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 <ph type="x-smartling-placeholder"></ph> tarifs sous conditions, cet identifiant correspond à 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 caractères.

Éléments enfants

L'élément <Rates> comporte les éléments enfants suivants :

Élément enfant Obligatoire ? Type Description
<AllowablePointsOfSale> Optional Object Une ou plusieurs pages de destination éligibles pour hôtel. Cet élément utilise la même syntaxe que <AllowablePointsOfSale> sur <Result>.
<Baserate> Required float Prix de la chambre pour le séjour. Cet élément utilise le même que celle de <Baserate> sur <Result>.

Remarque:L'élément enfant <Baserate> sous <Rate> ne peut pas être défini comme indisponible.

<ChargeCurrency> Optional enum Le moment et le lieu où l'utilisateur paie sa réservation. Cet élément utilise le la même syntaxe que <ChargeCurrency> dans une <Result>
<Custom[1‑5]> Optional string Champs personnalisés que vous pouvez utiliser pour transmettre des données supplémentaires associées à vers une page de destination. Cet élément utilise la même syntaxe qu'un <Custom[1‑5]> dans un <Result>. Il y a une limite de 200 caractères par champ personnalisé. Pour en savoir plus, consultez <ph type="x-smartling-placeholder"></ph> fichiers de page de destination.

Si <Custom> sont fournis dans la section <Result>, elles ne sont pas héritées dans l'élément <RoomBundle> et doit être défini séparément pour chaque élément <RoomBundle> ou il peut être inclus dans <PackageData> si nécessaires.

<ExpirationTime> Optional DateTime Date et heure auxquelles le tarif est considéré comme expiré. Ce utilise la même syntaxe qu'une <ExpirationTime> dans un <Result>.
<Occupancy> Optional integer

Spécifie le nombre maximal de personnes autorisé pour ce tarif. Si ce n'est pas le cas spécifié, il est considéré comme identique au tarif parent. <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.

<OtherFees> Required float Frais autres que le tarif de base et les taxes ayant une incidence sur le prix final d'une pièce. Cet élément utilise la même syntaxe que <OtherFees> dans un <Result>.

Si la valeur de l'élément <Baserate> "tout_inclus" est explicitement défini sur "true", est facultative.

<Refundable> Optional Object Permet de présenter un tarif comme étant entièrement remboursable ou de proposer une offre l'annulation. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche. Les conditions de remboursement définies au niveau de <PackageData> prévalent sur les conditions de remboursement. au niveau de <Result>. Les conditions de remboursement définies au niveau de <Rates> remplacent les conditions de remboursement au niveau de <PackageData>. Les tarifs remboursables peuvent sont également mises en avant auprès des utilisateurs à l'aide d'autres options, modifier le schéma de votre message Transaction. En savoir plus sur ces options Règles relatives aux tarifs remboursables

L'exemple suivant montre le <Refundable> avec tous ses attributs définis:

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

Remarque:Nous vous recommandons de définir tous les attributs. Un flux un message d'avertissement concernant l'état est généré lorsqu'un ou plusieurs attributs sont non défini.

Si vous ne définissez aucun attribut, le tarif n'apparaît pas remboursables. Les attributs sont les suivants :

  • available (obligatoire) : défini sur 1 (ou true) pour indiquer si le tarif autorise un remboursement ; sinon défini sur 0 (ou false).
  • refundable_until_days: (obligatoire si available est true) spécifie Nombre de jours avant la date d'arrivée pendant lesquels un remboursement total peut être effectué demandée. La valeur de refundable_until_days doit être un nombre entier compris entre 0 et 330 inclus.
  • refundable_until_time: (fortement recommandé si available est true) spécifie à la dernière heure de la journée, à l'heure locale de l'hôtel, qu'une votre demande de remboursement sera traitée. Cela peut être combiné avec refundable_until_days pour spécifier, pour Exemple : "les remboursements sont possibles jusqu'à 16 h deux jours avant "check-in". Si refundable_until_time n'est pas défini, la valeur la valeur par défaut est minuit.

    La valeur de cet attribut utilise le format Heure.

Lorsque vous définissez les attributs, tenez compte des points suivants:

  • Si available ou refundable_until_days ne l'est pas défini, le tarif ne s'affiche pas comme remboursable.
  • Si available est 0 (ou false), les autres attributs sont ignorés. Le tarif ne s'affiche pas sous la forme remboursable même si l'un des autres attributs ou les deux sont définis.
<Tax> Required float Taxes calculées pour le prix final d'une chambre. Ce 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 élément une combinaison de séjour organisé ou d'un séjour. Pour définir le package et les conditions de la Pour les offres de chambres, utilisez <RoomData>.

L'élément <RoomBundle> apparaît à l'emplacement suivant dans 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 Obligatoire ? 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>, avec le exception suivante: <ph type="x-smartling-placeholder">
    </ph>
  • Lorsque la chambre n'est pas disponible pour l'itinéraire, supprimez le <RoomBundle> pour indiquer qu'une salle n'est pas plus longtemps dans l'inventaire. Pour en savoir plus, consultez <ph type="x-smartling-placeholder"></ph> Supprimer une offre de chambres
<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 le même comme <ChargeCurrency> dans un <Result>.

La valeur par défaut est web.

<Custom[1‑5]> Optional string Champs personnalisés pour transmettre des données supplémentaires aux pages de destination pour l'offre de chambres. Ces éléments utilisent la même syntaxe que <Custom[1-5]> dans <Result>. La limite est de 200 caractères par champ personnalisé. Pour en savoir plus, consultez fichiers de pages de destination.

Si <Custom> sont fournis dans la section <Result>, elles ne sont pas héritées dans l'élément <RoomBundle> et doit être défini séparément pour chaque élément <RoomBundle> ou il peut être inclus dans <PackageData> si nécessaires.

<InternetIncluded> Optional boolean Si une offre de chambres inclut un accès à Internet sans frais, tandis que les autres offres n'incluent pas ce service. Ne pas définir pour les offres de chambres dans un hôtel proposant un accès sans frais à Internet salles. Cet élément ne s'applique pas à l'accès Internet filaire ou sans fil dans la chambre qui n'est pas disponible dans les chambres.
<Occupancy> Required integer Spécifie le nombre maximal de personnes autorisé pour ce tarif. Par exemple, un grande suite peut accueillir matériellement 6 personnes, mais "Forfait Lune de miel" 2 personnes seulement.

Cette valeur doit être inférieure ou égale à <Capacity>, qui correspond au nombre de personnes la chambre peut accueillir physiquement.

Lorsque vous définissez le nombre de personnes dans l'URL de votre page de destination, utilisez la Variables NUM-ADULTS et NUM-CHILDREN, comme décrites dans la section Utilisation Variables et conditions. La valeur par défaut est 2 adultes et 0 enfants.

La valeur de <Occupancy> doit être un positif Nombre entier compris entre 1 et 99 inclus.

Remarques :

  • <Occupancy> pour <RoomBundle> est vivement recommandé, donc signalé comme obligatoire. En cas d'omission, génèrent une erreur 1097.
  • <Occupancy> vient de l'objet de données dans commande: <RoomBundle>, <PackageData>, puis = <RoomData> Si aucune de ces méthodes ne contient de valeur, la valeur par défaut est 2.
  • <Occupancy> peut être accompagné de <OccupancyDetails>, qui précise le type de personnes (adultes ou enfants). Si les clients ne sont pas spécifiées, ils sont considérés comme des adultes. Consulter <OccupancyDetails> pour la syntaxe et la description des éléments enfants.
  • Lorsque vous définissez <Occupancy> dans <RoomBundle> et <PackageData>, la valeur de <RoomBundle>. est prioritaire.
<OtherFees> Required float Frais, autres que le tarif de base et les taxes, qui ont une incidence sur le le prix final d'une chambre. L'élément <OtherFees> prend en charge 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 à <PackageData>. Pour plus d'informations, reportez-vous à Pièce Métadonnées du bundle. (Vous Vous pouvez également utiliser cet identifiant pour faire référence à une définition commune d'offre de chambres. dans un même message Transaction lorsque vous définissez des données d'offre de chambres. inline.)
<ParkingIncluded> Optional boolean Si une offre de chambres inclut un parking sans frais, où le parking est payant dans cet hôtel. Ne pas spécifier une valeur pour cet élément si l'hôtel propose un parking gratuit.

Les valeurs valides sont 0 (ou false) et 1 (ou true). La valeur par défaut est false

<RatePlanID> Optional string L'ID de l'offre de prix représente l'identifiant unique d'un combinaison chambre/formule. Par exemple, pour une une valeur de 5 pour <RoomID> et une <PackageID> de ABC, vous pourriez utiliser la valeur de 5-ABC pour <RatePlanID>. Nous vous recommandons vivement d'utiliser RatePlanID comme variable pour créer votre page de destination dynamique (anciennement "Point of Sale").

Pour en savoir plus, consultez Utiliser des variables et Conditions.

<Rates> Optional <Rates> Tarifs qui remplacent les valeurs par défaut pour cette offre de chambres. Ce utilise la même syntaxe que <Rates> dans <Result>.
<Refundable> Optional Object Permet de présenter un tarif comme étant entièrement remboursable ou de proposer une offre l'annulation. Si elle n'est pas fournie, aucune information sur le remboursement ne s'affiche. Les conditions de remboursement définies au niveau de <PackageData> remplacent celles spécifiées ci-dessous au niveau de <Result>. Les conditions de remboursement définies au niveau de <Rates> remplacent les conditions de remboursement au niveau de <PackageData>. Les tarifs remboursables peuvent sont également mises en avant auprès des utilisateurs à l'aide d'autres options, modifier le schéma de votre message Transaction. En savoir plus sur ces options Règles relatives aux tarifs remboursables

L'exemple suivant montre le <Refundable> avec tous ses attributs définis:

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

Remarque:Nous vous recommandons de définir tous les attributs. Un flux un message d'avertissement concernant l'état est généré lorsqu'un ou plusieurs attributs sont non défini.

Si vous ne définissez aucun attribut, le tarif n'apparaît pas remboursables. Les attributs sont les suivants :

  • available (obligatoire) : défini sur 1 (ou true) pour indiquer si le tarif autorise un remboursement ; sinon défini sur 0 (ou false).
  • refundable_until_days: (obligatoire si available est true) spécifie Nombre de jours avant la date d'arrivée pendant lesquels un remboursement total peut être effectué demandée. La valeur de refundable_until_days doit être un nombre entier compris entre 0 et 330 inclus.
  • refundable_until_time: (fortement recommandé si available est true) spécifie à la dernière heure de la journée, à l'heure locale de l'hôtel, qu'une votre demande de remboursement sera traitée. Cela peut être combiné avec refundable_until_days pour spécifier, pour Exemple : "les remboursements sont possibles jusqu'à 16 h deux jours avant "check-in". Si refundable_until_time n'est pas défini, la valeur la valeur par défaut est minuit.

    La valeur de cet attribut utilise le format Heure.

Lorsque vous définissez les attributs, tenez compte des points suivants:

  • Si available ou refundable_until_days n'est pas défini, le tarif ne s'affiche pas comme remboursable.
  • Si available est 0 (ou false), les autres attributs sont ignorés. Le tarif ne s'affiche pas sous la forme remboursable même si l'un des autres attributs ou les deux sont définis.
<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 les informations que vous avez envoyées à <RoomData>. Pour en savoir plus, consultez <ph type="x-smartling-placeholder"></ph> Métadonnées des offres de chambres. Vous pouvez également utiliser cet identifiant pour faire référence à une salle commune dans un message Transaction unique lorsque vous définissez les données de la chambre.)
<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 un tarif éligible, quel que soit le nombre de personnes.

Si aucun tarif n'est disponible pour une seule personne, Google affiche le prix tarif le plus bas d'une chambre pour deux personnes. Notez que les tarifs pour une personne seule ne sont pas que si les prix d'une chambre pour deux personnes ou plus sont mis en cache un itinéraire.

Cet exemple fait référence à des métadonnées de chambres et de formules prédéfinies avec le paramètre Éléments <RoomID> et <PackageID>. Utiliser les <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 le paramètre Éléments <RoomID> et <PackageID>. Utiliser les <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 Room pour illustrer les prix possibles d'une chambre 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 d'invités. pour une chambre ou un séjour organisé. Le champ <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 taux est limité 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 Obligatoire ? 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

Dans l'exemple suivant, nous définissons un séjour et ses tarifs. en réponse à une requête de prix en temps réel pour laquelle l'utilisateur a spécifié l'adresse nombre et types d'invités. Ici, les <OccupancyDetails> -- 2 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 1 enfant. Ici, les <OccupancyDetails> sont renvoyées dans le <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 à 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> qui sont et ne peuvent accueillir que deux adultes et deux enfants. Ici, le 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>