Preisänderungen

Übersicht

Mit dieser API können Sie festlegen, wie Aktionen dynamisch auf einen Preis angewendet werden, wenn bestimmte Bedingungen erfüllt sind, z. B. der Preis angepasst oder die Erstattung aktiviert wird. Im Gegensatz zur Promotions API, mit der nur infrage kommende 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" encodin>g<="UTF-8"?
RateModifications partner="partner_key&quot;
                      id="message_ID"
   >   <                timestamp="timestamp"
  HotelRateM>odifi<cations hotel_id="HotelID" action="[overlay]&quo>t;
    <ItineraryRat>eModifica<tion id="ModificationID" action="[delete]&quot;
      BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD&quot; days_of_week=&q>uot;&qu<ot;MTWHFSU_or>_subset<""/
        DateRange start=&quo>t;YYYY-<MM-DD" >end="<;YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/
      />Booking<Dates
      B>ookingW<indow min=&qu>ot;intege<r" max="integer"/
      CheckinDates
        DateRange start=&quot>;YYYY-M<M-DD" end>="<YYYY-MM>-DD"< days_of_week=""MTWHFSU_or_s>ubset&q<uot;&quo>t;/
   <   /CheckinDates
      CheckoutDates
    >    Dat<eRange start="YYYY-MM-DD&quot; end=>"Y<YYY-MM-DD>" da<ys_of_week=&quot;"MTW>HFSU_or_s<ubset"&quot;/
      />Checkou<tDates
   >   Devi<ces
     >   Device< type="[desktop|ta>blet|mobi<le]"/
      /Devic>es
    <  L>engthOfStay mi<n="integer" max="i>nteger&qu<ot;/
      MinimumAmount before_discount="integer"/
      RatePlans
   >     Ra<tePlan id=>"P<ackageID_1"/
        RatePlan id=>"Pac<kageID_2"/
      /RateP>lans
  <    Roo>mTypes
       < RoomType id=">RoomID_1&<quot;/
        RoomType id=&quot;Ro>omID_2&qu<ot;/
      /RoomTypes
   >   StayDa<tes application="[all|any]&quot;
        DateRange start="YYYY-MM-DD&quot; end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_su>bset"<;"/
      /StayDates
      User>Countri<es type="[inclu>de|ex<clude]"
        Count>ry <code="country_code>&<quot;/
      /User>Countries
      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 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

Preisänderungen für eine Unterkunft. Jede Preisänderung gilt für eine einzelne Unterkunft.

Hinweis:Wenn auf denselben Preis mehrere Preisänderungen angewendet werden können, werden alle Änderungen angewendet. Eine bestimmte Reihenfolge ist nicht garantiert.

RateModifications / HotelRateModifications / @hotel_id 1 string Die eindeutige Kennung der 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 aufgelistet.
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 schwer zu debuggen und sollten daher sparsam verwendet werden. Wenden Sie sich an Ihren Technical Account Manager (TAM), wenn Sie mehr als 200 Preisänderungen vornehmen möchten.

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

Falls dieser Wert nicht angegeben ist und eine Preisänderung mit derselben id nicht gespeichert wird, wird diese Preisänderung gespeichert. Falls dieser Wert nicht angegeben ist 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 Sie "delete" verwenden, sollten Sie keine untergeordneten Elemente in <ItineraryRateModification> einbeziehen. 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 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.

Folgende Zeichen sind zulässig:

  • 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 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 Preisänderung angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Ein Zeitraum, der angibt, wann ein Check-in erfolgen muss, damit die Preisänderung angewendet wird. Dieses Element ist nicht erforderlich, wenn Sie eine oder mehrere Preisänderungen löschen.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Das einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss vor dem end-Datum liegen oder mit diesem übereinstimmen. Wird start nicht angegeben, ist der Zeitraum in Bezug auf das Startdatum 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.

Folgende Zeichen sind zulässig:

  • 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 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.

Folgende Zeichen sind zulässig:

  • 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, für die die Preisänderung gilt. Wenn angegeben, wird die Preisänderung nur angewendet, wenn der Nutzer mit einem der aufgeführten Geräte übereinstimmt. Wenn keine Angabe erfolgt, gilt die Preisänderung nicht nur für bestimmte Nutzer.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Definiert einen Typ des Nutzergeräts, für den die Preisä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 Preis angewendet werden, wenn alle angegebenen Bedingungen erfüllt sind.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Ändert den Preis, 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 Der Preis wird durch Anwenden der angegebenen Preisregel-ID geändert.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Diese ID entspricht einem Preis in einer Definition in Ihrer Datei zum Festlegen der Preisregel. Hinweis:
  • Die Zeichenbeschränkung für dieses Feld beträgt 40 Zeichen.
  • Jeder Preis kann nur einer einzigen Preisregel zugeordnet werden.
  • Wenn für eine Preisregel mehrere Änderungen gelten, wird der Preisregel-ID mit dem lexikalisch kleinsten Wert die Preisregel zugewiesen.
  • Wenn diese ID nicht mit einer Preisregel in Ihrer Datei zum Festlegen der Preisregel übereinstimmt, gilt sie als unzulässig.
Informationen zu den verschiedenen UI-Anzeigen für nutzerabhängige Preise finden Sie in diesem Artikel.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Überschreibt die Erstattungsfähigkeit des Tarifs mit dem angegebenen Wert.

Beachten Sie beim Festlegen der Attribute Folgendes:

  • Bei dieser Änderungsaktion wird die Einstellung „Erstattungsfähig“ eines infrage kommenden Preises vollständig überschrieben, 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 eines der anderen Attribute oder beide festgelegt sind.
  • Wir empfehlen, refundable_until_time festzulegen. Wenn Sie das nicht tun, wird der früheste Zeitpunkt (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, 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 (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 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 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 Preisä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 werden kann. 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 Preisä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:

  • all: Die Preisänderung wird auf jede Übernachtung im Reiseplan angewendet, wenn alle Datumsangaben im Reiseplan sich mit den Aufenthaltsdaten überschneiden.
  • any: Die Preisänderung gilt für alle Übernachtungen im Reiseplan, wenn sich ein beliebiges 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 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.

Folgende Zeichen sind zulässig:

  • 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 UserCountries-Spezifikation.

Gültige Werte sind include und exclude.

Wenn „UserCountries“ type auf „include“ festgelegt ist, gilt die Preisänderung für Nutzer aus den aufgeführten Ländern.

Wenn „UserCountries“ type exclude ist, gilt die Preisänderung für Nutzer außerhalb der aufgeführten Länder.

Wenn „UserCountries“ type 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, 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" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_1&q>uot;
    I<tineraryRateModification id="1"
      BookingDates
      >   DateRan<ge start="2023-07-01" end="2023>-07-31&<quot; days_of>_week=&<quot;MTWHF"/
         DateR>ange st<art="20>23-09-01&q<uot; end="2023-09-30"/
      /BookingDates
      Bookin>gWindow< min="7&>quot; m<ax="330&>quot;/
   <   CheckinDates
         DateRange start="2023-10-01" e>nd=&quo<t;2023-10-31&q>uot; da<ys_of_w>eek="<;FSU"/
      /Ch>eckinDate<s
      CheckoutDates>
      <   DateRange st<art="2023-10-08" end>="<2023-11-0>7" da<ys_of_week="F>SU"/
<      /CheckoutDat>es
    <  D>evices
       < Device t>ype="<mobile"/
    >    Device< type="tablet>"/<
      /De>vices
 <     L>engthOfStay min=<"2" max=>"14&<quot;/
      RateP>lans
  <       >RatePlan id=&q<uot;234"/
    >     Rate<Plan id="567"/
      /R>atePlan<s
      RoomTypes
  >     <  RoomType id="123&qu>ot;</
         RoomType id=>&<quot;456"/
  >    /RoomTypes
      UserCountries
        Country code="US"/
        Country code="GB"/
      /UserCountries
      ModificationActions
        PriceAdjustment multiplier="1.2"/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications


Preisänderung löschen

Im folgenden Beispiel wird gezeigt, wie eine Preisänderung für eine Unterkunft gelöscht wird:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id="Property_1>&qu<ot;
    ItineraryRateMo>d<ification id=">;1" action="delete"/
  /HotelRateModifications
/RateModifications

Alle Preisänderungen löschen

Im folgenden Beispiel wird gezeigt, wie alle Preisänderungen für eine Unterkunft gelöscht werden:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00"
  HotelRateMod>i<fications hotel_id>=&quot;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 Preisänderungen überlagert wird. Bei action="overlay" werden alle gespeicherten Preisänderungen gelöscht, bevor die in der aktuellen Nachricht angegebenen Preisänderungen gespeichert werden:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00"
  HotelRateMod>ifica<tions hotel_id="Property_1&>quot; a<ction=">overlay&qu<ot;/
    ItineraryRateModification id="1&>quot;
 <     B>ookingDates
  <       DateRange st>art="<;2023-09-01" end="2023->09-30&q<uot;/
      /Booking>Dates
 <     ModificationAc<tions
        Pric>eAdjustmen<t multiplier=">;1.2&qu<ot;/
     > /Modif<icationAc>tions
    <  RoomTypes
      >   RoomTyp<e id="123&quo>t;/
   <      RoomType <id="456"/
      >/Ro<omTypes
      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" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_1&q>uot;
    I<tineraryRateModification id="1"
    >  Booki<ngDates
     >    Dat<eRange start=">2023-01-0<1" end="2023-02-28">;/
      </BookingDates
      ModificationActions
        PriceAdjustment multiplier=".95"/
        Refundable available=">true&qu<ot;
                >    r<efundable_until_days=">;1&<quot;
                 > <  refundabl>e_until_time="12:00:00"/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications


Preisplan für Nutzerländer deaktivieren

Im folgenden Beispiel wird gezeigt, wie ein Preisplan nur auf Nutzer in Japan (JP) beschränkt wird:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_>1"
  <  ItineraryRate>Modification i<d="1&>quot;
 <     RatePlans
         Rate>Plan id=&<quot;jp_only">/
     < /RatePlans
  >    Use<rCountries type=&qu>ot;exclud<e"
        Country code=">;JP&quo<t;/
      /UserCount>ries
<      ModificationActions
>   <     Availability statu>s<="unavailable>&quot;/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications


Antworten

Syntax

Die Nachricht RateModificationsResponse verwendet die folgende Syntax:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="timestamp&quot;
                    id="message_ID"
 >   <                partner="partner_key"
  >!--< Either >Suc<cess o>r Iss<ues will be populated. --
  Success/
  Issu><es
>    Issue code=&q<uot;><issue_>cod<e"> <status="issue_type&qu>ot;varissue_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 Anfragenachricht vom Typ „RateModifications“ 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 <Success> oder <Issues> ist in jeder Nachricht enthalten.

RateModificationsResponse / Issues 0..1 Issues Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der Nachricht „Preisänderungen“ aufgetreten sind.

Entweder <Success> oder <Issues> ist in jeder Nachricht enthalten.

RateModificationsResponse / Issues / Issue 1..n Issue Die Beschreibung einer Warnung oder eines Fehlers, die bzw. der bei der Verarbeitung der Nachricht „RateModifications“ 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 warning, error und failure.

Beispiele

Erfolg

Die folgende Antwort ist eine Antwort auf eine erfolgreich verarbeitete Nachricht vom Typ „RateModifications“.

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
 >   <        > <       partner=&quo>t;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" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
 >   <      >     <     partner="partne>r_key"
  <Issues>
  <  Issue <code="1001" stat>us="error"Example/Issue
  /Issues
/RateModificationsResponse