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 Stringwert ist der Wert „Partnerschlüssel“, der im Hotel Center auf der Seite „Kontoeinstellungen“ aufgeführt ist.

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.

Sofern <Stacking> nicht verwendet wird, wird das Angebot mit dem höchsten Rabatt 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 ein. Die Hotel-ID ist auch im Hotel Center aufgelistet.
Promotions / HotelPromotions / @action 0..1 enum

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

Falls nicht angegeben, bestehen für jedes in der aktuellen Nachricht angegebene Angebot folgende Möglichkeiten:

  • Added (wenn keines der gespeicherten Angebote dieselbe id hat)
  • 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. Es sind maximal 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

Falls 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. Wenn Sie delete verwenden, sollten Sie keine untergeordneten Elemente in <Promotion> einbeziehen. Außerdem ist delete in Verbindung mit <HotelPromotions action="overlay"/> nicht 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, sind alle Tage im Zeitraum 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.
  • Dauer nach ISO 8601 (Tage, Stunden und Minuten): Die Anzahl der Tage (und optional Stunden/Minuten) vor dem Check-in-Datum. Für Beispiel: Der Wert P30D gibt nur das Angebot an. gilt für Buchungen, die höchstens 30 Tage vor dem Anreisedatum erfolgen. Bei einem Wert von P30DT6H muss die Buchung am 30. Tag vor der Ankunft ab 18:00 Uhr erfolgen.
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. Für jedes Angebot wird der Rabatt angewendet, gefolgt vom Höchstpreis. Im folgenden Beispiel wird gezeigt, wie sich die einzelnen Obergrenzen auf die nächste Angebotsberechnung im Stapel auswirken.

Beispiel:

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

  1. Angebot mit dem Stapeltyp base, einer fixed_amount von 25 und einer Obergrenze 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 Werte.

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 auch für <FreeNights>-Rabatte, auch wenn auf die kostenlose Übernachtung ein 100%-Rabatt angewendet wird.

Wenn eine Stapelung konfiguriert ist, <Floor> kann sich auf einen einzelnen Aufenthalt beziehen. Jede Werbeaktion wird der Rabatt angewendet, direkt gefolgt vom Mindestpreis. Im folgenden Beispiel wird gezeigt, wie sich die einzelnen Preisuntergrenzen auf die nächste Angebotsberechnung im Stapel auswirken.

Beispiel:

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

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

Die Reihenfolge der Berechnungen:

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

Die Tatsache, dass die Tiefsttemperatur bei 90 insgesamt 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, muss sein Wert kleiner oder gleich dem amount_per_night-Attribut in <Ceiling> sein.

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

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates Ein Container für einen oder mehrere Zeiträume, die definieren, wann der 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 Angebote löschen.

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 Jahresangabe dürfen nicht ins neue Jahr übergehen. 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 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 einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. 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.
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 wird. Dieses Element ist nicht erforderlich, wenn Sie oder mehrere Werbeaktionen löschen.

Das Format YearlessDate wird ebenfalls unterstützt.

  • Wenn es sich bei start oder end um ein Datum ohne Jahresangabe handelt, müssen beide ausgefüllt und ohne Jahresangabe sein.
  • 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 einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Dieses Datum muss vor dem 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 einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. 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.
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 zum ermäßigten 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 für 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.

Dezimalwert von 0 bis 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 davon ausgegangen, dass die Währung mit der Währung der Übernachtungspreise übereinstimmt. 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

  • Berechnung des Preises für eine Übernachtung, wobei AmountBeforeTax 100 ist, fixed_amount 20 ist 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 – fester Rabatt) * Steuer

    10,00 = 0 + 10

  • Berechnung des Preises für drei Übernachtungen, wobei die AmountAfterTax-Werte 100, 110 und 120 sind und fixed_amount 150 ist:

    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 sie auf AmountBeforeTax angewendet. Es wird angenommen, dass in derselben Währung wie die Übernachtungspreise angegeben. Wenn fixed_amount_per_night größer als ein Übernachtungspreis ist, wird der Übernachtungspreis auf null reduziert. Der Rabatt kann nicht dazu führen, dass ein Übernachtungspreis negativ wird.

Beispiele:

  • Berechnung des Preises für drei Übernachtungen, wobei die AmountAfterTax-Werte 100, 110 und 120 sind und fixed_amount_per_night 10 ist:

    Angebotspreis = Summe (AmountBeforeTax – Festbetragsrabatt)

    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.
  • Berechnung des Preises für eine Übernachtung, wobei AmountBeforeTax 100 ist, fixed_amount 80 ist und TaxFeeInfo eine Steuer von 8 % angibt:

    Angebotspreis = Festpreis * (1 + Steuern in Prozent)

    86,40 = 80 * 1,08

  • Berechnung des Preises für drei Übernachtungen, wobei die AmountAfterTax-Werte 100, 110 und 120 sind und fixed_amount 300 ist:

    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 einen prozentualen Steuersatz widerspiegeln soll, kann die Festlegung eines festen Preises für AmountBeforeTax 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.
  • Berechnung des Preises für drei Übernachtungen, wobei die AmountAfterTax-Werte 100, 110 und 120 sind und fixed_amount 110 ist: Der Aktionspreis beträgt 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. Falls nicht angegeben, wird der Rabatt auf alle Übernachtungen 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 Dieses Angebot wird einem Rang zugewiesen und für die sortierte Auswahl aktiviert. Dabei wird nur das Angebot mit dem niedrigsten Rang angewendet. Werte muss zwischen 1 und 99 (einschließlich) liegen. Wenn mehrere Angebote denselben Rang haben, wird eines nach dem Zufallsprinzip ausgewählt und angewendet.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

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

Gibt eine Tagesrabatt, der auf eine Übernachtung angewendet werden kann. Dies ist in im Gegensatz zu Discount, bei dem Rabatte auf den gesamten bleibt.

Für jede Unterkunft kann eine Gruppe von Angeboten festgelegt werden, als „Tagesbeste“ gelten. Das bedeutet, dass für jede Übernachtung das beste Tagesangebot ausgewählt und angewendet werden kann, das für diese Nacht infrage kommt und den höchsten Rabatt bietet.

Stacking kann angegeben werden mit BestDailyDiscount. Er muss entweder auf base oder none. Die „besten Tagesrabatte“, die den höchsten Rabatt für jede Nacht bieten, werden kombiniert und als Rabatt für einen einzelnen Aufenthalt (d. h. Discount) behandelt. Dabei wird der konfigurierte Stapeltyp berücksichtigt. Dieser kombinierte Rabatt wird verglichen und können mit anderen <Discount>-Werten kombiniert werden. Werbeaktionen, um diejenige oder die Kombination zu finden, die den größten Rabatt. Entweder die Kombination von BestDailyDiscount oder ein einzelnes Discount, je nachdem, was den niedrigeren Preis ergibt, wird für den base-Stapeltyp ausgewählt und angewendet.

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

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

Es muss genau ein Wert von percentage, fixed_amount oder fixed_price angegeben werden.

Dezimalwert von 0 bis 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. Wenn diese größer als die Summe der Übernachtungspreise ist, ist 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 – fester 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, wird der Preis für die Übernachtung, einschließlich Steuern und Gebühren, auf den angegebenen Wert festgelegt. 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 + Steuer in %)

    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. Falls nicht angegeben, gibt es keine Mindestanzahl.
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer Die maximale Anzahl der Zimmer, die verfügbar sein müssen, damit das Angebot auf den Übernachtungspreis angewendet werden kann. Falls nicht angegeben, gibt es keine maximale Anzahl.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay Definiert die Länge der Aufenthaltsdauer, in der dieses Angebot angewendet werden kann. 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 angewendet wird. 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 nicht angegeben werden, es sei denn, <Discount> ist auch 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 angegebenen <RoomType> angewendet. 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 ist <RoomID> in einer Nachricht „Transaktion (Unterkunftsdaten)“ zugeordnet. 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 wird die Reihe von Angeboten, die den größten Rabatt ermöglichen, auf den Preis angewendet.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates Ein Container für einen oder mehrere Zeiträume, die bestimmen, wie das 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 Übernachtungen im Reiseplan angewendet, die sich mit einem Datum im Aufenthaltszeitraum überschneiden.

Dieses Attribut muss immer angegeben werden.

  • Wenn <Discount> den Wert percentage angibt und application ist auf all eingestellt 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 jahreslos ist Datum eingeben, müssen beide als jahreslose Datumsangaben ausgefüllt werden.
  • Zeiträume ohne Jahresangabe dürfen nicht ins neue Jahr übergehen. 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"}

Wenn Sie den Bereich StayDates auf die Werbeaktion an bestimmten Wochentagen zulassen, sollten Sie start Datum als aktuelles Datum ohne end, also dass das Angebot nicht abläuft.

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 end Datum. Wenn start nicht angegeben ist, wird das Datum ist in Bezug auf ein Startdatum praktisch unbegrenzt.

Sie sollten den Wert start angeben, wenn der Der Wert für „end“ ist nicht angegeben.

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 übereinstimmen oder danach liegen. start Datum. Wenn end nicht angegeben ist, wird das Datum Der Zeitraum ist ab dem start-Datum praktisch unbegrenzt.

Sie sollten den Wert end angeben, wenn der Der Wert für „start“ ist nicht angegeben.

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 für das Angebot berechtigt sind.
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 identisch mit dem aus zwei Buchstaben bestehenden ISO-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 erstellen, wenn vor dem Ankunftsdatum mehr Inventar vorhanden ist:

<?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 der Originalpreis 100 € betrug, würde der Rabattpreis 72,90 € betragen.

<?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>


Keiner – Stapeltyp

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 die 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 Buchungsdaten

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 jede Buchung von vier Übernachtungen im angegebenen Zeitraum einen Rabatt von 50 % auf zwei Übernachtungen. 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. Weitere Informationen finden Sie in der Beschreibung von Stacking.

Insgesamt erhält der Preis für den Aufenthalt einen Rabatt in Höhe von 20 + 50 + 10 = 80.

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 „Angebote“ angibt.
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 in jeder Nachricht 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>