Preisänderungen

Übersicht

Mit dieser API können Sie Möglichkeiten definieren, um Aktionen dynamisch auf eine Rate anzuwenden, wenn Bedingungen erfüllt sind, z. B. durch Anpassung des Preises oder Aktivieren der Erstattungsfähigkeit. Im Gegensatz zur Promotions API, die nur infrage kommende Angebote mit den höchsten Rabatten, wendet diese API alle Aktionen an wenn bestimmte Bedingungen erfüllt sind, z. B. Preisanpassungen, die möglicherweise den endgültigen Preis erhöhen.

Anfragen

Syntax

Die Nachricht RateModifications verwendet die folgende Syntax:

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

Elemente und Attribute

Die Nachricht RateModifications enthält die folgenden Elemente und Attribute:

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

Hinweis: Wenn Sie ein Back-End haben, das Feeds für mehreren Konten besteht, muss dieser Wert mit dem Wert ID übereinstimmen. in <RequestorID> angegebener Attributwert deines <OTA_HotelRateAmountNotifRQ> und <OTA_HotelAvailNotifRQ> Nachrichten für dasselbe Konto.

RateModifications / @id 1 string Eine eindeutige Kennung für diese Anfragenachricht. Dieser Wert wird in der Antwortnachricht. Zulässige Zeichen sind a–z, A–Z, 0–9, _ (Unterstrich) und - (Bindestrich).
RateModifications / @timestamp 1 DateTime Erstellungsdatum und -uhrzeit der Nachricht.
RateModifications / HotelRateModifications 0..n HotelRateModifications

Preisänderungen für eine Unterkunft. Alle Preisänderungen gelten auf eine einzelne Property.

Hinweis: Wenn mehrere Preisänderungen möglich sind auf dieselbe Rate angewendet, werden alle Änderungen angewendet. Keine spezifische Reihenfolge garantiert.

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

Wenn action nicht angegeben ist, werden die Änderungen in diesem Element für das Hotel hinzugefügt oder aktualisiert werden. Wenn Wenn action="overlay" angegeben ist, werden alle zuvor definierten Änderungen für dieses Hotel werden zuerst gelöscht. Dann werden die Änderungen die hier angegeben sind. Wenn action="overlay" verwendet wird und innerhalb dieses Elements keine Änderungen angegeben sind, Änderungen für dieses Hotel werden gelöscht.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Eine einzelne Preisänderung für eine Unterkunft.

Hinweis:Preisänderungen sind schwierig zu debuggen. empfehlen wir, sie sparsam einzusetzen. Wenden Sie sich an Ihren Technical Account Manager (TAM) für Anwendungsfälle, mehr als 200 Preisänderungen erforderlich sind.

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

Falls nicht angegeben und eine Preisänderung mit derselben id wird nicht gespeichert, dann wird diese Preisänderung gespeichert. Andernfalls wird, falls nicht angegeben, eine Preisänderung mit derselben id gespeichert ist, wird die vorhandene Preisänderung aktualisiert.

Wenn angegeben, muss der Wert "delete" sein. Wenn "delete" angegeben ist, wird die gespeicherte Preisänderung mit derselben id gelöscht. Fügen Sie bei Verwendung von "delete" keine untergeordneten Elemente in <ItineraryRateModification>. Außerdem ist "delete" nicht in Verbindung mit <HotelRateModifications action="overlay"/> 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 für den Preis erfolgen muss angewendet werden soll.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von Zeitraum Dieses Datum muss vor dem end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des Zeitraum. Dieses Datum muss mit dem Datum übereinstimmen oder danach liegen. start Datum. Wenn end nicht angegeben ist, wird das Datum Der Zeitraum ist in Bezug auf ein Enddatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. Beispiel: „MTWHF“ gibt an , dass Wochentage im Zeitraum zulässig sind.

Gültige Zeichen sind:

  • 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 relativ zum Check-in-Datum (basierend auf der Zeitzone der Unterkunft). Beispiel: Der Parameter den Buchungszeitraum von mindestens 7, nicht mehr als 180 Tagen festlegen, vor dem Check-in.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Die Mindestanzahl von Tagen vor dem Check-in, an denen eine Buchung erfolgen muss damit die Preisänderung angewendet wird. Wird nichts angegeben, gibt es ist kein Minimum.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Die maximale Anzahl von Tagen vor dem Check-in, an denen eine Buchung erfolgen muss damit die Preisänderung angewendet wird. Wird nichts angegeben, gibt es ist kein Höchstwert.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Ein Container für einen oder mehrere Zeiträume, die definieren, wann ein Check-in erfolgen muss auftreten, damit die Preisänderung angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Ein Zeitraum, der angibt, wann für den Preis ein Check-in erfolgen muss angewendet werden soll. Dieses Element ist nicht erforderlich, wenn Sie Löschen einer oder mehrerer Preisänderungen.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von Zeitraum Dieses Datum muss vor dem end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des Zeitraum. Dieses Datum muss mit dem Datum übereinstimmen oder danach liegen. start Datum. Wenn end nicht angegeben ist, wird das Datum Der Zeitraum ist in Bezug auf ein Enddatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. Beispiel: „MTWHF“ gibt an , dass Wochentage im Zeitraum zulässig sind.

Gültige Zeichen sind:

  • 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 den Check-out definieren muss vorhanden sein, damit die Preisänderung angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Ein Zeitraum, der angibt, wann für den Preis ein Check-out erfolgen muss angewendet werden soll. Dieses Element ist nicht erforderlich, wenn Sie Löschen einer oder mehrerer Preisänderungen.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von Zeitraum Dieses Datum muss vor dem end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des Zeitraum. Dieses Datum muss mit dem Datum übereinstimmen oder danach liegen. start Datum. Wenn end nicht angegeben ist, wird das Datum Der Zeitraum ist in Bezug auf ein Enddatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. Beispiel: „MTWHF“ gibt an , dass Wochentage im Zeitraum zulässig sind.

Gültige Zeichen sind:

  • 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 Änderung der Rate. Wenn angegeben, ist die Preisänderung nur wird angewendet, wenn der Nutzer mit einem der aufgeführten Geräte übereinstimmt. Wenn keine Angabe erfolgt, schränkt dies nicht die Anwendung der Preisänderung ein.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Definiert einen Typ von Nutzergerät, für den der Preis gilt Änderung.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Ein Gerätetyp. Der Wert muss desktop sein, tablet oder mobile.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

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

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Ändert die Rate durch Multiplizieren von AmountBeforeTax und AmountAfterTax um den angegebenen Multiplikator
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Sowohl AmountBeforeTax als auch AmountAfterTax sind multipliziert mit diesem Wert.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Ändert den Preis durch Anwendung der angegebenen Preisregel-ID.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Diese ID ordnet einen Preis einer Definition in Ihrem Datei zur Definition der Preisregel. Hinweis: <ph type="x-smartling-placeholder">
    </ph>
  • Die maximale Zeichenanzahl für dieses Feld beträgt 40 Zeichen.
  • Jeder Preis darf nur mit einer einzigen Preisregel verknüpft werden.
  • Bei mehreren Änderungen, bei denen eine Preisregel-ID angewendet wird, der lexikografisch kleinsten Preisregel-ID zugewiesen ist, die Rate.
  • Wenn diese ID mit keiner Preisregel in Ihrer Preisregeldefinition übereinstimmt nicht zulässig ist.
Weitere Informationen finden Sie unter . In diesem Artikel finden Sie Informationen über die verschiedenen UI-Elemente für Tarife für bestimmte Zielgruppen. Behandlungsmöglichkeiten.
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 Änderungsaktion wird der erstattungsfähige nicht nur in den ausgefüllten Feldern.
  • Wenn available oder refundable_until_days gleich nicht festgelegt ist, wird der Preis nicht als erstattungsfähig angezeigt.
  • Wenn available 0 oder false ist, werden die anderen Attribute ignoriert. Der Preis wird nicht als erstattungsfähig, auch wenn eines oder beide der anderen Attribute festgelegt sind.
  • Es wird empfohlen, refundable_until_time festzulegen. wenn nicht festgelegt ist, wird der früheste Zeitpunkt (Mitternacht) verwendet.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Erforderlich) Auf 1 festlegen oder true, um anzugeben, ob der Preis einen vollständigen Erstattung; Andernfalls auf 0 oder false gesetzt.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Erforderlich, wenn available ist true). Gibt an Anzahl der Tage vor dem Check-in, innerhalb derer eine volle Erstattung erfolgen kann angefordert. Wert von refundable_until_days muss eine Ganzzahl zwischen 0 und 330 sein, wobei die beiden Grenzwerte ebenfalls zulässig sind.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (Empfohlen, wenn available den Wert true hat) Gibt die späteste Tageszeit in der Ortszeit des Hotels, dass ein voller Erstattungsantrag berücksichtigt. Dies kann mit refundable_until_days zum Angeben, für Beispiel: „Erstattungen sind bis 16:00 Uhr zwei Tage im Voraus möglich. Check-in“. Ist refundable_until_time nicht festgelegt, wird der Wert ist Mitternacht standardmäßig aktiviert.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Überschreibt die Verfügbarkeit des Preises mit dem angegebenen Wert. Die Rate kann nur auf unavailable festgelegt werden.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Bei status="unavailable" wird der Preis als sei er nicht verfügbar, unabhängig davon, ob für .
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Definiert die Grenzwerte für die Aufenthaltsdauer, innerhalb derer diese Ratenänderung erfolgen kann angewendet werden. Die Preisänderung wird nicht angewendet, wenn die Aufenthaltsdauer außerhalb der Mindest- und Höchstwerte liegen.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Die Mindestanzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit der Preis geändert wird angewendet. Wenn nicht angegeben, gibt es keine Mindestanzahl.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Die maximale Anzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit die Preisänderung angewendet. Wird keine Angabe gemacht, gibt es kein Maximum.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Gibt die Mindestsumme der täglichen Zimmerpreise an (unter Verwendung des höheren Werts AmountBeforeTax oder AmountAfterTax), die auf überschritten wird, damit die Preisänderung angewendet wird.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Der Wert, der überschritten werden muss, damit die Preisänderung angewendet.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Container für eine Liste von Preisplänen, denen die Preisänderung unterliegt gilt. Wenn <RatePlans> nicht angegeben ist, wird der Preis für alle Preispläne gilt.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Gibt einen Preisplan an. Ein Preisplan wird durch eine Kombination Paket, Preise und Verfügbarkeit, wie in „Transaktion“ definiert (Unterkunftsdaten), OTA_HotelRateAmountNotifRQ und OTA_HotelAvailNotifRQ Nachrichten und wie durch die PackageID identifiziert.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Die eindeutige Kennung für den Preisplan. Dieser Wert wird der PackageID-Wert in <PackageData> in der Nachricht „Transaktion (Unterkunftsdaten)“ und in der Attribut „RatePlanCode“ in <StatusApplicationControl> in beiden <OTA_HotelRateAmountNotifRQ> und <OTA_HotelAvailNotifRQ> Nachrichten. Es sind maximal 50 Zeichen zulässig.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Container für eine Liste von Zimmertypen, für die die Preisänderung gilt. Die Preisänderung wird auf jede <RoomType> angewendet angegeben ist. Wenn <RoomTypes> nicht angegeben ist, wird der Preisänderung gilt für alle Zimmer.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Gibt einen Zimmertyp an. Ein Zimmertyp wird in einem <RoomData>-Element in einem Transaktion (Unterkunftsdaten) und ist mit seinem <RoomID>-Wert referenziert wird. (Die Der Wert <RoomID> wird auch vom Attribut InvTypeCode in OTA_HotelRateAmountNotifRQ messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string Die eindeutige Kennung für das Inventar (Zimmertyp). Dieser Wert wird zugeordnet an <RoomID> in einer Nachricht „Transaktion (Unterkunftsdaten)“. Es sind maximal 50 Zeichen zulässig.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Ein Container für einen oder mehrere Zeiträume, die festlegen, wie die Ratenänderung angewendet wird, z. B. für saisonale Preise.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Beschreibt, wie die Ratenänderung angewendet wird.

Gültige Werte sind:

  • all: Wendet die Preisänderung auf jede Übernachtung im den Reiseplan, wenn sich alle Datumsangaben im Reiseplan überschneiden mit den Aufenthaltsdaten.
  • any: Wendet die Preisänderung auf alle Übernachtungen im den Reiseplan, wenn sich ein Datum im Reiseplan mit einem Datum in Aufenthaltszeitraum.

Dieses Attribut muss immer angegeben werden.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Zeitraum, der angibt, wann die Preisänderung wirksam werden soll angewendet.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von Zeitraum Dieses Datum muss vor dem end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des Zeitraum. Dieses Datum muss mit dem Datum „start“ übereinstimmen oder danach liegen Datum. Wenn end nicht angegeben ist, wird das Datum Der Zeitraum ist in Bezug auf ein Enddatum praktisch unbegrenzt.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Die Wochentage, die im Zeitraum zulässig sind. Falls nicht angegeben ist, sind im Zeitraum alle Tage zulässig. Jedes in der Zeichenfolge einen Tag angibt. Beispiel: „MTWHF“ gibt an , dass Wochentage im Zeitraum zulässig sind.

Gültige Zeichen sind:

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

Gültige Werte sind include und exclude.

Wenn für das Nutzerland type folgender Wert festgelegt ist: include gilt, gilt die Preisänderung für Nutzer aus den aufgeführten Ländern.

Wenn das Feld „UserCountry“ type den Wert exclude hat, gilt die Preisänderung für Nutzer außerhalb der aufgeführten Länder.

Wenn das Feld „UserCountry“ (type) nicht konfiguriert ist, wird es wie folgt behandelt: include 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 einen CLDR-Ländercode wie DE oder FR. Bei einigen Ländern, ist der CLDR-Ländercode nicht dasselbe wie der aus zwei Buchstaben bestehende ISO-Code Ländercode. Außerdem werden CLDR-Regionscodes nicht unterstützt.

Beispiele

Einfache Nachricht

Das folgende Beispiel zeigt eine einfache RateModifications`-Nachricht:

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


Eine Preisänderung löschen

Das folgende Beispiel zeigt, wie Sie eine Preisänderung für eine Property:

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

Alle Preisänderungen löschen

Das folgende Beispiel zeigt, wie Sie alle Ratenänderungen für eine Property:

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


Alle Preisänderungen überlagern

Das folgende Beispiel zeigt, wie <HotelRateModifications> für Unterkunft mit einer oder mehreren neuen Preisänderungen. Wann? action="overlay" werden alle gespeicherten Preisänderungen vor dem die in der aktuellen Nachricht angegebenen Preisänderungen gespeichert werden:

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

Mehrere Änderungsaktionen

Das folgende Beispiel zeigt, wie mehrere Änderungsaktionen durchgeführt werden auf einmal:

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


Preisplan für Nutzerländer deaktivieren

Das folgende Beispiel zeigt, wie Sie einen Preisplan auf Japanisch (JP) Nutzer:

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


Antworten

Syntax

Die Nachricht RateModificationsResponse verwendet die folgende Syntax:

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

Elemente und Attribute

Die Nachricht RateModificationsResponse enthält Folgendes: -Elemente und -Attribute:

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

Entweder <Success> oder <Issues> ist Nachrichten enthalten.

RateModificationsResponse / Issues 0..1 Issues Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der RateModifications gesendet.

Entweder <Success> oder <Issues> ist Nachrichten enthalten.

RateModificationsResponse / Issues / Issue 1..n Issue Die Beschreibung einer Warnung oder eines Fehlers, der aufgetreten ist während Preisänderungen verarbeiten kann. Details zu diesen Problemen können gefunden in Fehler beim Feedstatus Nachrichten
RateModificationsResponse / Issues / Issue / @code 1 integer Die Kennung des Problems.
RateModificationsResponse / Issues / Issue / @status 1 enum

Die Art des Problems.

Gültige Werte sind warning, error und failure.

Beispiele

Erfolg

Im Folgenden finden Sie eine Antwort auf erfolgreich verarbeitete RateModifications angezeigt.

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

Probleme

Im Folgenden finden Sie eine Antwort auf eine nicht verarbeitete Nachricht „RateModifications“ Fehler.

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