Transaction (Données sur un établissement)

Requêtes

Syntaxe

Le message Transaction (Property Data) utilise la syntaxe suivante :

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
             id="message_ID"
             partner="partner_key">
  <PropertyDataSet action="[overlay|delta]">
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>HotelID</Property>
    <RoomData>
      <!-- (Required) One room ID per RoomData element -->
      <RoomID>RoomID</RoomID>
      <Name>
        <Text text="room_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="room_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the rate plans allowed for this room type to
        those listed here. If specified, don't specify AllowableRoomIDs. -->
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID</AllowablePackageID>
      </AllowablePackageIDs>
      <Capacity>max_number_of_occupants</Capacity>
      <AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
      <ChildCapacity>max_number_of_child_occupants</ChildCapacity>
      <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>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="bed_width"/>
             <Length unit="cm" number="bed_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>
    <PackageData>
      <!-- (Required) One package ID per PackageData element -->
      <PackageID>PackageID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the room types allowed for this rate plan to
        those listed here. If specified, don't specify AllowablePackageIDs. -->
      <AllowableRoomIDs>
        <AllowableRoomID>RoomID</AllowableRoomID>
      </AllowableRoomIDs>
      <!-- Add Loyalty point information -->
      <MilesIncluded>
        <LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
        <!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
        <NumberOfMiles>integer</NumberOfMiles>
      </MilesIncluded>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- 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>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Éléments et attributs

Le message Transaction (Données sur un établissement) contient les éléments et les attributs suivants :

Élément / @Attribut Occurrences Type Description
Transaction 1 Complex element Dans une implémentation ARI, il s'agit de l'élément racine d'un message définissant les types de chambres et les formules pour un même établissement.
Transaction / @timestamp 1 DateTime Date et heure de création de ce message.
Transaction / @id 1 string Identifiant unique pour ce message de demande. Cette valeur est renvoyée dans le message de réponse. Les caractères suivants sont autorisés : a-z, A-Z, 0-9, _ (trait de soulignement) et - (tiret).
Transaction / @partner 1 string Compte partenaire pour ce message. Cette valeur de chaîne correspond à la valeur "Partner key" (Clé partenaire) indiquée sur la page Paramètres du compte dans Hotel Center.

Remarque : Si vous avez un backend qui fournit des flux pour plusieurs comptes, cette valeur doit correspondre à la valeur de l'attribut ID spécifiée dans l'élément <RequestorID> de vos messages <OTA_HotelRateAmountNotifRQ> et <OTA_HotelAvailNotifRQ> pour le même compte.

Transaction / PropertyDataSet 1.. PropertyDataSet Conteneur permettant de définir les types de chambres et les formules pour un même établissement.

Il est recommandé d'envoyer <PropertyDataSet> une seule fois et de ne le mettre à jour que si des modifications sont nécessaires.

Transaction / PropertyDataSet / @action 0..1 enum

Type de mise à jour à appliquer aux définitions des prix de chambres.

Les valeurs valides sont les suivantes :

  • overlay : : remplace tous les éléments <RoomData> et <PackageData> définis précédemment pour l'établissement. Seuls les éléments <RoomData> et <PackageData> du message actuel sont valides.
  • delta : : ajoute les éléments <RoomData> et <PackageData> non définis précédemment, ou modifie les existants.

Cet attribut est facultatif et est défini par défaut sur delta si aucune valeur n'est spécifiée.

Transaction / PropertyDataSet / Property 1 string Identifiant unique de l'établissement. Cette valeur doit correspondre à l'identifiant de l'hôtel spécifié à l'aide de <id> dans l'élément <listing> du flux Hotel List Feed. L'ID de l'hôtel est également indiqué dans Hotel Center.
Transaction / PropertyDataSet / RoomData 0..n RoomData

Décrit une pièce.

Remarque : Vous devez indiquer au moins l'un des éléments <RoomData> ou <PackageData>.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Identifiant unique d'un type de chambre. Cette valeur est référencée à l'aide de l'attribut InvTypeCode dans l'élément <StatusApplicationControl> des messages <OTA_HotelAvailNotifRQ>, <OTA_HotelRateAmountNotifRQ> et <OTA_HotelInvCountNotifRQ>.
Transaction / PropertyDataSet / RoomData / Name 1 Name Conteneur pour le nom de la catégorie de chambre dans une ou plusieurs langues.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Spécifie le nom de la catégorie de chambre dans une langue.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string Nom de la catégorie de chambre dans la langue spécifiée par l'attribut language.
Transaction / PropertyDataSet / RoomData / Description 1 Name Conteneur pour la description de la catégorie de chambre dans une ou plusieurs langues.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Spécifie la description de la catégorie de chambre dans une langue.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string Description de la catégorie de chambre dans la langue spécifiée par l'attribut language.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string Code de langue à deux lettres.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Conteneur pour les éléments <AllowablePackageID>.

Si <AllowablePackageIDs> est spécifié, le type de chambre identifié par la valeur <RoomID> dans l'élément parent <RoomData> ne peut être associé qu'aux plans tarifaires définis par les éléments <AllowablePackageID>.

Si <AllowablePackageIDs> n'est pas spécifié, le type de chambre identifié par la valeur <RoomID> dans l'élément parent <RoomData> peut être associé à n'importe quel plan tarifaire.

Utilisez <AllowablePackageIDs> ou <AllowableRoomIDs>, mais pas les deux.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Spécifie la valeur PackageID d'un plan tarifaire pouvant être associé à ce type de chambre. Un plan tarifaire est défini par la combinaison d'une formule, de tarifs et d'une disponibilité. La valeur PackageID correspond à l'élément RatePlanCode dans les messages OTA_HotelRateAmountNotifRQ et OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer Nombre maximal d'adultes et d'enfants qu'une chambre peut matériellement accueillir. Cette valeur doit être supérieure ou égale à toutes les valeurs NumberOfGuests que vous envoyez avec des tarifs.

La valeur de <Capacity> doit être un entier positif compris entre 1 et 99 inclus. Pour obtenir un exemple, cliquez ici.

Remarque : Si <Capacity> n'est pas défini, le nombre d'occupants autorisés est considéré comme illimité. Si ce champ n'est pas défini et que ExtraGuestCharges ou AdditionalGuestAmounts sont définis, des prix peuvent être générés pour n'importe quel nombre d'occupants. Nous vous recommandons de définir <Capacity> si ExtraGuestCharges ou AdditionalGuestAmounts sont définis pour vous assurer que les prix ne sont pas affichés pour les options d'occupation non valides.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer Nombre maximal d'adultes qu'une chambre peut matériellement accueillir. Cette valeur doit être supérieure ou égale à toutes les valeurs NumberOfGuests que vous envoyez avec des tarifs.

La valeur de <AdultCapacity> doit être un entier positif compris entre 1 et 99 inclus. Pour obtenir un exemple, cliquez ici.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer Nombre maximal d'enfants qu'une chambre peut matériellement accueillir.

La valeur de <ChildCapacity> doit être un entier positif compris entre 1 et 99 inclus. Pour obtenir un exemple, cliquez ici.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings Paramètres qui peuvent limiter ou modifier les exigences d'occupation d'une salle.

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

  • <MinOccupancy> : nombre minimal de personnes pouvant séjourner dans une chambre. Par exemple, si cette option est définie sur 2, cette chambre ne peut pas être réservée pour une seule personne.

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

  • <MinAge> : âge minimal de tous les clients séjournant dans une chambre. Par exemple, si cette option est définie sur 18, cette chambre ne peut être réservée que pour les groupes dont tous les clients sont âgés de 18 ans ou plus.

    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.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL URL d'une photo de la chambre ou de l'offre de chambres sélectionnée, et sa légende facultative. Vous pouvez spécifier plusieurs éléments <PhotoURL> pour une chambre ou une offre de chambres.

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

  • <URL> : spécifie l'emplacement de la photo. Celui-ci doit être public (et non situé derrière un pare-feu) et inclure le protocole (http://).
  • <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 et l'attribut language spécifie un code de langue à deux lettres, par exemple en.
<PhotoURL>
 <URL>http://www.example.com/image1.jpg</URL>
 <Caption>
  <Text text="A bright way to enjoy your
   mornin' cuppa tea." language="en"/>
  <Text text="Une façon lumineuse pour profiter
   de votre tasse de thé." language="fr"/>
 </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / RoomFeatures 0..1 <RoomFeatures> Contient des informations sur les fonctionnalités de la salle.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 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 des futons.
  • japanese_western : chambre mêlant les styles japonais et occidental, avec des lits de style occidental et des futons de style japonais.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Contient autant de <Bed> que la pièce en possède. Veuillez noter que les futons japonais ne doivent pas être comptabilisé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 :
  • <Width> (facultatif) : spécifie la largeur du lit. Doit comporter l'attribut unit avec la valeur cm et l'attribut number avec la largeur du lit en centimètres (nombre entier).
  • <Length> (facultatif) : spécifie la longueur de la couchette. Doit comporter l'attribut unit avec la valeur cm et l'attribut number avec la longueur du lit en centimètres entiers.
Exemple :
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite 0.. enum Fournissez cet élément lorsque la chambre est une suite.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Fournissez cet élément lorsque la chambre est une chambre capsule.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Indique si la chambre est partagée avec d'autres occupants, comme les propriétaires ou d'autres clients. Les valeurs valides sont shared et private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Fournissez cet élément lorsque la chambre est un hébergement extérieur sans murs fixes, plomberie ni climatisation. Par exemple, les chambres d'hôtel ne sont pas considérées comme des hébergements de plein air, contrairement aux terrains de camping où les clients dorment dans des tentes et aux aires de camping-cars où les clients garent leurs propres véhicules de loisirs.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Indiquez cet élément lorsque la chambre est accessible aux personnes à mobilité réduite.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Indique si la chambre est non-fumeur ou fumeur. Les valeurs valides sont non_smoking et smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Contient des informations sur une salle de bains et des toilettes dans la chambre.

L'attribut est :

  • relation (facultatif) : indique la disposition de la baignoire et des toilettes les unes par rapport aux autres. Les valeurs valides sont together (par exemple, une salle de bain où la baignoire et les toilettes sont situées dans la même pièce) et separate (où la baignoire et les toilettes disposent chacune d'un espace dédié). Cet attribut ne doit pas être défini lorsque la chambre ne dispose pas à la fois d'une baignoire et de toilettes.

L'élément peut éventuellement comporter les éléments enfants suivants :

  • <Bath> (facultatif) : l'existence de cet élément indique que la chambre dispose d'une baignoire.

    Les attributs sont les suivants :

    • bathtub (facultatif) : indique que la salle de bain est équipée d'une baignoire. Les valeurs valides sont 0 (ou false) et 1 (ou true).
    • shower (facultatif) : indique que la salle de bain dispose d'une douche. Les valeurs valides sont 0 (ou false) et 1 (ou true).
  • <Toilet> (facultatif) : l'existence de cet élément indique que cette pièce dispose de toilettes.

    Les attributs sont les suivants :

    • electronic_bidet (facultatif) : indique que les toilettes sont équipées d'un bidet électronique. Les valeurs valides sont 0 (ou false) et 1 (ou true).
    • mobility_accessible (facultatif) : indique que les 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>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum Fournissez cet élément lorsque la chambre dispose d'un bain en plein air privé.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Indiquez cet élément lorsque la chambre est climatisée.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Indiquez cet élément lorsque la chambre dispose d'un balcon ou d'une véranda.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object Voici quelques options valides :

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

Transaction / PropertyDataSet / PackageData 0..n PackageData

Conteneur pour les éléments qui décrivent les conditions et les caractéristiques tarifaires ne figurant pas dans la description de la chambre.

Remarque : Vous devez indiquer au moins l'un des éléments <RoomData> ou <PackageData>.

Transaction / PropertyDataSet / PackageData / PackageID 1 string Dans ces messages, PackageID correspond à l'élément RatePlanCode des messages OTA_HotelRateAmountNotifRQ et OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name Conteneur pour le nom du séjour organisé dans une ou plusieurs langues.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text Spécifie le nom du séjour organisé dans une langue.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string Nom du séjour organisé dans la langue spécifiée par l'attribut language.
Transaction / PropertyDataSet / PackageData / Description 1 Description Conteneur pour la description du séjour organisé dans une ou plusieurs langues.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text Spécifie la description du séjour organisé dans une langue.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string Description du séjour organisé dans la langue spécifiée par l'attribut language.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string Code de langue à deux lettres.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Conteneur pour les éléments <AllowableRoomID>.

Si <AllowableRoomIDs> est spécifié, le plan tarifaire identifié par la valeur <PackageID> dans l'élément parent <PackageData> ne peut être associé qu'aux types de chambres définis par les éléments <AllowableRoomID>.

Si <AllowableRoomIDs> n'est pas spécifié, le plan tarifaire identifié par la valeur <PackageID> dans l'élément parent <PackageData> peut être associé à n'importe quel type de chambre.

Utilisez <AllowablePackageIDs> ou <AllowableRoomIDs>, mais pas les deux.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Spécifie la valeur RoomID d'un type de chambre pouvant être associé à ce plan tarifaire. Un type de chambre est défini dans un élément <RoomData>.
Transaction / PropertyDataSet / PackageData / MilesIncluded 0..1 MilesIncluded Ajoutez des informations sur les points de fidélité aux forfaits en fonction de la façon dont les forfaits ou les packages sont définis. Spécifiez l'élément <MilesIncluded> dans l'élément <PackageData> qui définit le plan tarifaire. <MilesIncluded> comporte l'élément enfant suivant :
  • LoyaltyCampaignID : ID unique qui identifie la campagne de fidélité spécifique qui a été configurée et mise à jour avec Google. Elle ajoute des points de fidélité au prix de l'hôtel.

    Pour inclure l'élément <MilesIncluded>, l'ID de campagne doit être configuré dans la configuration de la campagne de fidélité. Les détails spécifiques sur la façon dont Google utilise les points de fidélité dans les résultats sont déterminés par la configuration de la campagne de fidélité.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>

    Remarque : Dans de rares cas, vous pouvez inclure <NumberOfMiles> sous l'élément <MilesIncluded> pour spécifier que le forfait rapporte toujours un nombre fixe de points, quel que soit l'itinéraire. En savoir plus sur <MilesIncluded> dans <PackageData>

Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Permet de répertorier un tarif comme totalement remboursable ou annulable. Si cet élément n'est pas défini, aucune information relative au remboursement ne s'affiche.

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

Si vous ne définissez aucun attribut, le tarif ne s'affiche pas comme remboursable.

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 a la valeur 0 ou false, les autres attributs sont ignorés. Le tarif ne s'affiche pas comme remboursable même si l'un des autres attributs est défini (ou bien les deux).
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (Obligatoire) Définissez cet attribut sur 1 ou true pour indiquer si le tarif peut être totalement remboursé. Sinon, définissez-le sur 0 ou false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Obligatoire si available a la valeur true) Indique le nombre de jours avant la date d'arrivée où un remboursement total peut être demandé. La valeur de refundable_until_days doit être un entier compris entre 0 et 330 inclus.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (Vivement recommandé si available a la valeur true) Indique l'heure limite, en heure locale de l'hôtel, à laquelle un remboursement total peut être accordé. Cet attribut peut être associé à l'attribut refundable_until_days pour indiquer, par exemple, que "les remboursements sont possibles jusqu'à 16h deux jours avant la date d'arrivée". Si refundable_until_time n'est pas défini, la valeur par défaut est minuit.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Spécifie si le type de chambre inclut le petit-déjeuner. Les valeurs valides sont 0 (ou false) et 1 (ou true).

Il est préférable d'utiliser <Meals> au lieu de <BreakfastIncluded>.

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time Heure d'arrivée la plus proche possible, à l'heure locale de l'hôtel. L'heure doit être inférieure à 24:00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Heure de départ la plus tardive possible, en heure locale de l'hôtel.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Indique si la chambre inclut un accès sans frais à Internet, alors que ce service n'est pas compris dans d'autres chambres. Ne définissez pas cet élément dans un hôtel qui propose un accès sans frais à Internet dans toutes les chambres. Cet élément ne s'applique pas à l'accès Internet câblé ou sans fil non disponible dans les chambres. Les valeurs valides sont 0 (ou false) et 1 (ou true).
Transaction / PropertyDataSet / PackageData / Meals 0..1 Object Contient des informations sur les repas inclus dans ce forfait.

L'élément <Meals> comporte deux éléments enfants facultatifs, <Breakfast> et <Dinner>, qui comportent les attributs suivants :

  • included (obligatoire) : définissez cet attribut sur 1 (ou true) si le tarif inclut le petit-déjeuner ou le dîner. Sinon, définissez-le sur 0 ou false.
  • in_room (facultatif) : définissez cet attribut sur 1 (ou true) si les clients ont la possibilité de prendre le petit-déjeuner ou le dîner dans leur chambre. Sinon, définissez-le sur 0 (ou false).
  • in_private_space (facultatif) : définissez la valeur sur 1 (ou true) si les clients ont la possibilité de prendre le petit-déjeuner/dîner dans un espace (autre que la chambre dans laquelle ils séjournent) où ils peuvent éviter tout contact avec d'autres clients. Sinon, définissez la valeur sur 0 (ou false).
  • buffet (facultatif) : définissez cet attribut sur 1 (ou true) si le petit-déjeuner/dîner est servi sous forme de buffet. Sinon, définissez-le sur 0 (ou false).

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

Pour que les filtres de repas (no meals, breakfast only, dinner only et breakfast and dinner) fonctionnent, <Breakfast> et <Dinner> doivent être fournis avec l'attribut included.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Indique si une chambre inclut une place de parking sans frais, si le stationnement est normalement payant dans cet hôtel. Ne spécifiez aucune valeur pour cet élément si l'hôtel offre un accès sans frais au parking. Les valeurs valides sont 0 (ou false) et 1 (ou true). La valeur par défaut est false.
Transaction / PropertyDataSet / PackageData / PhotoURL 0..1 Object (Identique à <PhotoURL> dans <RoomData>, mais pour le package (par exemple, les photos de repas).)

Exemples

Données sur les chambres et les formules

Ci-dessous figure un exemple de base montrant comment définir les données sur les chambres et les formules d'un établissement dans un message Transaction (Données sur un établissement). L'attribut overlay permet de s'assurer que, si des données existent déjà de manière inattendue, toutes les données existantes sont supprimées et remplacées par les données figurant dans ce message :

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Description>
        <Text text="Room with a king bed" language="en"/>
      </Description>
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a king bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <MilesIncluded>
        <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
      </MilesIncluded>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <Description>
        <Text text="Free breakfast rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Ajouter un type de pièce

Ci-dessous figure un exemple d'ajout d'un type de chambre et d'une formule à des données <Transaction> existantes :

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_3</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_3</PackageID>
      <Name>
        <Text text="Non-Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="false"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Supprimer des types de chambres

Ci-dessous figure un exemple de suppression des types de chambres et des formules existants. Dans ce scénario, si les messages "Données de chambre et de formule" et "Ajouter un type de chambre" ont été précédemment envoyés à Google, les types de chambres King et Double n'existent plus une fois que Google a reçu le message affiché. Notez que la suppression des données de la formule affecte le plan tarifaire global tel qu'il est défini dans les messages Transaction (Données sur un établissement), OTA_HotelRateAmountNotifRQ et OTA_HotelAvailNotifRQ (en référençant la même valeur PackageID). Par conséquent, des mises à jour correspondantes à l'aide des autres types de messages peuvent être nécessaires pour refléter le fait que PackageID_2 et PackageID_3 ne sont plus définis ici.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a queen bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>


Limiter les plans tarifaires

Ci-dessous figure un exemple d'utilisation de l'élément <AllowablePackageIDs> afin de limiter les plans tarifaires autorisés pour un type de chambre. Dans cet exemple, le type de chambre Queen (RoomID_2) ne peut être associé qu'à la formule et au plan tarifaire identifiés comme PackageID_1.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Restreindre la capacité d'accueil

Voici un exemple d'utilisation des éléments <Capacity>, <AdultCapacity> et <ChildCapacity> pour définir des restrictions sur la capacité des chambres.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <Capacity>4</Capacity>
      <AdultCapacity>4</AdultCapacity>
      <ChildCapacity>3</ChildCapacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>
</Transaction>

La chambre double (RoomID_1) peut accueillir jusqu'à quatre personnes. De plus, il peut comprendre jusqu'à quatre adultes et trois enfants. Pour que cette salle puisse être réservée, les trois exigences de capacité doivent être remplies. Cette configuration est représentative d'une chambre typique avec deux lits pouvant chacun accueillir deux personnes. La capacité pour les enfants est inférieure d'une unité à la capacité totale, car la chambre doit comporter au moins un adulte.

Exemples étendus avec <RoomFeatures> et les repas

JapaneseHotelRoomStyle n'a pas de valeur par défaut. Si vous omettez une valeur, cela ne générera pas d'erreur XML, mais votre fiche ne s'affichera pas dans les résultats de recherche lorsque l'utilisateur filtrera par style de chambre ou par nombre de lits.

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 de style western avec deux lits double.

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

Style japonais sans lit

Voici un exemple de chambre de style japonais sans lit. Les informations sur les lits ne sont pas obligatoires pour les chambres de type 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>

Japonaise occidentale avec lit

Voici un exemple de chambre de style japanese_western avec un lit de taille king.

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

Si le partenaire ne dispose pas du nombre de lits dans les chambres japanese_western, consultez 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>


Repas

L'exemple suivant définit les métadonnées d'une chambre et d'un séjour organisé pour les repas, les photos, ainsi que les heures d'arrivée et de départ :

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Petit-déjeuner uniquement

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

Réponses

Syntaxe

Le message TransactionResponse (Property Data) utilise la syntaxe suivante :

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
                     id="message_ID"
                     partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</TransactionResponse>

Éléments et attributs

Le message TransactionResponse (Property Data) inclut les éléments et les attributs suivants :

Élément / @Attribut Occurrences Type Description
TransactionResponse 1 Complex element Élément racine indiquant le succès ou les problèmes liés à un message de requête Transaction reçu.
TransactionResponse / @timestamp 1 DateTime Date et heure de création de ce message.
TransactionResponse / @id 1 string Identifiant unique du message Transaction associé.
TransactionResponse / @partner 1 string Compte partenaire pour ce message.
TransactionResponse / Success 0..1 Success Indique que le message Transaction a été traité avec succès, sans avertissement, erreur ni échec.

Chaque message contient soit <Success>, soit <Issues>.

TransactionResponse / Issues 0..1 Issues Conteneur pour un ou plusieurs problèmes rencontrés lors du traitement du message Transaction.

Chaque message contient soit <Success>, soit <Issues>.

TransactionResponse / Issues / Issue 1..n Issue Description d'un avertissement, d'une erreur ou d'un échec survenu lors du traitement du message Transaction. Pour en savoir plus sur ces problèmes, consultez Messages d'erreur concernant l'état du flux.
TransactionResponse / Issues / Issue / @code 1 integer Identifiant du problème.
TransactionResponse / Issues / Issue / @status 1 enum

Type de problème rencontré.

Les valeurs valides sont warning, error et failure.

Exemples

Opération réussie

La réponse ci-dessous est une réponse à un message Transaction correctement traité.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Success/>
</TransactionResponse>

Problèmes

La réponse ci-dessous est une réponse à un message Transaction non traité en raison d'erreurs.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TransactionResponse>