Überblick
Mit dieser API können Sie Möglichkeiten definieren, wie Aktionen dynamisch auf einen Preis angewendet werden, wenn bestimmte Bedingungen erfüllt sind, z. B. durch Anpassen des Preises oder Aktivieren der Erstattungsfähigkeit. Im Gegensatz zur Promotions API, die nur zulässige Angebote mit den höchsten Rabatten anwenden kann, wendet diese API alle Aktionen an, wenn bestimmte Bedingungen erfüllt sind, einschließlich Preisanpassungen, die letztendlich den Endpreis erhöhen können.
Anfragen
Syntax
Die Nachricht RateModifications
verwendet die folgende Syntax:
<?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>
Elemente und Attribute
Die Nachricht RateModifications
enthält die folgenden Elemente und Attribute:
Element / @Attribut | Häufigkeit | Typ | Beschreibung |
---|---|---|---|
RateModifications | 1 | Complex element | Das Stammelement einer Nachricht zu Preisänderungen. |
RateModifications / @partner | 1 | string | Das Partnerkonto für diese Nachricht. Dieser Stringwert ist der Wert für „Partnerschlüssel“, der im Hotel Center auf der
Seite „Kontoeinstellungen“ aufgeführt ist.
Hinweis: Wenn Sie ein Backend haben, das Feeds für mehrere Konten bereitstellt, muss dieser Wert mit dem Attributwert |
RateModifications / @id | 1 | string | Eine eindeutige Kennung für diese Anfragenachricht. Dieser Wert wird in der Antwortnachricht zurückgegeben. Zulässige Zeichen sind a–z, A–Z, 0–9, _ (Unterstrich) und - (Bindestrich). |
RateModifications / @timestamp | 1 | DateTime | Erstellungsdatum und -uhrzeit der Nachricht. |
RateModifications / HotelRateModifications | 0..n | HotelRateModifications | Preisänderungen für eine Unterkunft. Jede Preisänderung gilt für eine einzelne Unterkunft. Hinweis: Wenn mehrere Preisänderungen auf denselben Preis angewendet werden können, werden alle Änderungen angewendet. Eine bestimmte Reihenfolge wird nicht garantiert. |
RateModifications / HotelRateModifications / @hotel_id | 1 | string | Die eindeutige Kennung für die Unterkunft. Dieser Wert muss mit der Hotel-ID übereinstimmen, die mit
<id> im Element <listing> des Hotellistenfeeds angegeben wurde. Die Hotel-ID ist auch im Hotel Center aufgeführt. |
RateModifications / HotelRateModifications / @action | 0..1 | enum | Wenn |
RateModifications / HotelRateModifications / ItineraryRateModification | 0..200 | ItineraryRateModification | Eine einzelne Preisänderung für eine Unterkunft. Hinweis:Preisänderungen sind schwierig zu debuggen und sollten daher sparsam eingesetzt werden. Wenden Sie sich bei Anwendungsfällen, für die mehr als 200 Preisänderungen erforderlich sind, an Ihren Technical Account Manager (TAM). |
RateModifications / HotelRateModifications / ItineraryRateModification / @id | 1 | string | Eine eindeutige Kennung für die Preisänderung. Es sind maximal 40 Zeichen zulässig. Zulässige Zeichen sind a–z, A–Z, 0–9, _ (Unterstrich), - (Bindestrich) und . (Punkt). |
RateModifications / HotelRateModifications / ItineraryRateModification / @action | 0..1 | enum | Wenn keine Angabe erfolgt und keine Preisänderung mit derselben Wenn angegeben, muss der Wert |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates | 0..1 | BookingDates | Ein Container für einen oder mehrere Zeiträume, die definieren, wann eine Buchung erfolgen muss, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann eine Buchung erfolgen muss, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start | 0..1 | Date | Das einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss vor dem end -Datum liegen oder mit diesem übereinstimmen. Wird start nicht angegeben, ist der Zeitraum in Bezug auf das Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end | 0..1 | Date | Das einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem Datum start übereinstimmen oder danach liegen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Wenn nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispielsweise gibt „MTWHF“ an, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen sind:
Jede Zeichenkombination ist gültig. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow | 0..1 | BookingWindow | Gibt den Zeitraum an, in dem die Buchung relativ zum Check-in-Datum erfolgen muss (basierend auf der Zeitzone der Unterkunft). Beispielsweise kann der Reservierungszeitraum auf mindestens 7 Tage, aber nicht mehr als 180 Tage vor dem Check-in festgelegt werden. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min | 0..1 | integer | Die Mindestanzahl von Tagen vor dem Check-in, an denen eine Buchung erfolgen muss, damit die Preisänderung angewendet wird. Wenn keine Angabe gemacht wird, gibt es keine Mindestanzahl. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max | 0..1 | integer | Die maximale Anzahl von Tagen vor dem Check-in, an denen eine Buchung erfolgen muss, damit die Preisänderung angewendet wird. Wenn nicht angegeben, gibt es kein Maximum. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | Ein Container für einen oder mehrere Zeiträume, die definieren, wann ein Check-in erfolgen muss, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann ein Check-in erfolgen muss, damit die Preisänderung angewendet wird. Dieses Element ist nicht erforderlich, wenn Sie eine oder mehrere Preisänderungen löschen. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start | 0..1 | Date | Das einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss vor dem end -Datum liegen oder mit diesem übereinstimmen. Wird start nicht angegeben, ist der Zeitraum in Bezug auf das Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end | 0..1 | Date | Das einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem Datum start übereinstimmen oder danach liegen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Wenn nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispielsweise gibt „MTWHF“ an, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen sind:
Jede Zeichenkombination ist gültig. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates | 0..1 | CheckoutDates | Ein Container für einen oder mehrere Zeiträume, die definieren, wann ein Check-out erfolgen muss, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann ein Check-out erfolgen muss, damit die Preisänderung angewendet wird. Dieses Element ist nicht erforderlich, wenn Sie eine oder mehrere Preisänderungen löschen. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start | 0..1 | Date | Das einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss vor dem end -Datum liegen oder mit diesem übereinstimmen. Wird start nicht angegeben, ist der Zeitraum in Bezug auf das Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end | 0..1 | Date | Das einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem Datum start übereinstimmen oder danach liegen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Wenn nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispielsweise gibt „MTWHF“ an, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen sind:
Jede Zeichenkombination ist gültig. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices | 0..1 | Devices | Container zum Auflisten der Nutzergeräte, für die eine Preisänderung möglich ist. Wenn angegeben, wird die Preisänderung nur angewendet, wenn der Nutzer einem der aufgeführten Geräte entspricht. Wenn keine Angabe erfolgt, schränkt dies nicht die Anwendung der Preisänderung ein. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device | 1..3 | Device | Definiert einen Typ von Nutzergerät, auf dem die Preisänderung möglich ist. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type | 1 | enum | Ein Gerätetyp. Der Wert muss desktop , tablet oder mobile sein. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions | 1 | ModificationActions | Aktionen, die auf den Preis angewendet werden, wenn alle angegebenen Bedingungen erfüllt sind. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | Ändert den Preis durch Multiplizieren von AmountBeforeTax und AmountAfterTax mit dem angegebenen Multiplikator |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | Sowohl AmountBeforeTax als auch AmountAfterTax werden mit diesem Wert multipliziert. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule | 0..1 | RateRule | Ändert den Preis durch Anwendung der angegebenen Preisregel-ID. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id | 1 | string | Diese ID gleicht einen Preis mit einer Definition in Ihrer Datei zur Definition der Preisregel ab.
Hinweis:
|
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | Überschreibt die Erstattungsfähigkeit des Preises mit dem angegebenen Wert.
Beachten Sie beim Festlegen der Attribute Folgendes:
|
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available | 1 | boolean | (Erforderlich) Legen Sie 1 oder true fest, um anzugeben, ob für den Preis eine vollständige Erstattung möglich ist. Andernfalls geben Sie 0 oder false an. |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Erforderlich, wenn available den Wert true hat) Gibt die Anzahl der Tage vor dem Check-in an, innerhalb derer eine vollständige Erstattung beantragt werden kann. Der Wert für refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time | 0..1 | Time | (Empfohlen, wenn available den Wert true hat) Gibt die späteste Tageszeit in der Ortszeit des Hotels an, bis zu der ein vollständiger Erstattungsantrag berücksichtigt wird. Dies kann mit refundable_until_days kombiniert werden, um beispielsweise anzugeben, dass „Erstattungen bis 16:00 Uhr zwei Tage vor dem Check-in möglich sind“. Wenn refundable_until_time nicht festgelegt ist, wird Mitternacht als Standardeinstellung verwendet. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability | 0..1 | Availability | Überschreibt die Verfügbarkeit des Preises mit dem angegebenen Wert.
Die Rate kann nur auf unavailable festgelegt werden. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status | 1 | enum | Bei status="unavailable" wird der Preis so behandelt, als wäre er nicht verfügbar, unabhängig davon, ob dafür ein gültiger Preis vorhanden ist. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | Definiert die Limits für die Aufenthaltsdauer, innerhalb derer diese Ratenänderung angewendet werden kann. Die Ratenänderung wird nicht angewendet, wenn die Aufenthaltsdauer außerhalb der Mindest- und Höchstwerte liegt. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min | 0..1 | integer | Die Mindestanzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit die Preisänderung angewendet wird. Wenn nicht angegeben, gibt es keine Mindestanzahl. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max | 0..1 | integer | Die maximale Anzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit die Preisänderung angewendet wird. Wird keine Angabe gemacht, gibt es kein Maximum. |
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount | 0..1 | MinimumAmount | Gibt die Mindestsumme der täglichen Zimmerpreise (mit dem größeren Wert von AmountBeforeTax oder AmountAfterTax ) an, die überschritten werden muss, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount | 1 | integer | Der Wert, der überschritten werden muss, damit die Ratenänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans | 0..1 | RatePlans | Container für eine Liste von Preisplänen, für die die Preisänderung gilt. Wenn <RatePlans> nicht angegeben ist, gilt die Preisänderung für alle Preispläne. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan | 1..n | RatePlan | Gibt einen Preisplan an. Ein Preisplan wird durch eine Kombination aus Paket, Preisen und Verfügbarkeit definiert, wie in den Nachrichten Transaktionen (Unterkunftsdaten), OTA_HotelRateAmountNotifRQ und OTA_HotelAvailNotifRQ definiert und durch die PackageID identifiziert. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id | 1 | string | Die eindeutige Kennung für den Preisplan. Dieser Wert ist dem PackageID-Wert in <PackageData> in einer Nachricht „Transaktion (Unterkunftsdaten)“ und im Attribut RatePlanCode in <StatusApplicationControl> in den Nachrichten <OTA_HotelRateAmountNotifRQ> und <OTA_HotelAvailNotifRQ> zugeordnet.
Es sind maximal 50 Zeichen zulässig. |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes | 0..1 | RoomTypes | Container für eine Liste von Zimmertypen, für die die Preisänderung gilt.
Die Preisänderung wird auf jeden angegebenen <RoomType> angewendet. Wenn <RoomTypes> nicht angegeben ist, gilt die Preisänderung für alle Zimmer. |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType | 1..n | RoomType | Gibt einen Zimmertyp an. Ein Zimmertyp wird in einem <RoomData> -Element in einer Nachricht Transaktion (Unterkunftsdaten) definiert und wird mit seinem <RoomID> -Wert referenziert. (Sein <RoomID> -Wert wird auch durch das Attribut InvTypeCode in OTA_HotelRateAmountNotifRQ-Nachrichten referenziert.) |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id | 1 | string | Die eindeutige Kennung für das Inventar (Zimmertyp). Dieser Wert ist <RoomID> in einer Nachricht „Transaktion (Unterkunftsdaten)“ zugeordnet.
Es sind maximal 50 Zeichen zulässig. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates | 0..1 | StayDates | Ein Container für einen oder mehrere Zeiträume, die bestimmen, wie die Preisänderung angewendet wird, z. B. für saisonale Preise. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application | 1 | enum | Beschreibt, wie die Ratenänderung angewendet wird. Gültige Werte sind:
Dieses Attribut muss immer angegeben werden. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann die Preisänderung angewendet werden soll. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start | 0..1 | Date | Das einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss vor dem end -Datum liegen oder mit diesem übereinstimmen. Wird start nicht angegeben, ist der Zeitraum in Bezug auf das Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end | 0..1 | Date | Das einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem Datum start übereinstimmen oder danach liegen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Wenn nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispielsweise gibt „MTWHF“ an, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen sind:
Jede Zeichenkombination ist gültig. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | Wenn angegeben, wird die Preisänderung nur angewendet, wenn sich der Nutzer in einem der angegebenen Länder befindet. Wenn keine Angabe erfolgt, wird die Preisänderung unabhängig vom Standort des Nutzers angewendet. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | Der Typ der Usercountries-Spezifikation.
Gültige Werte sind Wenn „UserCountry“- Wenn „UserCountry“ Wenn „UserCountry“ ( |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country | 1..300 | Country | Gibt ein zulässiges Nutzerland für die Preisänderung an. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code | 1 | string | Einen CLDR-Ländercode wie DE oder FR . Beachten Sie, dass der CLDR-Ländercode bei einigen Ländern nicht mit dem zweistelligen ISO-Ländercode übereinstimmt. Außerdem werden CLDR-Regionscodes nicht unterstützt. |
Beispiele
Einfache Nachricht
Das folgende Beispiel zeigt eine einfache RateModifications
`-Nachricht:
<?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>
Eine Preisänderung löschen
Das folgende Beispiel zeigt, wie eine einzelne Preisänderung für eine Unterkunft gelöscht wird:
<?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>
Alle Preisänderungen löschen
Das folgende Beispiel zeigt, wie alle Preisänderungen für eine Unterkunft gelöscht werden:
<?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>
Alle Preisänderungen überlagern
Das folgende Beispiel zeigt, wie <HotelRateModifications>
für eine Unterkunft mit einer oder mehreren neuen Preisänderungen eingeblendet wird. Bei action="overlay"
werden alle gespeicherten Preisänderungen gelöscht, bevor die in der aktuellen Nachricht angegebenen Preisänderungen gespeichert werden:
<?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>
Mehrere Änderungsaktionen
Das folgende Beispiel zeigt, wie mehrere Änderungsaktionen gleichzeitig durchgeführt werden können:
<?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>
Preisplan für Nutzerländer deaktivieren
Das folgende Beispiel zeigt, wie Sie einen Preisplan auf Nutzer in Japan (JP
) beschränken können:
<?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>
Antworten
Syntax
Die Nachricht RateModificationsResponse
verwendet die folgende Syntax:
<?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>
Elemente und Attribute
Die RateModificationsResponse
-Nachricht enthält die folgenden Elemente und Attribute:
Element / @Attribut | Häufigkeit | Typ | Beschreibung |
---|---|---|---|
RateModifications | 1 | Complex element | Das Stammelement, das den Erfolg oder Probleme für eine empfangene RateModifications-Anfragenachricht angibt. |
RateModificationsResponse / @timestamp | 1 | DateTime | Erstellungsdatum und -uhrzeit der Nachricht. |
RateModificationsResponse / @id | 1 | string | Die eindeutige Kennung aus der zugehörigen RateModifications-Nachricht. |
RateModificationsResponse / @partner | 1 | string | Das Partnerkonto für diese Nachricht. |
RateModificationsResponse / Success | 0..1 | Success | Gibt an, dass die RateModifications-Nachricht ohne Warnungen oder Fehler erfolgreich verarbeitet wurde.
Entweder |
RateModificationsResponse / Issues | 0..1 | Issues | Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der RateModifications-Nachricht aufgetreten sind.
Entweder |
RateModificationsResponse / Issues / Issue | 1..n | Issue | Die Beschreibung einer Warnung oder eines Fehlers, die bei der Verarbeitung der RateModifications-Nachricht aufgetreten ist. Details zu diesen Problemen finden Sie unter Fehlermeldungen zum Feedstatus. |
RateModificationsResponse / Issues / Issue / @code | 1 | integer | Die Kennung des Problems. |
RateModificationsResponse / Issues / Issue / @status | 1 | enum | Die Art des Problems. Gültige Werte sind |
Beispiele
Abgeschlossen
Im Folgenden finden Sie eine Antwort auf eine erfolgreich verarbeitete RateModifications-Nachricht.
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</RateModificationsResponse>
Probleme
Im Folgenden finden Sie eine Antwort auf eine RateModifications-Nachricht, die aufgrund von Fehlern nicht verarbeitet wurde.
<?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>