Überblick
Mit dieser API können Sie Möglichkeiten definieren, Aktionen dynamisch auf einen Preis anzuwenden, wenn Bedingungen erfüllt sind, z. B. durch Anpassen des Preises oder Aktivieren der Erstattungsfähigkeit. Im Gegensatz zur Promotions API, mit der nur zulässige Angebote mit den höchsten Rabatten angewendet werden können, wendet diese API Aktionen an, wenn bestimmte Bedingungen erfüllt sind, einschließlich Preisanpassungen, die den endgültigen Preis letztendlich erhöhen können.
Anfragen
Syntax
Die RateModifications
-Nachricht 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 RateModifications
-Nachricht enthält die folgenden Elemente und Attribute:
Element / @Attribut | Häufigkeit | Typ | Beschreibung |
---|---|---|---|
RateModifications | 1 | Complex element | Das Stammelement einer Nachricht zur Preisänderung. |
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 | Ratenä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 ist nicht garantiert. |
RateModifications / HotelRateModifications / @hotel_id | 1 | string | Die eindeutige Kennung für die Unterkunft. Dieser Wert muss mit der Hotel-ID übereinstimmen, die im Hotellistenfeed mit
<id> im Element <listing> angegeben wird. Die Hotel-ID wird 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 und sollten sparsam eingesetzt werden. Wenden Sie sich bei Anwendungsfällen, die mehr als 200 Preisänderungen erfordern, 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 nicht angegeben und eine Preisä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 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 eingeschlossene 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ßende Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem Datum start übereinstimmen oder nach diesem 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 keine Angabe erfolgt, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Mit „MTWHF“ wird beispielsweise angegeben, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen:
Jede Zeichenkombination ist gültig. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow | 0..1 | BookingWindow | Gibt den Zeitraum an, in dem die Buchung bezogen auf das 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 erfolgt, 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 keine Angabe erfolgt, gibt es keine Obergrenze. |
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 eingeschlossene 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ßende Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem Datum start übereinstimmen oder nach diesem 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 keine Angabe erfolgt, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Mit „MTWHF“ wird beispielsweise angegeben, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen:
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 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 eingeschlossene 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ßende Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem Datum start übereinstimmen oder nach diesem 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 keine Angabe erfolgt, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Mit „MTWHF“ wird beispielsweise angegeben, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen:
Jede Zeichenkombination ist gültig. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices | 0..1 | Devices | Container zum Auflisten der Nutzergeräte, die für die Preisänderung infrage kommen. Wenn angegeben, wird die Preisänderung nur angewendet, wenn der Nutzer mit einem der aufgeführten Geräte übereinstimmt. Wenn keine Angabe erfolgt, wird die Anwendung der Preisänderung dadurch nicht eingeschränkt. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device | 1..3 | Device | Definiert einen Typ von Nutzergerät, für das die Ratenä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 die Rate angewendet werden, wenn alle angegebenen Bedingungen erfüllt sind. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | Ändert die Rate, indem AmountBeforeTax und 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 stimmt mit einem Preis mit einer Definition in Ihrer Datei Definition der Preisregel überein.
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 Uhrzeit in der Ortszeit des Hotels an, bis zu der ein Antrag auf eine 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 standardmäßig Mitternacht als Wert verwendet. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability | 0..1 | Availability | Überschreibt die Verfügbarkeit des Preises mit dem angegebenen Wert.
Wir unterstützen nur das Festlegen des Preises auf unavailable . |
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 für ihn ein gültiger Preis vorhanden ist. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | Definiert die Aufenthaltsdauerlimits, innerhalb derer diese Preisänderung angewendet werden kann. Die Preisänderung wird nicht angewendet, wenn die Aufenthaltsdauer außerhalb der Mindest- und Höchstgrenzen 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 diese nicht angegeben ist, gibt es keine Mindestanzahl. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max | 0..1 | integer | Die maximale Anzahl der Übernachtungen, die während des Aufenthalts erlaubt sind, damit die Preisänderung angewendet wird. Wird kein Wert 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 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 Transaction (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 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 vom Typ „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 eingeschlossene 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ßende Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss mit dem start -Datum übereinstimmen oder nach diesem 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 keine Angabe erfolgt, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Mit „MTWHF“ wird beispielsweise angegeben, dass Wochentage im Zeitraum zulässig sind. Gültige Zeichen:
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 nicht angegeben, wird die Preisänderung unabhängig vom Standort des Nutzers angewendet. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | Der Typ der UserLänder-Spezifikation.
Gültige Werte sind Wenn die Wenn die Wenn das Feld |
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 | Ein CLDR-Ländercode wie DE oder FR . Beachten Sie, dass bei einigen Ländern der CLDR-Ländercode nicht mit dem aus zwei Buchstaben bestehenden ISO-Ländercode identisch ist. 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 Preisänderung für ein Attribut 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 einblenden
Im folgenden Beispiel wird gezeigt, wie Sie <HotelRateModifications>
für eine Unterkunft mit einer oder mehreren neuen Preisänderungen überlagern. Wenn action="overlay"
festgelegt ist, werden alle gespeicherten Preisä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 mehrere Änderungsaktionen gleichzeitig ausgeführt 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">
<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 japanische Nutzer (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 RateModificationsResponse
-Nachricht 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
-Meldung 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 RateÄnderungs-Anfragenachricht angibt. |
RateModificationsResponse / @timestamp | 1 | DateTime | Erstellungsdatum und -uhrzeit der Nachricht. |
RateModificationsResponse / @id | 1 | string | Die eindeutige Kennung aus der verknüpften RateModifiers-Nachricht. |
RateModificationsResponse / @partner | 1 | string | Das Partnerkonto für diese Nachricht. |
RateModificationsResponse / Success | 0..1 | Success | Gibt an, dass die RateModifiers-Nachricht ohne Warnungen oder Fehler erfolgreich verarbeitet wurde.
In jeder Nachricht ist entweder |
RateModificationsResponse / Issues | 0..1 | Issues | Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der RateÄnderungsnachricht aufgetreten sind.
In jeder Nachricht ist entweder |
RateModificationsResponse / Issues / Issue | 1..n | Issue | Die Beschreibung einer Warnung oder eines Fehlers, der bei der Verarbeitung der RateÄnderungsnachricht aufgetreten ist. Details zu diesen Problemen finden Sie unter Fehlermeldungen für den Feedstatus. |
RateModificationsResponse / Issues / Issue / @code | 1 | integer | Die Kennung für das Problem. |
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 RateÄnderungsnachricht.
<?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 RateModifiziers-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>