RateModifications

Übersicht

Mit dieser API können Sie festlegen, wie Aktionen dynamisch auf einen Tarif angewendet werden, wenn bestimmte Bedingungen erfüllt sind, z. B. den Preis anpassen oder die Erstattungsfähigkeit aktivieren. Im Gegensatz zur Promotions API, mit der nur anwendbare Angebote mit den höchsten Rabatten angewendet werden können, werden mit dieser API alle Aktionen angewendet, wenn bestimmte Bedingungen erfüllt sind. Dazu gehören auch Preisanpassungen, die den Endpreis letztendlich erhöhen können.

Anfragen

Syntax

Die Nachricht RateModifications verwendet die folgende Syntax:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <CheckinDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </CheckoutDates>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Elemente und Attribute

Die Nachricht RateModifications enthält folgende Elemente und Attribute:

Element / @Attribut Häufigkeit Typ Beschreibung
RateModifications 1 Complex element Das Stammelement einer Nachricht zu Preisänderungen.
RateModifications / @partner 1 string Das Partnerkonto für diese Nachricht. Dieser Stringwert ist der Wert „Partnerschlüssel“, der im Hotel Center auf der Seite „Kontoeinstellungen“ aufgeführt ist.

Hinweis:Wenn Sie ein Backend haben, das Feeds für mehrere Konten bereitstellt, muss dieser Wert mit dem Attributwert 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 mehrere Ratenänderungen auf dieselbe Rate angewendet werden können, werden alle Änderungen angewendet. Es gibt keine garantierte Reihenfolge.

RateModifications / HotelRateModifications / @hotel_id 1 string Die eindeutige Kennung für die Unterkunft. Dieser Wert muss mit der Hotel-ID übereinstimmen, die mit <id> im Element <listing> im Hotellistenfeed angegeben wird. Die Hotel-ID ist auch im Hotel Center aufgeführt.
RateModifications / HotelRateModifications / @action 0..1 enum

Wenn action nicht angegeben ist, werden die Änderungen in diesem Element für dieses Hotel hinzugefügt oder aktualisiert. Wenn action="overlay" angegeben ist, werden alle zuvor definierten Änderungen für dieses Hotel zuerst gelöscht. Anschließend werden die hier angegebenen Änderungen vorgenommen. 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:Ratenänderungen sind schwer zu debuggen. Wir empfehlen, sie nur sparsam zu verwenden. Wenden Sie sich an Ihren Technical Account Manager (TAM), wenn Sie mehr als 200 Preisänderungen benötigen.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Eine eindeutige Kennung für die Preisänderung. Es sind maximal 40 Zeichen zulässig. Zulässige Zeichen sind a–z, A–Z, 0–9, _ (Unterstrich), – (Bindestrich) und . (Punkt). (Punkt).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Falls dieser Wert nicht angegeben ist und eine Ratenänderung mit derselben id nicht gespeichert wird, wird diese Ratenänderung gespeichert. Falls dieser Wert nicht angegeben ist und eine Ratenänderung mit derselben id gespeichert wird, wird die vorhandene Ratenänderung aktualisiert.

Falls angegeben, muss der Wert "delete" sein. Wenn "delete" angegeben ist, wird die gespeicherte Ratenä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 Ratenänderung angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Ein Zeitraum, der angibt, wann eine Buchung erfolgen muss, damit die Preisänderung angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Das einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss vor dem end-Datum liegen oder mit diesem übereinstimmen. Wird start nicht angegeben, ist der Zeitraum in Bezug auf das Startdatum prinzipiell unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Das einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss nach dem start-Datum liegen oder mit diesem übereinstimmen. Wird end nicht angegeben, ist der Zeitraum in Bezug auf das Enddatum nahezu unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispiel: „MTWHF“ gibt an, dass Wochentage im Zeitraum zulässig sind.

Gültige Zeichen sind:

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

Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispiel: „MTWHF“ gibt an, dass Wochentage im Zeitraum zulässig sind.

Gültige Zeichen sind:

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

Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben, sind alle Tage im Zeitraum zulässig. Jedes Zeichen im String gibt einen Tag an. Beispiel: „MTWHF“ gibt an, dass Wochentage im Zeitraum zulässig sind.

Gültige Zeichen sind:

  • 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 Preisplanänderung gilt. Wenn angegeben, wird die Ratenänderung nur angewendet, wenn der Nutzer eines der aufgeführten Geräte verwendet. Wenn nichts angegeben ist, wird die Anwendung der Ratenänderung nicht eingeschränkt.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Gibt einen Typ des Nutzergeräts an, für den die Ratenänderung gilt.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Ein Gerätetyp. Der Wert muss desktop, tablet oder mobile sein.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

Aktionen, die auf den Tarif angewendet werden, wenn alle angegebenen Bedingungen erfüllt sind.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Ändert den Tarif, indem sowohl AmountBeforeTax als auch AmountAfterTax mit dem angegebenen Multiplikator multipliziert werden.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Sowohl AmountBeforeTax als auch AmountAfterTax werden mit diesem Wert multipliziert.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Ändert den Preis, indem die angegebene Preisregel-ID darauf angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Diese ID entspricht einem Preis in einer Definition in Ihrer Datei zum Festlegen der Preisregel. Hinweis:
  • Die Zeichenbeschränkung für dieses Feld beträgt 40 Zeichen.
  • Jeder Tarif darf nur einer Tarifregel zugeordnet sein.
  • Wenn mehrere Änderungen eine Preisregel-ID anwenden, wird der Rate die lexikografisch kleinste Preisregel-ID zugewiesen.
  • Wenn diese ID nicht mit einer Preisregel in Ihrer Datei zum Festlegen der Preisregel übereinstimmt, gilt sie als nicht zulässig.
Informationen zu den verschiedenen UI-Anzeigen für Tarife für bestimmte Zielgruppen finden Sie in diesem Artikel.
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:

  • Bei dieser Änderungsaktion wird die Einstellung „Refundable“ (Erstattungsfähig) eines infrage kommenden Tarifs vollständig neu geschrieben, 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.
  • Es wird empfohlen, refundable_until_time festzulegen. Andernfalls 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, für die eine vollständige Erstattung beantragt werden kann. Der Wert für refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Wird empfohlen, wenn available den Wert true hat) Gibt die späteste Uhrzeit des Tages in der Ortszeit des Hotels an, bis zu der ein Antrag auf vollständige Erstattung berücksichtigt wird. Dies kann mit refundable_until_days kombiniert werden, um beispielsweise anzugeben, dass „Erstattungen bis 16:00 Uhr zwei Tage vor dem Check-in möglich sind“. Wenn refundable_until_time nicht festgelegt ist, wird Mitternacht als Standardeinstellung verwendet.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Überschreibt die Verfügbarkeit des Preises mit dem angegebenen Wert. Wir unterstützen nur die Einstellung des Tarifs auf unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Wenn status="unavailable", wird der Tarif so behandelt, als wäre er nicht verfügbar, unabhängig davon, ob ein gültiger Preis dafür vorhanden ist.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Definiert die Mindest- und Höchstwerte der Aufenthaltsdauer, innerhalb derer diese Ratenänderung angewendet werden kann. Die Preisänderung wird nicht angewendet, wenn die Aufenthaltsdauer außerhalb der Mindest- und Höchstwerte liegt.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Die Mindestanzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit die Preisänderung angewendet wird. Falls nicht angegeben, gibt es keine Mindestanzahl.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Die maximale Anzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit die Preisänderung angewendet wird. Falls nicht angegeben, gibt es keine maximale Anzahl.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Gibt die Mindestsumme der täglichen Zimmerpreise (mit dem größeren Wert von AmountBeforeTax oder AmountAfterTax) an, die überschritten werden muss, damit die Preisänderung angewendet werden kann.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Der Wert, der überschritten werden muss, damit die Ratenänderung angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Container für eine Liste von Preisplänen, für die die Preisänderung gilt. Wenn <RatePlans> nicht angegeben ist, gilt die Preisänderung für alle Preispläne.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Gibt einen Preisplan an. Ein Preisplan wird durch eine Kombination aus Paket, Preisen und Verfügbarkeit definiert, die in den Nachrichten „Transaktion (Unterkunftsdaten)“, „OTA_HotelRateAmountNotifRQ“ und „OTA_HotelAvailNotifRQ“ definiert und durch die PackageID identifiziert wird.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Die eindeutige Kennung für den Preisplan. Dieser Wert ist dem PackageID-Wert in <PackageData> in einer Nachricht „Transaktion (Unterkunftsdaten)“ und im Attribut RatePlanCode in <StatusApplicationControl> in den Nachrichten <OTA_HotelRateAmountNotifRQ> sowie <OTA_HotelAvailNotifRQ> zugeordnet. Es sind maximal 50 Zeichen zulässig.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Container für eine Liste von Zimmertypen, für die die Preisänderung gilt. Die Preisänderung wird auf jeden angegebenen <RoomType> angewendet. Wenn <RoomTypes> nicht angegeben ist, gilt die Preisänderung für alle Zimmer.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Gibt einen Zimmertyp an. Ein Zimmertyp wird in einem <RoomData>-Element in einer Nachricht Transaktion (Unterkunftsdaten) definiert und wird mit seinem <RoomID>-Wert referenziert. (Sein <RoomID>-Wert wird auch durch das Attribut InvTypeCode in OTA_HotelRateAmountNotifRQ-Nachrichten referenziert.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string Die eindeutige Kennung für das Inventar (Zimmertyp). Dieser Wert ist <RoomID> in einer Nachricht „Transaktion (Unterkunftsdaten)“ zugeordnet. Es sind maximal 50 Zeichen zulässig.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Ein Container für einen oder mehrere Zeiträume, die bestimmen, wie die Preisänderung angewendet wird, z. B. für saisonale Preise.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Beschreibt, wie die Preisänderung angewendet werden soll.

Gültige Werte sind:

  • 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 wird auf alle Übernachtungen im Reiseplan angewendet, 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.

Gültige Zeichen sind:

  • 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 Ratenänderung nur angewendet, wenn sich der Nutzer in einem der angegebenen Länder befindet. Wenn nicht angegeben, wird die Ratenänderung unabhängig vom Standort des Nutzers angewendet.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Der Typ der UserCountries-Spezifikation.

Gültige Werte sind include und exclude.

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

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

Wenn „UserCountries“ type nicht festgelegt ist, wird es als include behandelt und die Ratenä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 Tarifänderung an.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Ein CLDR-Ländercode, z. B. DE oder FR. Bei einigen Ländern ist der CLDR-Ländercode nicht identisch mit dem aus zwei Buchstaben bestehenden ISO-Ländercode. Regionale CLDR-Codes werden nicht unterstützt.

Beispiele

Einfache Nachricht

Das folgende Beispiel zeigt eine einfache RateModifications-Nachricht:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Eine Ratenänderung löschen

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

Alle Ratenänderungen löschen

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


Alle Preisänderungen überlagern

Im folgenden Beispiel wird gezeigt, wie <HotelRateModifications> für eine Unterkunft mit einer oder mehreren neuen Ratenänderungen überlagert wird. Bei action="overlay" werden alle gespeicherten Ratenänderungen gelöscht, bevor die in der aktuellen Nachricht angegebenen Ratenänderungen gespeichert werden:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

Mehrere Änderungsaktionen

Das folgende Beispiel zeigt, wie Sie mehrere Änderungsaktionen gleichzeitig ausführen:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Tarif für Nutzerländer deaktivieren

Das folgende Beispiel zeigt, wie Sie einen Tarif auf Nutzer in Japan (JP) beschränken:

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


Antworten

Syntax

Die Nachricht RateModificationsResponse verwendet die folgende Syntax:

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
  </Issues>
</RateModificationsResponse>

Elemente und Attribute

Die Nachricht RateModificationsResponse enthält folgende Elemente und Attribute:

Element / @Attribut Häufigkeit Typ Beschreibung
RateModifications 1 Complex element Das Stammelement, das den Erfolg oder Probleme für eine empfangene RateModifications-Anfragenachricht angibt.
RateModificationsResponse / @timestamp 1 DateTime Erstellungsdatum und ‑uhrzeit der Nachricht.
RateModificationsResponse / @id 1 string Die eindeutige Kennung der zugehörigen RateModifications-Nachricht.
RateModificationsResponse / @partner 1 string Das Partnerkonto für diese Nachricht.
RateModificationsResponse / Success 0..1 Success Gibt an, dass die RateModifications-Nachricht ohne Warnungen oder Fehler erfolgreich verarbeitet wurde.

Entweder <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 RateModifications-Nachricht 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 RateModifications-Nachricht aufgetreten ist. Weitere Informationen zu diesen Problemen finden Sie unter Fehlercodes für den Feedstatus.
RateModificationsResponse / Issues / Issue / @code 1 integer Die Kennung des Problems.
RateModificationsResponse / Issues / Issue / @status 1 enum

Die Art des Problems, das aufgetreten ist.

Gültige Werte sind warning, error und failure.

Beispiele

Erfolg

Im Folgenden finden Sie eine Antwort auf eine erfolgreich verarbeitete RateModifications-Nachricht.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</RateModificationsResponse>

Probleme

Im Folgenden finden Sie eine Antwort auf eine RateModifications-Nachricht, die aufgrund von Fehlern nicht verarbeitet wurde.

<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</RateModificationsResponse>