Übersicht
Mit dieser API können Sie Möglichkeiten definieren, um Aktionen dynamisch auf eine Rate anzuwenden, wenn Bedingungen erfüllt sind, z. B. durch Anpassung des Preises oder Aktivieren der Erstattungsfähigkeit. Im Gegensatz zur Promotions API, die nur infrage kommende Angebote mit den höchsten Rabatten, wendet diese API alle Aktionen an wenn bestimmte Bedingungen erfüllt sind, z. B. Preisanpassungen, die möglicherweise den endgültigen Preis erhöhen.
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 Zeichenfolgenwert ist der
„Partnerschlüssel“ Wert aufgelistet auf
die
Seite „Kontoeinstellungen“ im Hotel Center.
Hinweis: Wenn Sie ein Back-End haben, das Feeds für
mehreren Konten besteht, muss dieser Wert mit dem Wert |
RateModifications / @id | 1 | string | Eine eindeutige Kennung für diese Anfragenachricht. Dieser Wert wird in der Antwortnachricht. 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. Alle Preisänderungen gelten auf eine einzelne Property. Hinweis: Wenn mehrere Preisänderungen möglich sind auf dieselbe Rate angewendet, werden alle Änderungen angewendet. Keine spezifische Reihenfolge garantiert. |
RateModifications / HotelRateModifications / @hotel_id | 1 | string | Die eindeutige Kennung für die Unterkunft. Dieser Wert muss mit der
Hotel-ID angegeben mithilfe von
<id> im Element <listing>
im Hotellisten-Feed ein. 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. empfehlen wir, sie sparsam einzusetzen. Wenden Sie sich an Ihren Technical Account Manager (TAM) für Anwendungsfälle, mehr als 200 Preisänderungen erforderlich sind. |
RateModifications / HotelRateModifications / ItineraryRateModification / @id | 1 | string | Eine eindeutige Kennung für die Preisänderung. Die maximale Anzahl von sind 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 | Falls nicht angegeben und eine 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 für den Preis erfolgen muss angewendet werden soll. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start | 0..1 | Date | Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von
Zeitraum Dieses Datum muss vor dem Ereignisdatum liegen oder diesem entsprechen.
end Datum. Wenn start nicht angegeben ist, wird das Datum
ist in Bezug auf ein Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end | 0..1 | Date | Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des
Zeitraum. Dieses Datum muss mit dem Datum übereinstimmen oder danach liegen.
start Datum. Wenn end nicht angegeben ist, wird das Datum
ist in Bezug auf ein Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. 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 Buchung relativ zum Check-in-Datum (basierend auf der Zeitzone der Unterkunft). Beispiel: Der Parameter den Buchungszeitraum von mindestens 7, nicht mehr als 180 Tagen festlegen, vor dem Check-in. |
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. Wird nichts angegeben, gibt es ist kein Minimum. |
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. Wird nichts angegeben, gibt es ist kein Höchstwert. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | Ein Container für einen oder mehrere Zeiträume, die definieren, wann ein Check-in erfolgen muss auftreten, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann für den Preis ein Check-in erfolgen muss angewendet werden soll. Dieses Element ist nicht erforderlich, wenn Sie Löschen einer oder mehrerer Preisänderungen. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start | 0..1 | Date | Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von
Zeitraum Dieses Datum muss vor dem Ereignisdatum liegen oder diesem entsprechen.
end Datum. Wenn start nicht angegeben ist, wird das Datum
ist in Bezug auf ein Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end | 0..1 | Date | Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des
Zeitraum. Dieses Datum muss mit dem Datum übereinstimmen oder danach liegen.
start Datum. Wenn end nicht angegeben ist, wird das Datum
ist in Bezug auf ein Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. 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 den Check-out definieren muss vorhanden sein, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange | 1..99 | DateRange | Ein Zeitraum, der angibt, wann für den Preis ein Check-out erfolgen muss angewendet werden soll. Dieses Element ist nicht erforderlich, wenn Sie Löschen einer oder mehrerer Preisänderungen. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start | 0..1 | Date | Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von
Zeitraum Dieses Datum muss vor dem Ereignisdatum liegen oder diesem entsprechen.
end Datum. Wenn start nicht angegeben ist, wird das Datum
ist in Bezug auf ein Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end | 0..1 | Date | Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des
Zeitraum. Dieses Datum muss mit dem Datum übereinstimmen oder danach liegen.
start Datum. Wenn end nicht angegeben ist, wird das Datum
ist in Bezug auf ein Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. 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, die für die Änderung der Rate. Wenn angegeben, ist die Preisänderung nur wird angewendet, wenn der Nutzer mit einem der aufgeführten Geräte übereinstimmt. 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, für den der Preis gilt Änderung. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type | 1 | enum | Ein Gerätetyp. Der Wert muss desktop sein,
tablet oder mobile . |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions | 1 | ModificationActions | Aktionen, die auf den Preis angewendet werden, wenn alle angegebenen Bedingungen erfüllt sind erfüllt sind. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | Ändert die Rate durch Multiplizieren von AmountBeforeTax und
AmountAfterTax um den angegebenen Multiplikator |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | Sowohl AmountBeforeTax als auch AmountAfterTax sind
multipliziert mit diesem Wert. |
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 ordnet einen Preis einer Definition in Ihrem
Datei zur Definition 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) Auf 1 festlegen oder
true , um anzugeben, ob der Preis einen vollständigen
refund; Andernfalls auf 0 oder false gesetzt. |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Erforderlich, wenn
available ist true ). Gibt an
Anzahl der Tage vor dem Check-in, innerhalb derer eine volle Erstattung erfolgen kann
angefordert. Wert von refundable_until_days
muss eine Ganzzahl zwischen 0 und 330 sein, wobei die beiden Grenzwerte ebenfalls zulässig sind. |
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, dass ein voller
Erstattungsantrag berücksichtigt. Dies kann mit
refundable_until_days zum Angeben, für
Beispiel: „Erstattungen sind bis 16:00 Uhr zwei Tage im Voraus möglich.
Check-in“. Ist refundable_until_time nicht festgelegt, wird der Wert
ist Mitternacht standardmäßig aktiviert. |
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
als sei er nicht verfügbar, unabhängig davon, ob für
. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | Definiert die Grenzwerte für die Aufenthaltsdauer, innerhalb derer diese Ratenänderung erfolgen kann angewendet werden. Die Preisänderung wird nicht angewendet, wenn die Aufenthaltsdauer außerhalb der Mindest- und Höchstwerte liegen. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min | 0..1 | integer | Die Mindestanzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit der Preis geändert wird angewendet. 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 keine Angabe gemacht, gibt es kein Maximum. |
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount | 0..1 | MinimumAmount | Gibt die Mindestsumme der täglichen Zimmerpreise an (unter Verwendung des höheren Werts
AmountBeforeTax oder AmountAfterTax ), die auf
überschritten wird, damit die Preisänderung angewendet wird. |
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount | 1 | integer | Der Wert, der überschritten werden muss, damit die Preisänderung angewendet. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans | 0..1 | RatePlans | Container für eine Liste von Preisplänen, denen die Preisänderung unterliegt
gilt. Wenn <RatePlans> nicht angegeben ist, wird der Preis
für alle Preispläne gilt. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan | 1..n | RatePlan | Gibt einen Preisplan an. Ein Preisplan wird durch eine Kombination Paket, Preise und Verfügbarkeit, wie in „Transaktion“ definiert (Unterkunftsdaten), OTA_HotelRateAmountNotifRQ und OTA_HotelAvailNotifRQ Nachrichten und wie durch die PackageID identifiziert. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id | 1 | string | Die eindeutige Kennung für den Preisplan. Dieser Wert wird der
PackageID-Wert in <PackageData>
in der Nachricht „Transaktion (Unterkunftsdaten)“ und in der
Attribut „RatePlanCode “ in
<StatusApplicationControl> in beiden
<OTA_HotelRateAmountNotifRQ> und
<OTA_HotelAvailNotifRQ> Nachrichten.
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 jede <RoomType> angewendet
angegeben ist. Wenn <RoomTypes> nicht angegeben ist, wird der
Preisänderung gilt für alle Zimmer. |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType | 1..n | RoomType | Gibt einen Zimmertyp an. Ein Zimmertyp wird in einem
<RoomData> -Element in einem
Transaktion (Unterkunftsdaten) und ist
mit seinem <RoomID> -Wert referenziert wird. (Die
Der Wert <RoomID> wird auch vom
Attribut InvTypeCode in OTA_HotelRateAmountNotifRQ
messages.) |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id | 1 | string | Die eindeutige Kennung für das Inventar (Zimmertyp). Dieser Wert wird zugeordnet
an <RoomID> in einer Nachricht „Transaktion (Unterkunftsdaten)“.
Es sind maximal 50 Zeichen zulässig. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates | 0..1 | StayDates | Ein Container für einen oder mehrere Zeiträume, die festlegen, wie die Ratenä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 | Zeitraum, der angibt, wann die Preisänderung wirksam werden soll angewendet. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start | 0..1 | Date | Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von
Zeitraum Dieses Datum muss vor dem Ereignisdatum liegen oder diesem entsprechen.
end Datum. Wenn start nicht angegeben ist, wird das Datum
ist in Bezug auf ein Startdatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end | 0..1 | Date | Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des
Zeitraum. Dieses Datum muss mit dem Datum „start “ übereinstimmen oder danach liegen
Datum. Wenn end nicht angegeben ist, wird das Datum
ist in Bezug auf ein Enddatum praktisch unbegrenzt. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week | 0..1 | string | Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. 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 Preisänderung nur angewendet, wenn der Nutzer sich in einem der angegebenen Länder befindet. Wenn nicht angegeben, wird der Preis 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 für das Nutzerland Wenn das Feld „UserCountry“ Wenn das Feld „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 . Bei einigen
Ländern, ist der CLDR-Ländercode nicht dasselbe wie der aus zwei Buchstaben bestehende ISO-Code
Ländercode. 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 Sie eine Preisänderung für eine Property:
<?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 Sie alle Ratenänderungen für eine Property:
<?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
Unterkunft mit einer oder mehreren neuen Preisänderungen. Wann?
action="overlay"
werden alle gespeicherten Preisänderungen vor dem
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 durchgeführt werden auf einmal:
<?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
Japanisch (JP
) Nutzer:
<?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 Folgendes:
-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. |
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 erfolgreich verarbeitet wurde
ohne Warnungen oder Fehler.
Entweder |
RateModificationsResponse / Issues | 0..1 | Issues | Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der
RateModifications gesendet.
Entweder |
RateModificationsResponse / Issues / Issue | 1..n | Issue | Die Beschreibung einer Warnung oder eines Fehlers, der aufgetreten ist während Preisänderungen verarbeiten kann. Details zu diesen Problemen können gefunden in Fehler beim Feedstatus Nachrichten |
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
Erfolg
Im Folgenden finden Sie eine Antwort auf erfolgreich verarbeitete RateModifications angezeigt.
<?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 nicht verarbeitete Nachricht „RateModifications“ Fehler.
<?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>