Présentation
Cette API vous permet de définir des manières d'appliquer dynamiquement des actions à un tarif lorsque les conditions sont remplies (par exemple, pour ajuster le prix ou activer les remboursements). Contrairement à l'API Promotions, qui ne peut appliquer que les promotions éligibles offrant les remises les plus importantes, cette API applique des actions lorsque certaines conditions sont remplies, y compris les ajustements de prix susceptibles d'augmenter le prix final.
Requêtes
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 et les attributs suivants:
É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 correspond à la valeur "Partner key" (Clé partenaire) indiquée sur la 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 à la valeur de l'attribut |
RateModifications / @id | 1 | string | Identifiant unique de ce message de requête. 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 - (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 de tarif s'applique à un seul établissement. Remarque:Si plusieurs modifications de tarif peuvent être appliquées au même tarif, toutes les modifications sont appliquées. Aucun ordre spécifique n'est garanti. |
RateModifications / HotelRateModifications / @hotel_id | 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. |
RateModifications / HotelRateModifications / @action | 0..1 | enum | Si |
RateModifications / HotelRateModifications / ItineraryRateModification | 0..200 | ItineraryRateModification | Modification unique du tarif d'un établissement. Remarque:Les modifications de tarifs étant difficiles à déboguer, nous vous recommandons de les utiliser avec parcimonie. Contactez votre responsable de compte technique (TAM) pour les cas d'utilisation nécessitant plus de 200 modifications de tarif. |
RateModifications / HotelRateModifications / ItineraryRateModification / @id | 1 | string | Identifiant unique de la modification du tarif. Le nombre maximal de caractères autorisés est de 40. Les caractères suivants sont autorisés : a-z, A-Z, 0-9, _ (trait de soulignement), - (trait d'union) et . (point). |
RateModifications / HotelRateModifications / ItineraryRateModification / @action | 0..1 | enum | Si aucune valeur n'est spécifiée et qu'une modification de tarif ayant le même Si spécifié, la valeur doit être |
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 être effectuée 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 que la modification du tarif soit appliquée. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start | 0..1 | Date | Date de début (en fonction du fuseau horaire de l'établissement), incluse, de la plage de dates. Cette date doit être antérieure ou identique à la date end . Si start n'est pas spécifié, la plage de dates est effectivement 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 la plage de dates. Cette date doit être identique ou postérieure à la date start . Si end n'est pas spécifié, la plage de dates est effectivement 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 cette valeur n'est pas spécifiée, tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne spécifie un jour. Par exemple, "MTWHF" indique que les jours de la semaine sont autorisés dans la plage de dates. Les caractères suivants sont acceptés:
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 à 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é, il n'y a pas de 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é, il n'y a pas de valeur maximale. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | Conteneur pour une ou plusieurs plages de dates qui définissent le moment auquel l'arrivée doit avoir lieu pour que la modification du tarif soit appliquée. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange | 1..99 | DateRange | Plage de dates indiquant le moment auquel l'arrivée doit avoir lieu pour que la modification du tarif soit appliquée. Cet élément n'est pas obligatoire si vous supprimez 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), incluse, de la plage de dates. Cette date doit être antérieure ou identique à la date end . Si start n'est pas spécifié, la plage de dates est effectivement 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 la plage de dates. Cette date doit être identique ou postérieure à la date start . Si end n'est pas spécifié, la plage de dates est effectivement 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 cette valeur n'est pas spécifiée, tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne spécifie un jour. Par exemple, "MTWHF" indique que les jours de la semaine sont autorisés dans la plage de dates. Les caractères suivants sont acceptés:
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 auquel le départ doit avoir lieu pour que la modification du tarif soit appliquée. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange | 1..99 | DateRange | Plage de dates indiquant le moment auquel le départ doit avoir lieu pour que la modification du tarif soit appliquée. Cet élément n'est pas obligatoire si vous supprimez 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), incluse, de la plage de dates. Cette date doit être antérieure ou identique à la date end . Si start n'est pas spécifié, la plage de dates est effectivement 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 la plage de dates. Cette date doit être identique ou postérieure à la date start . Si end n'est pas spécifié, la plage de dates est effectivement 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 cette valeur n'est pas spécifiée, tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne spécifie un jour. Par exemple, "MTWHF" indique que les jours de la semaine sont autorisés dans la plage de dates. Les caractères suivants sont acceptés:
Toute combinaison de caractères est valide. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices | 0..1 | Devices | Conteneur permettant de répertorier les appareils des utilisateurs éligibles à la modification du tarif. Si cette valeur est spécifiée, la modification du tarif n'est appliquée que si l'utilisateur correspond à l'un des appareils listés. S'il n'est pas spécifié, la modification du tarif n'est pas limitée. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device | 1..3 | Device | Définit un type d'appareil utilisateur éligible à la modification du tarif. |
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 débit en multipliant à la fois AmountBeforeTax et AmountAfterTax par le multiplicateur spécifié |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | AmountBeforeTax et AmountAfterTax sont multipliés 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 correspond à un tarif à une définition dans votre fichier de définition des règles d'offres.
Remarques :
|
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:
|
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available | 1 | boolean | (Obligatoire) Définissez la valeur sur 1 ou true pour indiquer si le tarif peut être intégralement remboursé. Sinon, définissez-le sur 0 ou false . |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Obligatoire si available est défini sur 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. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time | 0..1 | Time | (Recommandé si available est défini sur true ) Spécifie l'heure limite, en heure locale de l'hôtel, à laquelle un remboursement intégral peut être accordé. Cette valeur peut être combinée à refundable_until_days pour spécifier, par exemple, que "les remboursements sont possibles jusqu'à 16h deux jours avant l'arrivée". Si refundable_until_time n'est pas défini, 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'un prix valide soit associé ou non. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | Définit les limites de durée de séjour pendant lesquelles cette modification de tarif peut être appliquée. 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 de AmountBeforeTax ou AmountAfterTax ) qui doit être dépassée 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. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans | 0..1 | RatePlans | Conteneur pour la liste des plans tarifaires auxquels la modification du tarif s'applique. Si <RatePlans> n'est pas spécifié, la modification du 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 de séjours organisés, de tarifs et de disponibilités, telle que définie dans les messages Transaction (Données sur un établissement), OTA_HotelRateAmountNotifRQ et OTA_HotelAvailNotifRQ, et telle qu'identifiée par l'identifiant PackageID. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id | 1 | string | Identifiant unique du plan tarifaire. Cette valeur correspond à la valeur PackageID dans <PackageData> dans un message Transaction (Données sur un établissement), et dans l'attribut RatePlanCode dans <StatusApplicationControl> dans les messages <OTA_HotelRateAmountNotifRQ> et <OTA_HotelAvailNotifRQ> .
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é, 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 dans un élément <RoomData> d'un message Transaction (Données sur un établissement) et est référencé à l'aide de sa valeur <RoomID> . (Sa valeur <RoomID> est également référencée par l'attribut InvTypeCode dans les messages OTA_HotelRateAmountNotifRQ.) |
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 le mode d'application de la modification du tarif (pour tenir compte des tarifs saisonniers, par exemple). |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application | 1 | enum | Décrit comment la modification du tarif doit être appliquée. Les valeurs possibles sont les suivantes :
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 appliquée. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start | 0..1 | Date | Date de début (en fonction du fuseau horaire de l'établissement), incluse, de la plage de dates. Cette date doit être antérieure ou identique à la date end . Si start n'est pas spécifié, la plage de dates est effectivement 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 la plage de dates. Cette date doit être identique ou postérieure à la date start . Si end n'est pas spécifié, la plage de dates est effectivement 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 cette valeur n'est pas spécifiée, tous les jours sont autorisés dans la plage de dates. Chaque caractère de la chaîne spécifie un jour. Par exemple, "MTWHF" indique que les jours de la semaine sont autorisés dans la plage de dates. Les caractères suivants sont acceptés:
Toute combinaison de caractères est valide. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | Si une valeur est spécifiée, la modification du tarif n'est appliquée que si l'utilisateur se trouve dans l'un des pays spécifiés. Si aucune valeur n'est spécifiée, la modification du tarif est appliquée quelle que soit la zone géographique de l'utilisateur. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | Type de spécification UserCountries.
Les valeurs valides sont Si le Si le Si le |
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, tel que DE ou FR . Notez que, pour certains pays, le code pays CLDR est différent du code pays ISO à deux lettres. 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 établissement:
<?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 d'un établissement:
<?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 une propriété avec une ou plusieurs nouvelles modifications de tarif. Lorsque action="overlay"
, toutes les modifications de tarif stockées sont supprimées avant de stocker 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 aux seuls 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
comporte les éléments et attributs suivants:
Élément / @Attribut | Occurrences | Type | Description |
---|---|---|---|
RateModifications | 1 | Complex element | Élément racine indiquant le succès ou les problèmes liés à un message de requête RateModifications reçu. |
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.
Chaque message contient soit |
RateModificationsResponse / Issues | 0..1 | Issues | Conteneur pour un ou plusieurs problèmes rencontrés lors du traitement du message RateModifications.
Chaque message contient soit |
RateModificationsResponse / Issues / Issue | 1..n | Issue | Description d'un avertissement, d'une erreur ou d'un échec survenu lors du traitement du message RateModifications. Pour en savoir plus sur ces problèmes, consultez Messages d'erreur concernant l'état du flux. |
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 |
Exemples
Opération réussie
La réponse ci-dessous est une réponse à un message RateModifications correctement traité.
<?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 suivante 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>