Werbeaktionen

Übersicht

Mit dieser API können Sie mögliche Rabatte angeben. Von den angegebenen Angeboten Google wendet das infrage kommende Angebot oder die infrage kommenden Angebote an, die zur niedrigster Preis. Wenn Sie nach einer API suchen, die eine beliebige Rate unterstützt Anpassungen, die den Preis erhöhen oder senken können, wenn bestimmte Bedingungen erfüllt sind dann denken Sie an unsere Rate Modifications API verwendet. Wenn beide APIs vorhanden sind, werden die Ratenänderungen vor dem Werbeaktionen

Anfragen

Syntax

Die Nachricht Promotions verwendet die folgende Syntax:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
            id="message_ID"
            timestamp="timestamp">
  <HotelPromotions hotel_id="HotelID" action="[overlay]">
    <Promotion id="PromotionID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
      </BookingDates>
      <BookingWindow min="integer_or_duration" max="integer_or_duration"/>
      <Ceiling amount_per_night="float"/>
      <Floor amount_per_night="float"/>
      <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>
      <!-- Specify only one of percentage, fixed_amount, fixed_amount_per_night,
           fixed_price, or fixed_price_per_night; applied_nights is only used
           with percentage, fixed_amount_per_night, and fixed_price_per_night. -->
      <Discount percentage="float" fixed_amount="float" fixed_amount_per_night="float"
                fixed_price="float" fixed_price_per_night="float"
                applied_nights="integer_1_to_99" rank="integer_1_to_99">
        <!-- FreeNights may not be used in conjunction with attributes on Discount -->
        <FreeNights stay_nights="integer" discount_nights="integer"
                    discount_percentage="float" night_selection="[cheapest|last]"
                    repeats="boolean"/>
      </Discount>
      <!-- Exactly one of Discount or BestDailyDiscount must be specified.
           Specify only one of percentage, fixed_amount, or fixed_price. -->
      <BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <InventoryCount min="integer" max="integer"/>
      <LengthOfStay min="integer" max="integer"/>
      <MembershipRateRule id="RateRuleID"/>
      <MinimumAmount before_discount="integer"/>
      <Occupancy min="integer" max="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <Stacking type="[any|base|none|second]"/>
      <StayDates application="[all|any|overlap]">
        <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>
    </Promotion>
  </HotelPromotions>
</Promotions>

Elemente und Attribute

Die Nachricht „Angebote“ enthält die folgenden Elemente und Attribute:

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

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

Promotions / @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).
Promotions / @timestamp 1 DateTime Erstellungsdatum und -uhrzeit der Nachricht.
Promotions / HotelPromotions 0..n HotelPromotions

Angebote für eine Unterkunft. Jedes Angebot gilt für einen Property.

Wenn <Stacking> nicht verwendet wird, Das Angebot mit dem größten Rabatt wird auf die Buchung angewendet, wenn mehrere Angebote infrage kommen.

Promotions / HotelPromotions / @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. Die Hotel-ID ist auch im Hotel Center aufgeführt.
Promotions / HotelPromotions / @action 0..1 enum

Falls angegeben, muss der Wert "overlay" Wenn der Wert "overlay" ist, werden alle gespeicherte Angebote werden vor dem Speichern der angegebenen Angebote gelöscht. in der aktuellen Nachricht.

Wenn nicht angegeben, werden alle Angebote im aktuellen lautet entweder:

  • Added (wenn keines der gespeicherten Angebote die gleich id)
  • Updated (wenn ein gespeichertes Angebot die gleichen id)
  • Deleted (wenn ein gespeichertes Angebot die gleichen id und der Wert des Attributs action für das in der aktuellen Nachricht angegebene Angebot ist "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

Ein einzelnes Angebot für eine Unterkunft. Wenn action="overlay" und <Promotion> sind nicht angegeben ist, werden alle Angebote für die Property gelöscht.

Wenn Sie mehr als 99 Angebote verwenden möchten, wenden Sie sich an Ihren Technical Account Manager (TAM).

Promotions / HotelPromotions / Promotion / @id 1 string Eine eindeutige Kennung für das Angebot. Die maximale Anzahl von sind 40 Zeichen zulässig. Zulässige Zeichen sind a-z, A-Z, 0-9, _ (Unterstrich), - (Bindestrich) und . (Punkt).
Promotions /HotelPromotions / Promotion / @action 0..1 enum

Wenn angegeben, muss der Wert delete sein. Falls nicht und ein Werbeaktion mit derselben id nicht gespeichert wird, Werbeaktion gespeichert wird. Andernfalls, falls nicht angegeben, und ein Angebot mit dieselbe id gespeichert wird, wird das vorhandene Angebot aktualisiert.

Wenn delete angegeben ist, wird das gespeicherte Angebot mit dem Dasselbe id wird gelöscht. Fügen Sie bei Verwendung von delete keine untergeordneten Elemente in <Promotion>. Außerdem ist delete nicht in Verbindung mit <HotelPromotions action="overlay"/> zulässig.

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates Ein Container für einen oder mehrere Bereiche, die definieren, wann eine Buchung erfolgen muss damit das Angebot angewendet werden kann.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange Ein Bereich, der angibt, wann eine Buchung erfolgen muss, damit das Angebot zu sehen ist angewendet.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 Date oder DateTime

Das Startdatum oder Datum und Uhrzeit (basierend auf der Zeitzone der Property) (einschließlich) des Bereichs.

  • Das in start angegebene Datum oder Datum/Uhrzeit muss vor dem Datum oder der Uhrzeit, die durch end.
  • Wenn start nicht angegeben ist, gilt der Bereich als effektiv in Bezug auf die Startzeit unbegrenzt.
  • Wenn start das Datum „JJJJ-MM-TT“ hat, ist es interpretiert als Datum und Uhrzeit "JJJJ-MM-TTT00:00:00".
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date oder DateTime

Das Enddatum oder Datum und Uhrzeit (basierend auf der Zeitzone der Property) (einschließlich) des Bereichs.

  • Das in end angegebene Datum oder Datum und Uhrzeit müssen später liegen als (oder gleich) das Datum oder das Datum, das durch start.
  • Wenn end nicht angegeben ist, gilt der Bereich als effektiv unbegrenzt.
  • Wenn end als Datum „JJJJ-MM-TT“ angegeben wird, ist es interpretiert als Datum und Uhrzeit "JJJJ-MM-TTT23:59:59".
Promotions / HotelPromotions / Promotion / 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.

Promotions / HotelPromotions / Promotion / 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.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration Die Mindestdauer vor dem Check-in, wenn eine Buchung erfolgen muss damit das Angebot angewendet wird. Wenn nichts angegeben ist oder sein Wert ist 0, es gibt keine Mindestanzahl.

Folgende Werttypen sind gültig:

  • Ganzzahl:Anzahl der Tage vor dem Check-in Datum. Beispielsweise gibt der Wert 30 an, Das Angebot gilt nur für Buchungen, die mindestens 30 Tage vor dem Check-in-Datum.
  • ISO 8601-Dauer (Tage, Stunden und Minuten): Die Anzahl der Tage (und optional Stunden/Minuten) vor dem Anreisedatum. Für Beispiel: Der Wert P30D gibt nur das Angebot an. gilt für Buchungen mindestens 30 Tage vor dem Anreisedatum. A Für den Wert P30DT6H ist eine Buchung ab 18:00 Uhr am am 30. Tag vor der Ankunft.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration Die maximale Anzahl von Tagen vor dem Check-in, an denen eine Buchung erfolgen muss damit das Angebot angewendet wird. Wenn nichts angegeben ist oder sein Wert ist 0, es gibt keine Obergrenze.

Folgende Werttypen sind gültig:

  • Ganzzahl:Anzahl der Tage vor dem Check-in Datum. Beispielsweise gibt der Wert 30 an, Angebot gilt nur für Buchungen, die maximal 30 Tage vor dem Check-in-Datum.
  • ISO 8601-Dauer (Tage, Stunden und Minuten): Die Anzahl der Tage (und optional Stunden/Minuten) vor dem Anreisedatum. Für Beispiel: Der Wert P30D gibt nur das Angebot an. gilt für Buchungen, die höchstens 30 Tage vor dem Anreisedatum erfolgen. A Im Wert von P30DT6H ist eine Buchung ab 18:00 Uhr am am 30. Tag vor der Ankunft.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

Definiert Einschränkungen für den Höchstwert, auf den ein Preis festgelegt werden kann nachdem die Angebote angewendet wurden.

Angebote müssen immer einen <Discount> oder einen <BestDailyDiscount>. Um ein Angebot zu erstellen, nur <Ceiling> anwendet, können Sie z. B. <Discount> mit percentage von 0

Wenn eine Stapelung konfiguriert ist, <Ceiling> kann sich auf einen einzelnen Aufenthalt beziehen. Jede Werbeaktion würde den Rabatt, unmittelbar gefolgt von der Obergrenze, anwenden. Die Das folgende Beispiel zeigt, wie jede Obergrenze Angebotsberechnung im Stapel.

Beispiel:

Preis für 1 Übernachtung im Hotel „AmountBeforeTax“ 100 und es gibt zwei Werbeaktionen:

  1. Angebot mit Stapeltyp base, a fixed_amount von 25 und eine Obergrenze amount_per_night von 60
  2. Angebot mit Stapeltyp second, fixed_amount von 25 und eine Obergrenze amount_per_night von 90

Hier ist die Reihenfolge der Berechnung:

  1. Das Angebot „base“ wird zuerst angewendet und die Rabatte werden zuerst angewendet AmountBeforeTax auf 75, aber dann wird die Decke gesenkt auf 60.
  2. Das Angebot „second“ gewährt einen Rabatt auf das AmountBeforeTax von 60 auf 35. Das ist unterhalb der Decke. damit die zweite Obergrenze nicht angewendet wird. Der endgültige Preis ist 35

Die Tatsache, dass die Obergrenze von 60 insgesamt strenger ist, ist irrelevant, da Es gilt nur für eine eigene Werbeaktion und es darf kein einziges die sich über den gesamten Angebotspaket erstreckt.

Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night 1 float

Der maximale Betrag, auf den ein Übernachtungspreis nach dem angewendet wird.

Wenn auch ein <Floor>-Element angegeben ist, wird dies muss auf einen Wert größer oder gleich dem Attribut „amount_per_night“ in <Floor>

amount_per_night wird auf Steuern und Gebühren angewendet, wenn sind bei AmountAfterTax im Übernachtungspreis enthalten, aber nicht die mit TaxFeeInfo angegebenen.

Promotions / HotelPromotions / Promotion / Floor 0..1 Floor

Definiert Einschränkungen für den Mindestwert, auf den ein Preis festgelegt werden kann nachdem die Angebote angewendet wurden.

Angebote müssen immer einen <Discount> oder einen <BestDailyDiscount>. Um ein Angebot zu erstellen, nur <Floor> anwendet, können Sie z. B. <Discount> mit percentage von 0

Die <Floor>-Logik gilt weiterhin für <FreeNights> Rabatte, auch wenn die kostenlose Nacht einen Es wurde ein Rabatt von 100% angewendet.

Wenn eine Stapelung konfiguriert ist, <Floor> kann sich auf einen einzelnen Aufenthalt beziehen. Jede Werbeaktion wird der Rabatt angewendet, direkt gefolgt vom Mindestpreis. Die Das folgende Beispiel zeigt, wie jede Etage zum nächsten Angebotsberechnung im Stapel.

Beispiel:

Preis für 1 Übernachtung im Hotel „AmountBeforeTax“ 100 und es gibt zwei Werbeaktionen:

  1. Angebot mit Stapeltyp base, a fixed_amount von 25 und eine Etage amount_per_night von 90
  2. Angebot mit Stapeltyp second, fixed_amount von 25 und eine Etage amount_per_night von 60

Hier ist die Reihenfolge der Berechnung:

  1. Das Angebot „base“ wird zuerst angewendet und die Rabatte werden zuerst angewendet AmountBeforeTax auf 75, aber dann erhöht der Mindestpreis bis zu 90.
  2. Das Angebot „second“ gewährt einen Rabatt auf das AmountBeforeTax von 90 auf 65. Dieser Bereich befindet sich über dem Boden. damit der zweite Mindestbetrag nicht angewendet wird. Der endgültige Preis ist 65

Die Tatsache, dass die 90-Stufe insgesamt ein strenger ist, spielt keine Rolle, da Es gilt nur für eine eigene Werbeaktion und es darf kein einziges die sich über das gesamte Angebotspaket erstreckt.

Promotions / HotelPromotions / Promotion / Floor / @amount_per_night 1 float

Der Mindestbetrag, auf den ein Übernachtungspreis nach dem angewendet wird.

Wenn auch ein <Ceiling>-Element angegeben ist, wird dies muss auf einen Wert kleiner oder gleich dem Attribut „amount_per_night“ in <Ceiling>

amount_per_night wird auf Steuern und Gebühren angewendet, wenn sind bei AmountAfterTax im Übernachtungspreis enthalten, aber nicht die mit TaxFeeInfo angegebenen.

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates Ein Container für einen oder mehrere Zeiträume, die definieren, wann ein Check-in erfolgen muss damit das Angebot angewendet wird.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

Ein Zeitraum, der angibt, wann ein Check-in erfolgen muss, damit das Angebot angewendet werden. Dieses Element ist nicht erforderlich, wenn Sie ein oder mehrere Elemente löschen Werbeaktionen

Das Format YearlessDate wird ebenfalls unterstützt.

  • Wenn start oder end jahreslos ist Datum eingeben, müssen beide als jahreslose Datumsangaben ausgefüllt werden.
  • Zeiträume ohne Jahre dürfen nicht um das neue Jahr gelegt werden. Stattdessen können Sie den Zeitraum als zwei nebeneinanderliegende Zeiträume darstellen. Beispiel: {"12-29", "01-05"} kann als {"12-29", "12-31"} dargestellt werden und {"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von Zeitraum Dieses Datum muss vor dem Ereignisdatum liegen oder diesem entsprechen. end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0..1 Date or YearlessDate Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des Zeitraum. Dieses Datum muss mit dem Datum „start“ übereinstimmen oder danach liegen Datum. Wenn end nicht angegeben ist, wird das Datum ist in Bezug auf ein Enddatum praktisch unbegrenzt.
Promotions / HotelPromotions / Promotion / 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.

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates Ein Container für einen oder mehrere Zeiträume, die den Check-out definieren muss eintreten, damit das Angebot angewendet wird.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

Ein Zeitraum, der angibt, wann ein Check-out erfolgen muss, damit das Angebot angewendet werden. Dieses Element ist nicht erforderlich, wenn Sie oder mehrere Werbeaktionen löschen.

Das Format YearlessDate wird ebenfalls unterstützt.

  • Wenn start oder end ein Jahr ohne Jahr ist Datum eingeben, müssen beide als Datumsangaben ohne Jahresangabe angegeben werden.
  • Zeiträume ohne Jahre dürfen nicht um das neue Jahr gelegt werden. Stattdessen können Sie den Zeitraum als zwei nebeneinanderliegende Zeiträume darstellen. Beispiel: {"12-29", "01-05"} kann dargestellt werden als {"12-29", "12-31"} und {"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von Zeitraum Dieses Datum muss vor dem Ereignisdatum liegen oder diesem entsprechen. end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des Zeitraum. Dieses Datum muss mit dem Datum „start“ übereinstimmen oder danach liegen Datum. Wenn end nicht angegeben ist, wird das Datum ist in Bezug auf ein Enddatum praktisch unbegrenzt.
Promotions / HotelPromotions / Promotion / 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.

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices Container zum Auflisten der Nutzergeräte, die für die Werbung. Falls angegeben, nur berechtigte Nutzer auf den aufgeführten Geräten wird der rabattierte Preis angeboten. Wenn nicht angegeben, können berechtigte Nutzer auf beliebigen Gerät wird der ermäßigte Preis angeboten.
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device Definiert einen Typ von Nutzergerät, für den das Angebot gilt.
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum Ein Gerätetyp. Der Wert muss desktop sein, tablet oder mobile.
Promotions / HotelPromotions / Promotion / Discount 1 Discount

Genau eines der folgenden Werte: Discount oder BestDailyDiscount muss angegeben werden.

Gibt den Rabatt an, der auf dieses Angebot angewendet werden soll.

Promotions / HotelPromotions / Promotion / Discount / @percentage 0..1 float

Genau eines von percentage, fixed_amount, fixed_amount_per_night, fixed_price oder fixed_price_per_night ist erforderlich.

Ein Dezimalwert zwischen 0 und 100, der den Rabatt in Prozent angibt. Sie wird auf AmountAfterTax (oder AmountBeforeTax, wenn AmountAfterTax nicht angegeben).

Beispiele:

  • Wenn AmountAfterTax 100 ist und percentage 20 ist, dann

    Angebotspreis = AmountAfterTax * (1 - Prozentsatz) Rabatt)

    80,00 = 100 * (1 - 0,2)

  • Wenn AmountBeforeTax 100 ist, percentage ist 20 und TaxFeeInfo gibt eine Steuer von 10 an, dann

    Angebotspreis = AmountBeforeTax * (1 - Prozentsatz) Rabatt) + Steuern

    90,00 = 100 * (1 - 0,2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

Genau eines von percentage, fixed_amount, fixed_amount_per_night, fixed_price oder fixed_price_per_night ist erforderlich.

Ein fester Betrag, der von der Summe der AmountAfterTax Übernachtungspreise (oder Summe der AmountBeforeTax Übernachtungspreise, wenn AmountAfterTax ist nicht angegeben). Es wird angenommen, dass in derselben Währung wie die Übernachtungspreise angegeben. Ist dieser größer als die Summe der Übernachtungspreise lautet der resultierende Wert null.

Beispiele:

  • Wenn wir den Preis für eine Übernachtung berechnen, AmountBeforeTax ist 90, AmountAfterTax ist 100 und fixed_amount 20 ist, dann

    Angebotspreis = AmountAfterTax - fest Rabatt

    80,00 = 100 - 20

  • Wenn wir den Preis für eine Übernachtung berechnen, AmountBeforeTax ist 100, fixed_amount und TaxFeeInfo eine Steuer von 8 % angibt,

    Angebotspreis = (AmountBeforeTax – fest) Rabatt) * (1 + Steuern in Prozent)

    86,40 = (100 - 20) * 1,08

  • Wenn wir den Preis für eine Übernachtung berechnen, AmountBeforeTax ist 50, fixed_amount ist und TaxFeeInfo eine Steuer von 10 angibt,

    Angebotspreis = (AmountBeforeTax – fest) Rabatt) * Steuern

    10,00 = 0 + 10

  • Wenn wir den Preis für drei Übernachtungen berechnen, AmountAfterTax-Werte sind 100, 110 und 120. und fixed_amount ist 150, dann

    Angebotspreis = Summe(AmountAfterTax) - (fest) Rabatt)

    180,00 = (100 + 110 + 120) - 150

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night 0..1 float

Genau eines von percentage, fixed_amount, fixed_amount_per_night, fixed_price oder fixed_price_per_night ist erforderlich.

Ein fester Rabatt, der auf jeden AmountAfterTax angewendet wird Übernachtungspreise (oder günstigste N, wenn applied_nights angegeben ist). Wenn AmountAfterTax nicht angegeben ist, wird auf angewendet auf AmountBeforeTax. Es wird angenommen, dass in derselben Währung wie die Übernachtungspreise angegeben. Wenn fixed_amount_per_night ist größer als ein pro Übernachtung ist, wird dieser Übernachtungspreis auf null reduziert – den Rabatt darf nicht dazu führen, dass ein Übernachtungspreis negativ wird.

Beispiele:

  • Wenn wir den Preis für drei Übernachtungen berechnen, AmountAfterTax-Werte sind 100, 110 und 120. und die fixed_amount_per_night ist 10, dann

    Angebotspreis = Summe(AmountBeforeTax - Festbetrag) Rabatt)

    300,00 = ((100 - 10) + (110 - 10) + (120 - 10))

  • Wenn wir den Preis für drei Übernachtungen berechnen, AmountAfterTax-Werte sind 10, 50 und 100. und die fixed_amount_per_night ist 20, dann

    Angebotspreis = Summe(AmountAfterTax - Festbetrag) Rabatt)

    110,00 = (0 + (50 - 20) + (100 - 20))

Promotions / HotelPromotions / Promotion / Discount / @fixed_price 0..1 float

Genau eines von percentage, fixed_amount, fixed_amount_per_night, fixed_price oder fixed_price_per_night ist erforderlich.

Wenn AmountAfterTax-Übernachtungspreise angegeben sind, gilt Folgendes: legt den Preis für den Aufenthalt, einschließlich Steuern und Gebühren, auf den angegebenen Wert. Wenn AmountBeforeTax angegeben ist, dann gilt: unabhängig davon, ob AmountAfterTax angegeben ist, Preis vor Steuern für den Aufenthalt im angegebenen Wert. Es wird angenommen, dass in derselben Währung wie die Übernachtungspreise angegeben.

Wenn AmountAfterTax ein Prozent und anschließend einen Festpreis für AmountBeforeTax kann zu ungenauen Steuern und Gebühren führen. Im Allgemeinen wird dringend empfohlen, TaxFeeInfo zu verwenden. , um die Steuern und Gebühren einer Unterkunft anzugeben.

Beispiele:

  • Wenn wir den Preis für eine Übernachtung berechnen, AmountBeforeTax ist 90, AmountAfterTax ist 100 und fixed_price 80, dann liegt der Angebotspreis bei 80.
  • Wenn wir den Preis für eine Übernachtung berechnen, AmountBeforeTax ist 100, fixed_amount und TaxFeeInfo eine Steuer von 8 % angibt,

    Angebotspreis = Festpreis * (1 + Steuern in Prozent)

    86,40 = 80 * 1,08

  • Wenn wir den Preis für drei Übernachtungen berechnen, AmountAfterTax-Werte sind 100, 110 und 120. und fixed_amount ist 300, dann

    Angebotspreis = 300

Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night 0..1 float

Genau eines von percentage, fixed_amount, fixed_amount_per_night, fixed_price oder fixed_price_per_night ist erforderlich.

Wenn AmountAfterTax-Übernachtungspreise angegeben sind, gilt Folgendes: legt den Preis für jede Übernachtung, einschließlich Steuern und Gebühren, an den angegebenen Wert. Wenn AmountBeforeTax angegeben ist, dann gilt: unabhängig davon, ob AmountAfterTax angegeben ist, Preis vor Steuern für jede Übernachtung zum angegebenen Wert. Es ist Es wird angenommen, dass die Währung der Übernachtungspreise entspricht.

Wenn AmountAfterTax ein Prozent und anschließend einen Festpreis für AmountBeforeTax kann zu ungenauen Steuern und Gebühren führen. Im Allgemeinen wird dringend empfohlen, TaxFeeInfo zu verwenden. , um die Steuern und Gebühren einer Unterkunft anzugeben.

Wenn applied_nights angegeben ist, gilt der neue Preis auf die günstigsten N Nächte angewendet.

Beispiele:

  • Wenn wir einen Aufenthalt von zwei Übernachtungen berechnen, AmountBeforeTax-Werte sind 90, 90. Die Werte für AmountAfterTax sind 100, 100. und fixed_price beträgt 80, dann beträgt der Angebotspreis 80 + 80 = 160.
  • Wenn wir einen Aufenthalt von zwei Übernachtungen berechnen, AmountBeforeTax ist 100, 100. fixed_amount 80 liegt und TaxFeeInfo eine Steuer von 8 % angibt, ist (80 + 80) * 1,08 = 172,8.
  • Wenn wir den Preis für drei Übernachtungen berechnen, AmountAfterTax-Werte sind 100, 110 und 120. und fixed_amount ist 110, dann beträgt der Angebotspreis 110 * 3 = 330.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

Sollte nur in Verbindung mit percentage oder fixed_amount_per_night.

Die Anzahl der Übernachtungen, auf die der Rabatt angewendet wird, beginnend mit am günstigsten sind. Muss eine Ganzzahl zwischen 1 und 99 sein. Wenn keine Angabe erfolgt, Der Rabatt wird auf alle Nächte angewendet.

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights Gibt einen Rabatt für bestimmte Übernachtungen bei einer Mindestaufenthaltsdauer an nicht eingehalten wird. Attribute für das übergeordnete Element Discount sind nicht zulässig, wenn dieses Element verwendet wird.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

Anzahl der erforderlichen Übernachtungen, damit der Rabatt angewendet wird. Jedes Der Rabatt wird auf ein separates Segment der Übernachtungen angewendet.

Beispiel: Für einen Aufenthalt von 10 Übernachtungen, bei dem stay_nights 4 (und repeats ist wahr), dann gibt es zwei Übernachtungen Segmente: 1. bis 4. Nächte und 5. bis 8. Nächte; die Die 9. und 10. Nächte gehören nicht zum Segment „Aufenthaltnacht“.

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer Die Anzahl der rabattierten Übernachtungen in jedem Segment der Übernachtungen.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float Der Rabatt, der auf die Rabattnächte angewendet wird. Wenn dieser Wert ist 50, dann erhalten Sie für jede ausgewählte Übernachtung 50% Rabatt.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string Muss entweder cheapest oder last sein. Wenn last, dann die Übernachtungen am Ende des Aufenthaltsabschnitts Übernachtungen sind vergünstigt. Wenn cheapest, dann ist das günstigste Übernachtungen im Segment der Übernachtungen werden rabattiert.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

Ob der Rabatt auf mehrere Übernachtungen angewendet werden kann Segmente. Wenn false, dann nur das Segment mit Übernachtungen am zu Beginn des Reiseplans rabattiert. Wenn true, dann wird für jeden Teil der Übernachtungen rabattiert.

Beispiel: Wenn stay_nights den Wert 4 hat und der Reiseplan 10 Nächte, dann, wenn repeats den Wert true hat, dann 2 Segmente sind rabattiert (Übernachtungen 1–4 und Nächte 5–8); aber wenn „repeats“ ist „false“, dann ist nur ein Segment vergünstigt (Übernachtungen 1–4).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer Weist dieser Werbung einen Rang zu und aktiviert sie für die Rangauswahl, wobei wird nur das Angebot mit dem niedrigsten Rang für die Anwendung ausgewählt. Werte muss zwischen 1 und 99 (einschließlich) liegen. Wenn mehrere Angebote den gleichen wird 1 willkürlich ausgewählt und angewendet.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

Genau eines der folgenden Werte: Discount oder BestDailyDiscount muss angegeben werden.

Gibt einen täglichen Rabatt an, der auf eine Nacht im Zeitraum angewendet werden kann bleiben. Im Gegensatz dazu gilt Discount, Rabatte für ganze Aufenthalte.

Für jede Unterkunft kann eine Gruppe von Angeboten festgelegt werden, als „bester täglich“ gelten. Das bedeutet, dass die Anzahl der Single „Bester Tag“ infrage kommende Werbung, die den höchsten Der Rabatt für diese Nacht wird ausgewählt und kann angewendet werden.

Stacking darf nicht angegeben werden mit BestDailyDiscount. Der „beste Tag“ Rabatte, die den der höchste Rabatt pro Übernachtung kombiniert und als Einzelrabatt behandelt Aufenthaltsrabatt (z.B. Discount) mit folgendem Stapeltyp: base. Dieser kombinierte Rabatt wird verglichen und kann gestapelt werden, andere zulässige <Discount> Werbeaktionen, um die einen oder eine Kombination aus, die den höchsten Rabatt bietet. Entweder Kombination aus BestDailyDiscount oder einem einzelnen Discount, je nachdem, welcher Preis den niedrigeren Preis erzielt, wird ausgewählt und base-Stapeltyp angewendet.

StayDates kann mit dieser Art von Rabatt angegeben werden, aber application muss auf overlap festgelegt sein

.
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage 0..1 float

Genau eines von percentage, fixed_amount oder fixed_price ist erforderlich.

Ein Dezimalwert zwischen 0 und 100, der den Rabatt in Prozent angibt. Sie wird auf AmountAfterTax (oder AmountBeforeTax, wenn AmountAfterTax nicht angegeben).

Beispiele:

  • Wenn der AmountAfterTax für eine Übernachtung 100 beträgt und percentage ist 20, dann

    Angebotspreis = AmountAfterTax * (1 - Prozentsatz) Rabatt)

    80,00 = 100 * (1 - 0,2)

  • Wenn AmountBeforeTax für eine Aufenthaltsdauer 100 ist, percentage ist 20 und TaxFeeInfo gibt eine Steuer von 10 an, dann

    Angebotspreis = AmountBeforeTax * (1 - Prozentsatz) Rabatt) + Steuern

    90,00 = 100 * (1 - 0,2) + 10

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount 0..1 float

Genau eines von percentage, fixed_amount oder fixed_price ist erforderlich.

Ein fester Betrag, der von einem Einzelnen subtrahiert wird AmountAfterTax Übernachtungspreis (oder Preis pro Übernachtung: AmountBeforeTax, wenn AmountAfterTax ist nicht angegeben). Es wird angenommen, dass in derselben Währung wie die Übernachtungspreise angegeben. Ist dieser größer als die Summe der Übernachtungspreise lautet der resultierende Wert null.

Beispiele:

  • Wenn der AmountBeforeTax für eine einzelne Nacht 90 beträgt, AmountAfterTax ist 100 und fixed_amount 20 ist, dann

    Angebotspreis = AmountAfterTax - fest Rabatt

    80,00 = 100 - 20

  • Wenn der AmountBeforeTax für eine einzelne Nacht 100 beträgt, fixed_amount ist 20 und TaxFeeInfo gibt eine Steuer in Höhe von 8%, dann

    Angebotspreis = (AmountBeforeTax – fest) Rabatt) * (1 + Steuern in Prozent)

    86,40 = (100 - 20) * 1,08

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price 0..1 float

Genau eines von percentage, fixed_amount oder fixed_price ist erforderlich.

Wenn AmountAfterTax-Übernachtungspreise angegeben sind, gilt Folgendes: legt den Preis für die Übernachtung, einschließlich Steuern und Gebühren, auf den angegebenen Wert. Wenn AmountBeforeTax angegeben ist, dann gilt: unabhängig davon, ob AmountAfterTax angegeben ist, Preis vor Steuern für den Aufenthalt im angegebenen Wert. Es wird angenommen, dass in derselben Währung wie die Übernachtungspreise angegeben.

Beispiele:

  • Wenn der AmountBeforeTax für eine einzelne Nacht 90 beträgt, AmountAfterTax ist 100 und fixed_price 80, dann liegt der Angebotspreis bei 80.
  • Wenn der AmountBeforeTax für eine einzelne Nacht 100 beträgt, fixed_amount ist 80 und TaxFeeInfo gibt eine Steuer in Höhe von 8%, dann

    Angebotspreis = Festpreis * (1 + Steuern in Prozent)

    86,40 = 80 * 1,08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount Definiert Einschränkungen für die Anzahl der Zimmer, die verfügbar sein müssen. damit dieses Angebot angewendet wird. Der Rabatt wird nur auf den die die Beschränkung erfüllen. Nicht zulässig mit dem fixed_amount Rabatt. Beachten Sie, dass die Anzahl der verfügbaren wird entweder mit OTA_HotelInvCountNotifRQ (InvCount) oder OTA_HotelAvailNotifRQ (BookingLimit).
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer Die Mindestanzahl von Zimmern, die für das Angebot verfügbar sein müssen auf den Übernachtungspreis angewendet. Wird sie nicht angegeben, ist keine Minimum
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer Die maximale Anzahl von Zimmern, die für das Angebot verfügbar sein müssen auf den Übernachtungspreis angewendet. Wird sie nicht angegeben, ist keine maximal.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay Definiert die Mindestaufenthaltsdauer, innerhalb derer dieses Angebot zulässig ist. angewendet. Das Angebot wird nicht angewendet, wenn die Aufenthaltsdauer außerhalb von liegt die Mindest- und Höchstwerte.
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer Die Mindestanzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit das Angebot gilt angewendet. Wenn nicht angegeben, gibt es keine Mindestanzahl.
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer Die maximale Anzahl von Übernachtungen, die während des Aufenthalts erlaubt sind, damit das Angebot gilt angewendet. Wird keine Angabe gemacht, gibt es kein Maximum.
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

Container für eine Preisregel für Mitglieder, die eine bestimmte UI auslöst Behandlung für den entsprechenden Rabatt.

Dieses Element sollte nur angegeben werden, <Discount> ist ebenfalls angegeben.

Promotions / HotelPromotions / Promotion / MembershipRateRule / @id 1 string

ID von Preisregel, die mit einem Mitgliedschaftsprogramm verknüpft ist.

Promotions / HotelPromotions / Promotion / 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 das Angebot angewendet wird.
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 integer Der Wert, der überschritten werden muss, damit das Angebot angewendet wird.
Promotions / HotelPromotions / Promotion / Occupancy 0..1 Occupancy Definiert Einschränkungen für die Belegung, für die dieses Angebot gilt angewendet. Das Angebot wird nicht angewendet, wenn die Belegung außerhalb des Mindest- und Höchstwerte.
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer Die vom Nutzer angegebene Belegung muss mindestens diesen Wert haben, damit angewendet werden soll.
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer Die vom Nutzer angegebene Belegung darf höchstens diesem Wert entsprechen, damit angewendet werden soll.
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans Container für eine Liste von Preisplänen, für die das Angebot gilt. Wenn <RatePlans> nicht angegeben ist, wird das Angebot gilt für alle Preispläne.
Promotions / HotelPromotions / Promotion / 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.
Promotions / HotelPromotions / Promotion / 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 im Attribut „RatePlanCode“ in <StatusApplicationControl> in beiden <OTA_HotelRateAmountNotifRQ> und <OTA_HotelAvailNotifRQ> Nachrichten. Es sind maximal 50 Zeichen zulässig.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes Container für eine Liste von Zimmertypen, für die das Angebot gilt. Das Angebot wird auf jeden <RoomType> angewendet. angegeben ist. Wenn <RoomTypes> nicht angegeben ist, wird der Das Angebot gilt für alle Zimmer.
Promotions / HotelPromotions / Promotion / 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.)
Promotions / HotelPromotions / Promotion / 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.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking Gibt an, wie Angebote kombiniert werden können. Wenn nicht angegeben, wird „type“ verwendet. wird als base angenommen.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

Mehrere Angebote können auf einen einzigen Preis angewendet werden, abhängig von diese Einstellung:

  • any: Kann mit anderen Angeboten kombiniert werden (außer none), sondern die Reihenfolge, in der die Angebote angewandt wird, ist nicht garantiert.
  • base: Das beste infrage kommende base-Angebot ist ausgewählt und angewendet haben. Dies war zuvor als base_only bezeichnet.
  • second: Das beste infrage kommende second-Angebot wird nach einem Angebot im Wert von base ausgewählt und angewendet (falls zutreffend) und vor Werbeaktionen mit dem Status any.
  • none: nicht mit anderem kombinierbar Werbeaktionen

Von den zulässigen Kombinationen die Gruppe von Werbeaktionen, die den wird der größte Rabatt auf den Preis angewendet.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates Ein Container für einen oder mehrere Zeiträume, die festlegen, wie die Angebot angewendet wird, z. B. für saisonale Rabatte.
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

Beschreibt, wie das Angebot angewendet werden soll.

Gültige Werte sind:

  • all: Das Angebot wird auf jede Übernachtung im Reiseplan, wenn sich alle Datumsangaben im Reiseplan überschneiden mit den Aufenthaltsdaten.
  • any: Gilt das Angebot für alle Nächte im Reiseplan, wenn sich ein Datum im Reiseplan mit einem Datum im Aufenthaltszeitraum.
  • overlap: Das Angebot wird nur auf die Nutzer angewendet, die Übernachtungen im Reiseplan, die sich mit einem Datum im Aufenthaltszeitraum überschneiden Bereich.

Dieses Attribut muss immer angegeben werden.

  • Wenn <Discount> den Wert percentage angibt und application auf all eingestellt ist oder any wird der Rabatt als Prozentsatz des kompletter Aufenthalt.
  • Wenn <Discount> den Wert percentage angibt und application auf overlap gesetzt ist, wird der Der Rabatt wird als Prozentsatz der Übernachtungspreise für sich überschneidende Nächte.
  • <Discount> mit Angabe von fixed_amount und application auf overlap eingestellt ist Ungültige Kombination.
  • <FreeNights> unterstützt alle application-Werte. Beachten Sie, dass für overlap Folgendes gilt: Nur sich überschneidende Übernachtungen werden für den Rabatt berücksichtigt Anforderungen.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

Ein Zeitraum, der angibt, wann das Angebot angewendet werden soll.

Das Format YearlessDate wird ebenfalls unterstützt.

  • Wenn start oder end ein Jahr ohne Jahr ist Datum eingeben, müssen beide als Datumsangaben ohne Jahresangabe angegeben werden.
  • Zeiträume ohne Jahre dürfen nicht um das neue Jahr gelegt werden. Stattdessen können Sie den Zeitraum als zwei nebeneinanderliegende Zeiträume darstellen. Beispiel: {"12-29", "01-05"} kann dargestellt werden als {"12-29", "12-31"} und {"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate Das Startdatum (basierend auf der Zeitzone der Unterkunft), einschließlich, von Zeitraum Dieses Datum muss vor dem Ereignisdatum liegen oder diesem entsprechen. end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate Das Enddatum (basierend auf der Zeitzone der Unterkunft), einschließlich des Enddatums des Zeitraum. Dieses Datum muss mit dem Datum „start“ übereinstimmen oder danach liegen Datum. Wenn end nicht angegeben ist, wird das Datum ist in Bezug auf ein Enddatum praktisch unbegrenzt.
Promotions / HotelPromotions / Promotion / 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.

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries Container zum Auflisten der infrage kommenden Nutzerstandorte (Länder). für die Werbeaktion. Falls angegeben, nur berechtigte Nutzer in der Liste Ländern wird der rabattierte Preis angeboten. Wenn nicht angegeben, aktiv Nutzern in jedem Land wird der rabattierte Preis angeboten.
Promotions / HotelPromotions / Promotion / 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, das Angebot gilt für Nutzer der aufgeführten Ländern.

Wenn das Feld „UserCountry“ type den Wert exclude hat, Das Angebot gilt nicht für die aufgeführten Ländern.

Wenn das Feld „UserCountry“ (type) nicht konfiguriert ist, wird es wie folgt behandelt: include und das Angebot gilt für Nutzer aus den aufgeführten Ländern.

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country Definiert ein Land, in dem Nutzer das Angebot in Anspruch nehmen können.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string Ein CLDR-Land Code 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

Pro Unterkunft sind nur bis zu 500 Angebote zulässig. Weitere Informationen dazu finden Sie unter Werbung“ Beispiel für das Entfernen von Angeboten aus einer Property.

Einfache Nachricht

Das folgende Beispiel zeigt eine einfache Promotions-Nachricht:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <Discount percentage="20" applied_nights="2"/>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <Stacking type="base"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>


Inventarbedingung

Das folgende Beispiel zeigt, wie Sie einen Rabatt bei Überschreitung des Budgets erstellen, Inventar kurz vor dem Ankunftsdatum:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow max="7"/>
      <Discount percentage="10"/>
      <InventoryCount min="3"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


Ein Angebot löschen

Das folgende Beispiel zeigt, wie ein Angebot für eine Unterkunft gelöscht wird:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1" action="delete"/>
  </HotelPromotions>
</Promotions>

Alle Werbeaktionen löschen

Das folgende Beispiel zeigt, wie alle Angebote für eine Unterkunft gelöscht werden:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>



Alle Angebote einblenden

Das folgende Beispiel zeigt, wie <HotelPromotions> für eine Unterkunft eingeblendet wird. mit einer oder mehreren neuen Werbeaktionen. Wenn action="overlay", alle gespeicherten Angebote gelöscht werden, bevor die in den aktuelle Nachricht:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <Discount percentage="10"/>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <Stacking type="base"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

3 verschiedene Stapeltypen

Das folgende Beispiel zeigt einen Fall, bei dem drei verschiedene Angebote angewendet (base, second, any). Das Angebot none wäre nicht angewendet werden, da die anderen Angebote einen höheren Rabatt bieten. Wenn die ursprüngliche bei 100 $liegt, beträgt der reduzierte Preis 72,90 $.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="second"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="4">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


Keine Angabe zum Stapeln

Das folgende Beispiel zeigt einen Fall, in dem das Angebot none verwendet wird, weil Bei der Kombination anderer Angebote ist der Rabatt geringer. Wenn die lag der ursprüngliche Preis bei 100 €, würde der reduzierte Preis bei 75 € liegen.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



Grenzwerte für die Dauer des Buchungsfensters

Das folgende Beispiel zeigt einen Fall, bei dem der BookingWindow -Element wird verwendet, wobei seine Start- und Endgrenzen als Dauer nach ISO 8601 definiert sind. Typ. Diese Einschränkung des Reservierungszeitraums erfordert eine Buchung ab 18:00 Uhr am Tag vor der Ankunft und ab 12:00 Uhr am zweiten Tag davor Ankunft.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow min="P1DT6H" max="P2DT12H"/>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


Datum/Uhrzeit-Grenzen für Buchungsdatum

Das folgende Beispiel zeigt einen Fall, bei dem der BookingDates -Element wird mit den Attributen start und end wie folgt verwendet: DateTime-Typen. Aufgrund dieser Einschränkung des Buchungsdatums muss eine Buchung erfolgen zwischen 06:30 Uhr am 01.07.2020 und 18:45 Uhr am 02.07.2020.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
      </BookingDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


Zeiträume ohne Jahre

Das folgende Beispiel zeigt einen Fall, bei dem der CheckInDates Element enthält DateRanges mit start und end Felder ohne Jahre. In diesem Beispiel gilt das Angebot zwischen dem 29.12. und 2.1. unabhängig vom Jahr einchecken. Jahreslos Zeiträume, die über die Neujahrsgrenze hinausgehen, sind ungültig, sodass DateRange als zwei nebeneinanderliegende Zeiträume dargestellt werden.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <CheckInDates>
         <DateRange start="12-29" end="12-31"/>
         <DateRange start="01-01" end="01-02"/>
      </CheckInDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



FreeNights-Rabatt

Im folgenden Beispiel erhalten Sie für zwei Übernachtungen jeweils 50% pro vier Übernachtungen Zeitraum für den angegebenen Buchungszeitraum Für einen Reiseplan mit zehn Übernachtungen sind insgesamt vier Übernachtungen mit 50 % Rabatt.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
        <DateRange start="2022-01-01" end="2022-05-31"/>
      </BookingDates>
      <Discount>
        <FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>

Im nächsten Beispiel erhalten Sie für eine Übernachtung im Zeitraum von drei Übernachtungen 50% Rabatt. Zeiträume für den Aufenthalt. Nur die sich überschneidenden Übernachtungen zählen im Hinblick auf den Rabatt. Für den folgenden Reiseplan mit Check-in am 01.01.2022 und Abreise am 07.01.2022, die qualifizierten Übernachtungen und Rabatte werden wie folgt angewendet:

  • 01.01.2022 (Aufenthalt)
  • 02.01.2022 (Aufenthalt)
  • 2022-01-03
  • 04.01.2022 (rabattiert)
  • 05.01.2022 (Aufenthalt)
  • 06.01.2022 (Aufenthalt)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <StayDates application="overlap">
        <DateRange start="2022-01-01" end="2022-01-02"/>
        <DateRange start="2022-01-04" end="2022-01-06"/>
      </StayDates>
      <Discount>
        <FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>


Geordnete Auswahl

Im folgenden Beispiel werden zwei Rabatte angeboten: einer mit 20% Rabatt und der andere. 15% Rabatt. Bei der Bewertung wird nur der Rabatt von 15% angewendet. weil er einen niedrigeren Rang hat.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="15" rank="25"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="20" rank="50"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

BestDailyDiscount

Im folgenden Beispiel wird ein Rabatt von zwei Nächten durch die Anwendung von BestDailyDiscount mit einem Discount gestapelt.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
 <HotelPromotions hotel_id="HotelID" action="overlay">
   <Promotion id="general">
     <BestDailyDiscount fixed_amount="20"/>
   </Promotion>
   <Promotion id="may">
     <BestDailyDiscount fixed_amount="50"/>
     <StayDates application="overlap">
        <DateRange start="2023-05-01" end="2023-05-31"/>
     </StayDates>
   </Promotion>
   <Promotion id="fiesta">
     <Discount fixed_amount_per_night="5"/>
     <Stacking type="any"/>
   </Promotion>
 </HotelPromotions>
</Promotions>

Sie könnten einen Aufenthalt mit zwei Übernachtungen vom 30. April 2023 bis zum 2. Mai 2023 in Betracht ziehen. Für die Berechnung die Kombination der besten täglichen Rabatte, die den Der höchste Rabatt wird zuerst gefunden.

In der ersten Nacht wird Angebot ist der einzige gültige Betrag mit einen festen Rabatt von 20.

In der zweiten Nacht wird einen höheren Rabatt bietet als das „Allgemein“ Rabatt. Wenn also „eventuell“ wird der feste Rabatt bei 50 liegt.

Für diesen Aufenthalt gibt es Aktionsrabatte auf 5 pro Nacht oder Insgesamt 10. Er kann mit der Kombination der besten Tagesrabatte kombiniert werden. weil „Fiesta“ Für den Stapeltyp ist any festgelegt. Wenn es festgelegt wurde auf base, dann nur die Kombination aus den besten Tagesrabatten oder „Fiesta“ angewendet wird. Siehe Beschreibung von Stacking.

Insgesamt ergibt sich für den Preis des Aufenthalts ein fester Betrag von 20 + 50 + 10 = 80 Rabatt.

Antworten

Syntax

Die Nachricht PromotionsResponse verwendet die folgende Syntax:

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

Elemente und Attribute

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

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

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

PromotionsResponse / Issues 0..1 Issues Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der Werbenachricht.

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

PromotionsResponse / Issues / Issue 1..n Issue Die Beschreibung einer Warnung oder eines Fehlers, der aufgetreten ist während die Verarbeitung der Nachricht „Angebote“. Details zu diesen Problemen finden Sie in Fehlermeldungen zum Feedstatus.
PromotionsResponse / Issues / Issue / @code 1 integer Die Kennung des Problems.
PromotionsResponse / 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 eine erfolgreich verarbeitete Nachricht „Angebote“.

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

Probleme

Im Folgenden finden Sie eine Antwort auf eine Nachricht „Angebote“, die aus folgendem Grund nicht verarbeitet wurde: Fehler.

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