Übersicht
Mit dieser API können Sie festlegen, wie Aktionen dynamisch auf einen Tarif angewendet werden, wenn bestimmte Bedingungen erfüllt sind, z. B. den Preis anpassen oder die Erstattungsfähigkeit aktivieren. Im Gegensatz zur Promotions API, mit der nur anwendbare Angebote mit den höchsten Rabatten angewendet werden können, werden mit dieser API alle Aktionen angewendet, wenn bestimmte Bedingungen erfüllt sind. Dazu gehören auch Preisanpassungen, die den Endpreis letztendlich 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 folgende 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 „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 Ratenänderungen auf dieselbe Rate angewendet werden können, werden alle Änderungen angewendet. Es gibt keine garantierte Reihenfolge. |
| 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> im Hotellistenfeed angegeben wird. 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:Ratenänderungen sind schwer zu debuggen. Wir empfehlen, sie nur sparsam zu verwenden. Wenden Sie sich an Ihren Technical Account Manager (TAM), wenn Sie mehr als 200 Preisänderungen benötigen. |
| 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). (Punkt). |
| RateModifications / HotelRateModifications / ItineraryRateModification / @action | 0..1 | enum | Falls dieser Wert nicht angegeben ist und eine Ratenänderung mit derselben Falls 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 Ratenä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 prinzipiell 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 nach dem start-Datum liegen oder mit diesem übereinstimmen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum nahezu unbegrenzt. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispiel: „MTWHF“ gibt 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 Reservierung in Bezug auf das Check-in-Datum erfolgen muss (basierend auf der Zeitzone der Unterkunft). Beispielsweise kann der Reservierungszeitraum auf mindestens 7 Tage und maximal 180 Tage vor dem Check-in festgelegt werden. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min | 0..1 | integer | Die Mindestanzahl von Tagen vor dem Check-in, wann eine Buchung erfolgen muss, damit die Preisänderung angewendet wird. Falls nicht angegeben, gibt es keine Mindestanzahl. |
| RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max | 0..1 | integer | Die maximale Anzahl von Tagen vor dem Check-in, wann eine Buchung erfolgen muss, damit die Preisänderung angewendet wird. Falls nicht angegeben, gibt es keine maximale Anzahl. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | Ein Container für einen oder mehrere Zeiträume, die definieren, wann der Check-in erfolgen muss, damit die Ratenänderung angewendet wird. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann ein Check-in erfolgen muss, damit die Ratenänderung angewendet wird. Dieses Element ist nicht erforderlich, wenn Sie eine oder mehrere Ratenä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 prinzipiell 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 nach dem start-Datum liegen oder mit diesem übereinstimmen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum nahezu unbegrenzt. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispiel: „MTWHF“ gibt 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 der Check-out erfolgen muss, damit die Ratenänderung angewendet wird. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann ein Check-out erfolgen muss, damit die Ratenänderung angewendet wird. Dieses Element ist nicht erforderlich, wenn Sie eine oder mehrere Ratenä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 prinzipiell 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 nach dem start-Datum liegen oder mit diesem übereinstimmen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum nahezu unbegrenzt. |
| RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispiel: „MTWHF“ gibt 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 die Preisplanänderung gilt. Wenn angegeben, wird die Ratenänderung nur angewendet, wenn der Nutzer eines der aufgeführten Geräte verwendet. Wenn nichts angegeben ist, wird die Anwendung der Ratenänderung nicht eingeschränkt. |
| RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device | 1..3 | Device | Gibt einen Typ des Nutzergeräts an, für den die Ratenänderung gilt. |
| 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 Tarif angewendet werden, wenn alle angegebenen Bedingungen erfüllt sind. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | Ändert den Tarif, indem sowohl AmountBeforeTax als auch AmountAfterTax mit dem angegebenen Multiplikator multipliziert werden. |
| 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, indem die angegebene Preisregel-ID darauf angewendet wird. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id | 1 | string | Diese ID entspricht einem Preis in einer Definition in Ihrer Datei zum Festlegen der Preisregel.
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, für die 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 | (Wird empfohlen, wenn available den Wert true hat) Gibt die späteste Uhrzeit des Tages in der Ortszeit des Hotels an, bis zu der ein Antrag auf vollständige Erstattung 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.
Wir unterstützen nur die Einstellung des Tarifs auf unavailable. |
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status | 1 | enum | Wenn status="unavailable", wird der Tarif so behandelt, als wäre er nicht verfügbar, unabhängig davon, ob ein gültiger Preis dafür vorhanden ist. |
| RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | Definiert die Mindest- und Höchstwerte der Aufenthaltsdauer, innerhalb derer diese Ratenänderung angewendet werden kann. Die Preisä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. Falls 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. Falls nicht angegeben, gibt es keine maximale Anzahl. |
| 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 werden kann. |
| 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, die in den Nachrichten „Transaktion (Unterkunftsdaten)“, „OTA_HotelRateAmountNotifRQ“ und „OTA_HotelAvailNotifRQ“ definiert und durch die PackageID identifiziert wird. |
| 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> sowie <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 Preisänderung angewendet werden soll. 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 prinzipiell 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 nach dem start-Datum liegen oder mit diesem übereinstimmen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum nahezu unbegrenzt. |
| RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispiel: „MTWHF“ gibt 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 Ratenänderung nur angewendet, wenn sich der Nutzer in einem der angegebenen Länder befindet. Wenn nicht angegeben, wird die Ratenä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 „UserCountries“ Wenn UserCountries Wenn „UserCountries“ |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country | 1..300 | Country | Gibt ein zulässiges Nutzerland für die Tarifänderung an. |
| RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code | 1 | string | Ein CLDR-Ländercode, z. B. DE oder FR. Bei einigen Ländern ist der CLDR-Ländercode nicht identisch mit dem aus zwei Buchstaben bestehenden ISO-Ländercode. Regionale CLDR-Codes werden 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 Ratenänderung löschen
Im folgenden Beispiel wird gezeigt, wie eine Ratenä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 Ratenänderungen löschen
Im folgenden Beispiel wird gezeigt, wie alle Ratenä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
Im folgenden Beispiel wird gezeigt, wie <HotelRateModifications> für eine Unterkunft mit einer oder mehreren neuen Ratenänderungen überlagert wird. Bei action="overlay" werden alle gespeicherten Ratenänderungen gelöscht, bevor die in der aktuellen Nachricht angegebenen Ratenä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 Sie mehrere Änderungsaktionen gleichzeitig ausführen:
<?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>
Tarif für Nutzerländer deaktivieren
Das folgende Beispiel zeigt, wie Sie einen Tarif auf Nutzer in Japan (JP) beschränken:
<?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 Nachricht RateModificationsResponse enthält folgende 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 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 bzw. der bei der Verarbeitung der RateModifications-Nachricht aufgetreten ist. Weitere Informationen zu diesen Problemen finden Sie unter Fehlercodes für den Feedstatus. |
| RateModificationsResponse / Issues / Issue / @code | 1 | integer | Die Kennung des Problems. |
| RateModificationsResponse / Issues / Issue / @status | 1 | enum | Die Art des Problems, das aufgetreten ist. Gültige Werte sind |
Beispiele
Erfolg
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>