Preisänderungen

Ü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 ID im Element <RequestorID> der Nachrichten <OTA_HotelRateAmountNotifRQ> und <OTA_HotelAvailNotifRQ> für dasselbe Konto übereinstimmen.

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 action nicht angegeben ist, werden die Änderungen in diesem Element für dieses Hotel hinzugefügt oder aktualisiert. Wenn action="overlay" angegeben ist, werden zuerst alle zuvor definierten Änderungen für dieses Hotel gelöscht. Anschließend werden die hier angegebenen Änderungen geschrieben. Wenn action="overlay" verwendet wird und in diesem Element keine Änderungen angegeben sind, werden alle Änderungen für dieses Hotel gelöscht.

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 id nicht gespeichert wird, wird diese Preisänderung gespeichert. Wenn keine Angabe erfolgt und eine Preisänderung mit derselben id gespeichert wird, wird die vorhandene Preisänderung aktualisiert.

Falls angegeben, muss der Wert "delete" sein. Wenn "delete" angegeben ist, wird die gespeicherte Preisänderung mit derselben id gelöscht. Wenn du "delete" verwendest, gib keine untergeordneten Elemente in <ItineraryRateModification> ein. Außerdem ist "delete" in Verbindung mit <HotelRateModifications action="overlay"/> nicht zulässig.

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:

  • M für Montag
  • T für Dienstag
  • W für Mittwoch
  • H für Donnerstag
  • F für Freitag
  • S für Samstag
  • U für Sonntag

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:

  • M für Montag
  • T für Dienstag
  • W für Mittwoch
  • H für Donnerstag
  • F für Freitag
  • S für Samstag
  • U für Sonntag

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:

  • M für Montag
  • T für Dienstag
  • W für Mittwoch
  • H für Donnerstag
  • F für Freitag
  • S für Samstag
  • U für Sonntag

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:
  • Die Zeichenbeschränkung für dieses Feld beträgt 40 Zeichen.
  • Jeder Preis kann nur einer einzigen Preisregel zugeordnet werden.
  • Wenn eine Preisregel-ID mehrere Änderungen angewendet hat, wird der Rate die Preisregel-ID zugewiesen, die lexikografisch kleinste ist.
  • Wenn diese ID mit keiner Preisregel in Ihrer Definitionsdatei für Preisregeln übereinstimmt, gilt sie als unzulässig.
In diesem Artikel finden Sie Informationen zu den verschiedenen UI-Behandlungen für Tarife für bestimmte Zielgruppen.
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:

  • Durch diese Änderung wird die Einstellung „Erstattungsfähig“ eines infrage kommenden Preises vollständig umgeschrieben, nicht nur die ausgefüllten Felder.
  • Wenn available oder refundable_until_days nicht festgelegt ist, wird der Preis nicht als erstattungsfähig angezeigt.
  • Wenn available den Wert 0 oder false hat, werden die anderen Attribute ignoriert. Der Preis wird nicht als erstattungsfähig angezeigt, auch wenn mindestens eines der anderen Attribute festgelegt ist.
  • Es wird empfohlen, refundable_until_time festzulegen. Wenn nicht festgelegt, wird die früheste Zeit (Mitternacht) verwendet.
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:

  • all: Die Preisänderung wird auf jede Nacht im Reiseplan angewendet, wenn sich alle Daten im Reiseplan mit den Aufenthaltsdaten überschneiden.
  • any: Wendet die Preisänderung auf alle Übernachtungen im Reiseplan an, wenn sich ein Datum im Reiseplan mit einem Datum im Aufenthaltszeitraum überschneidet.

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:

  • M für Montag
  • T für Dienstag
  • W für Mittwoch
  • H für Donnerstag
  • F für Freitag
  • S für Samstag
  • U für Sonntag

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 include und exclude.

Wenn die type von UserLänder auf include festgelegt ist, gilt die Preisänderung für Nutzer aus den aufgeführten Ländern.

Wenn die type-Funktion von UserLänder den Wert exclude hat, gilt die Preisänderung für Nutzer außerhalb der aufgeführten Länder.

Wenn das Feld type für UserLänder nicht festgelegt ist, wird es als include behandelt und die Preisänderung gilt für Nutzer aus den aufgeführten Ländern.

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 <Success> oder <Issues> vorhanden.

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 <Success> oder <Issues> vorhanden.

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 warning, error und failure.

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>