Modifications des tarifs

Présentation

Cette API vous permet de définir des façons d'appliquer dynamiquement des actions à un tarif à chaque fois sont remplies, par exemple en ajustant le prix ou en autorisant le remboursement. Contrairement à l'API Promotions, qui ne peut s'appliquer promotions éligibles offrant les remises les plus importantes, cette API applique les actions lorsque certaines conditions sont remplies, y compris les ajustements de prix finalement augmenter le prix final.

Demandes

Syntaxe

Le message RateModifications utilise la syntaxe suivante:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <CheckinDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckoutDates>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Éléments et attributs

Le message RateModifications contient les éléments suivants et Attributs:

Élément / @Attribut Occurrences Type Description
RateModifications 1 Complex element Élément racine d'un message de modification des tarifs.
RateModifications / @partner 1 string Compte du partenaire pour ce message. Cette valeur de chaîne est la "Clé partenaire" valeur indiquée sur le <ph type="x-smartling-placeholder"></ph> Page "Paramètres du compte" dans Hotel Center.

Remarque:Si vous disposez d'un backend qui fournit des flux pour plusieurs comptes, cette valeur doit correspondre à l'ID spécifiée dans <RequestorID> de votre <OTA_HotelRateAmountNotifRQ> et <OTA_HotelAvailNotifRQ> messages pour le même Google Cloud.

RateModifications / @id 1 string Identifiant unique de ce message de requête. Cette valeur est renvoyée dans le message de réponse. Caractères autorisés : a-z, A-Z, 0-9, _ (trait de soulignement) et - (trait d'union).
RateModifications / @timestamp 1 DateTime Date et heure de création de ce message.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Modifications des tarifs d'un établissement. Chaque modification tarifaire s'applique à une seule propriété.

Remarque:Si plusieurs modifications tarifaires peuvent être appliquées au même tarif, toutes les modifications sont appliquées. Aucune commande spécifique n’est sont garantis.

RateModifications / HotelRateModifications / @hotel_id 1 string Identifiant unique de l'établissement. Cette valeur doit correspondre au Identifiant de l'hôtel spécifié à l'aide de <id> dans l'élément <listing> dans le flux Hotel List Feed. L'ID de l'hôtel est également indiqué dans Hotel Center.
RateModifications / HotelRateModifications / @action 0..1 enum

Si action n'est pas spécifié, les modifications dans cet élément sont ajoutés ou mis à jour pour cet hôtel. Si action="overlay" est spécifié, puis tous les éléments précédemment définis les modifications apportées à cet hôtel sont d'abord supprimées. Ensuite, les modifications spécifiées ici sont écrites. Si action="overlay" est utilisé et aucune modification n'est spécifiée dans cet élément, alors les modifications apportées à cet hôtel sont supprimées.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Modification unique du tarif d'un établissement.

Remarque:Les modifications de tarifs étant difficiles à déboguer, nous recommandez de les utiliser avec parcimonie. Contactez votre responsable de compte technique (TAM) pour les cas d'utilisation nécessitent plus de 200 modifications de tarif.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Identifiant unique de la modification du tarif. Le nombre maximal de Le nombre de caractères autorisés est de 40. Caractères autorisés : a-z, A-Z, 0-9, _ (trait de soulignement), - (trait d'union) et . (point).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

S'il n'est pas spécifié et qu'une modification de tarif avec le même id n'est pas stockée, alors cette modification de tarif est enregistrée. Sinon, s'il n'est pas spécifié et qu'une modification de tarif avec le même id est stockée, la modification du tarif existante est alors mis à jour.

Si spécifié, la valeur doit être "delete". Si "delete" est spécifié, la modification de tarif stockée avec le même id est supprimée. Lorsque vous utilisez "delete", n'incluez aucun élément enfant dans <ItineraryRateModification> De plus, "delete" n'est pas autorisé conjointement avec <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Conteneur pour une ou plusieurs plages de dates qui définissent le moment auquel la réservation doit se produire pour que la modification du tarif soit appliquée.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Plage de dates indiquant le moment auquel la réservation doit être effectuée pour le tarif à appliquer.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Date de début (en fonction du fuseau horaire de l'établissement), date de début incluse, la plage de dates. Cette date doit être antérieure ou identique à la date Date end. Si start n'est pas spécifié, la date est en fait illimitée en termes de date de début.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Date de fin (en fonction du fuseau horaire de l'établissement), incluse, de l'événement la plage de dates. Cette date doit être identique ou postérieure au Date start. Si end n'est pas spécifié, la date est en réalité illimitée en termes de date de fin.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Jours de la semaine autorisés dans la plage de dates. Si ce n'est pas le cas tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne indique un jour. Par exemple, « MTWHF ». spécifie que les jours de la semaine sont autorisés dans la plage de dates.

Les caractères suivants sont acceptés:

  • M pour lundi
  • T pour mardi
  • W pour mercredi
  • H pour jeudi
  • F pour vendredi
  • S pour samedi
  • U pour dimanche

Toute combinaison de caractères est valide.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Spécifie la période au cours de laquelle la réservation doit être effectuée par rapport au la date d'arrivée (en fonction du fuseau horaire de l'établissement). Par exemple, la période de réservation peut être définie sur au moins 7 jours, mais pas plus de 180 jours. avant l'arrivée.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Nombre minimal de jours avant l'arrivée où la réservation doit être effectuée pour que la modification du tarif soit appliquée. Si cet attribut n'est pas spécifié, n'est pas un minimum.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Nombre maximal de jours avant l'arrivée où la réservation doit être effectuée pour que la modification du tarif soit appliquée. Si cet attribut n'est pas spécifié, n'est pas un maximum.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Conteneur pour une ou plusieurs plages de dates qui définissent le moment auquel se produire pour que la modification du tarif soit appliquée.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Plage de dates indiquant à quel moment l'arrivée doit avoir lieu pour le tarif à appliquer. Cet élément n'est pas obligatoire si vous la suppression d'une ou plusieurs modifications de tarif.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Date de début (en fonction du fuseau horaire de l'établissement), date de début incluse, la plage de dates. Cette date doit être antérieure ou identique à la date Date end. Si start n'est pas spécifié, la date est en fait illimitée en termes de date de début.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Date de fin (en fonction du fuseau horaire de l'établissement), incluse, de l'événement la plage de dates. Cette date doit être identique ou postérieure au Date start. Si end n'est pas spécifié, la date est en réalité illimitée en termes de date de fin.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Jours de la semaine autorisés dans la plage de dates. Si ce n'est pas le cas tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne indique un jour. Par exemple, « MTWHF ». spécifie que les jours de la semaine sont autorisés dans la plage de dates.

Les caractères suivants sont acceptés:

  • M pour lundi
  • T pour mardi
  • W pour mercredi
  • H pour jeudi
  • F pour vendredi
  • S pour samedi
  • U pour dimanche

Toute combinaison de caractères est valide.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Conteneur pour une ou plusieurs plages de dates qui définissent le moment du départ doit se produire pour que la modification du tarif soit appliquée.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Plage de dates indiquant à quel moment le départ doit avoir lieu pour le tarif à appliquer. Cet élément n'est pas obligatoire si vous la suppression d'une ou plusieurs modifications de tarif.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Date de début (en fonction du fuseau horaire de l'établissement), date de début incluse, la plage de dates. Cette date doit être antérieure ou identique à la date Date end. Si start n'est pas spécifié, la date est en fait illimitée en termes de date de début.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Date de fin (en fonction du fuseau horaire de l'établissement), incluse, de l'événement la plage de dates. Cette date doit être identique ou postérieure au Date start. Si end n'est pas spécifié, la date est en réalité illimitée en termes de date de fin.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Jours de la semaine autorisés dans la plage de dates. Si ce n'est pas le cas tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne indique un jour. Par exemple, « MTWHF ». spécifie que les jours de la semaine sont autorisés dans la plage de dates.

Les caractères suivants sont acceptés:

  • M pour lundi
  • T pour mardi
  • W pour mercredi
  • H pour jeudi
  • F pour vendredi
  • S pour samedi
  • U pour dimanche

Toute combinaison de caractères est valide.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Conteneur permettant de lister les appareils des utilisateurs éligibles à modification du tarif. Si une valeur est spécifiée, la modification du tarif n'est appliquée appliqué si l'utilisateur correspond à l'un des appareils listés. Si aucune valeur n'est spécifiée, cela ne limite pas l'application de la modification du tarif.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Définit un type d'appareil d'utilisateur éligible à ce tarif modification.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Type d'appareil. La valeur doit être desktop, tablet ou mobile.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

Actions appliquées au tarif si toutes les conditions spécifiées sont remplies.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Modifie le taux en multipliant à la fois AmountBeforeTax et AmountAfterTax par le multiplicateur spécifié
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float AmountBeforeTax et AmountAfterTax sont tous les deux multipliée par cette valeur.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modifie le tarif en lui appliquant l'identifiant de règle d'offres spécifié.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Cet identifiant fait correspondre un tarif à une définition dans votre Fichier de définition des règles d'offres. Remarques: <ph type="x-smartling-placeholder">
    </ph>
  • Le nombre maximal de caractères pour ce champ est de 40.
  • Chaque tarif ne peut être associé qu'à une seule règle d'offres.
  • Si plusieurs modifications appliquent un identifiant de règle d'offres, l'identifiant de règle d'offres le plus petit d'un point de vue lexicographique le taux.
  • Si cet identifiant ne correspond à aucune règle d'offres de votre définition de règle d'offres , il est considéré comme inéligible.
Voir cet article pour en savoir plus sur les différents tarifs préférentiels dans l'interface utilisateur de traitement.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Remplace le remboursement du tarif par la valeur spécifiée.

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

  • Cette action de modification réécrit entièrement la valeur "Remboursable" d'un tarif éligible. et pas seulement les champs renseignés.
  • Si available ou refundable_until_days est 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.
  • Il est recommandé de définir refundable_until_time. si ce n'est pas le cas définie, l'heure la plus proche (minuit) est utilisée.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Obligatoire) Définissez la valeur sur 1 ou true pour indiquer si le tarif autorise un remboursement ; sinon défini sur 0 ou false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (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.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Recommandé si available est défini sur true) Spécifie à la dernière heure de la journée, à l'heure locale de l'hôtel, qu'une demande de remboursement accepté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.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Remplace la disponibilité du tarif par la valeur spécifiée. Nous pouvons uniquement définir le tarif sur unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Si la valeur est status="unavailable", le tarif est traité comme s'il n'était pas disponible, qu'il existe ou non un prix valide pour
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Définit les limites de durée de séjour pendant lesquelles cette modification du taux peut être appliqué. La modification du tarif n'est pas appliquée lorsque la durée du séjour est en dehors des limites minimale et maximale.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Nombre minimal de nuits autorisées dans le séjour pour que la modification du tarif soit appliquée. Si cet attribut n'est pas spécifié, il n'y a pas de minimum.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Nombre maximal de nuits autorisées dans le séjour pour que la modification du tarif soit appliquée. Si cet attribut n'est pas spécifié, il n'y a pas de valeur maximale.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Spécifie la somme minimale des prix à la journée des chambres (en utilisant la valeur la plus élevée des AmountBeforeTax ou AmountAfterTax) qui doit être dépassé pour que la modification du tarif soit appliquée.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Valeur à dépasser pour que la modification du tarif soit appliquée appliquée.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Conteneur pour la liste des plans tarifaires auxquels la modification du tarif a été appliquée s'applique. Si <RatePlans> n'est pas spécifié, le tarif s'applique à tous les plans tarifaires.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Spécifie un plan tarifaire. Un plan tarifaire est défini par une combinaison le forfait, les tarifs et la disponibilité, tels que définis dans l'article (Données sur un établissement), OTA_HotelRateAmountNotifRQ et OTA_HotelAvailNotifRQ et tel qu'identifié par le PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Identifiant unique du plan tarifaire. Cette valeur correspond au Valeur PackageID dans <PackageData> dans un message Transaction (Données sur un établissement), Attribut RatePlanCode dans <StatusApplicationControl> dans les deux cas <OTA_HotelRateAmountNotifRQ> et <OTA_HotelAvailNotifRQ> messages. Le nombre maximal de caractères autorisés est de 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Conteneur pour la liste des types de chambres auxquels la modification du tarif s'applique. La modification du tarif est appliquée à chaque <RoomType>. spécifié. Si <RoomTypes> n'est pas spécifié, le la modification du tarif s'applique à toutes les chambres.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Spécifie un type de chambre. Un type de chambre est défini Élément <RoomData> dans une Transaction (Données sur un établissement), référencée à l'aide de sa valeur <RoomID>. (Il est La valeur <RoomID> est également référencée par le Attribut InvTypeCode dans OTA_HotelRateAmountNotifRQ messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string Identifiant unique de l'inventaire (type de chambre). Cette valeur correspond à <RoomID> dans un message Transaction (Données sur un établissement). Le nombre maximal de caractères autorisés est de 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Conteneur pour une ou plusieurs plages de dates qui déterminent la manière modification du tarif est appliquée, par exemple pour tenir compte des tarifs saisonniers.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Décrit comment la modification du tarif doit être appliquée.

Les valeurs valides sont les suivantes :

  • all: applique la modification du tarif à chaque nuit de séjour si toutes les dates du séjour se chevauchent. avec les dates de séjour.
  • any: applique la modification du tarif à toutes les nuits du le séjour si une date du séjour chevauche une date dans la plage de dates du séjour.

Cet attribut doit toujours être spécifié.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Plage de dates spécifiant les dates auxquelles la modification du tarif doit être effectuée appliquée.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Date de début (en fonction du fuseau horaire de l'établissement), date de début incluse, la plage de dates. Cette date doit être antérieure ou identique à la date Date end. Si start n'est pas spécifié, la date est en fait illimitée en termes de date de début.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Date de fin (en fonction du fuseau horaire de l'établissement), incluse, de l'événement la plage de dates. Cette date doit être identique ou postérieure au start la date de début. Si end n'est pas spécifié, la date est en réalité illimitée en termes de date de fin.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Jours de la semaine autorisés dans la plage de dates. Si ce n'est pas le cas tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne indique un jour. Par exemple, « MTWHF ». spécifie que les jours de la semaine sont autorisés dans la plage de dates.

Les caractères suivants sont acceptés:

  • M pour lundi
  • T pour mardi
  • W pour mercredi
  • H pour jeudi
  • F pour vendredi
  • S pour samedi
  • U pour dimanche

Toute combinaison de caractères est valide.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Si ce paramètre est spécifié, la modification du tarif n'est appliquée que si l'utilisateur situé dans l'un des pays spécifiés. S'il n'est pas spécifié, le tarif s'applique quelle que soit la position géographique de l'utilisateur.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Type de spécification UserCountries.

Les valeurs valides sont include et exclude

Si la propriété UserCountries type est définie sur include, la modification du tarif s'applique les utilisateurs des pays répertoriés.

Si la type de UserCountries est exclude, la modification du tarif s'applique aux utilisateurs en dehors des pays listés.

Si la propriété UserCountries type n'est pas définie, elle est traitée comme include et la modification du tarif s'applique aux utilisateurs des pays listés.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Spécifie le pays de l'utilisateur autorisé pour la modification du tarif.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Un code pays CLDR comme DE ou FR. Notez que, pour certains pays, le code pays CLDR n'est pas le même que les codes ISO à deux lettres code pays. De plus, les codes de région CLDR ne sont pas acceptés.

Exemples

Message de base

L'exemple suivant présente un message RateModifications de base:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Supprimer une modification de tarif

L'exemple suivant montre comment supprimer une modification de tarif pour un :

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

Supprimer toutes les modifications tarifaires

L'exemple suivant montre comment supprimer toutes les modifications de tarif pour un :

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


Superposer toutes les modifications tarifaires

L'exemple suivant montre comment superposer <HotelRateModifications> pour avec une ou plusieurs modifications de tarif. Quand ? action="overlay", toutes les modifications de tarif stockées sont supprimées avant en stockant les modifications de tarif spécifiées dans le message actuel:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Actions de modification multiples

L'exemple suivant montre comment effectuer plusieurs actions de modification à la fois:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Désactiver un plan tarifaire pour les pays des utilisateurs

L'exemple suivant montre comment limiter un plan tarifaire à Utilisateurs japonais (JP) :

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Réponses

Syntaxe

Le message RateModificationsResponse utilise la syntaxe suivante:

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

Éléments et attributs

Le message RateModificationsResponse contient les éléments suivants : éléments et attributs:

Élément / @Attribut Occurrences Type Description
RateModifications 1 Complex element Élément racine indiquant le succès ou les problèmes d'une réponse Message de requête RateModifications.
RateModificationsResponse / @timestamp 1 DateTime Date et heure de création de ce message.
RateModificationsResponse / @id 1 string Identifiant unique issu du message RateModifications associé.
RateModificationsResponse / @partner 1 string Compte du partenaire pour ce message.
RateModificationsResponse / Success 0..1 Success Indique que le message RateModifications a bien été traité sans avertissement, erreur ni échec.

La valeur <Success> ou <Issues> est présentes dans chaque message.

RateModificationsResponse / Issues 0..1 Issues Conteneur pour un ou plusieurs problèmes rencontrés lors du traitement de la RateModifications.

La valeur <Success> ou <Issues> est présentes dans chaque message.

RateModificationsResponse / Issues / Issue 1..n Issue La description d'un avertissement, d'une erreur ou d'un échec rencontré pendant le traitement du message RateModifications. Des détails sur ces problèmes peuvent être trouvé dans Erreur d'état du flux Messages.
RateModificationsResponse / Issues / Issue / @code 1 integer Identifiant du problème.
RateModificationsResponse / 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 à une erreur RateModifications traitée avec succès. .

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

Problèmes

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

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