Ü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 |
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 |
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
Falls nicht angegeben, bestehen für jedes in der aktuellen Nachricht angegebene Angebot folgende Möglichkeiten:
|
Promotions / HotelPromotions / Promotion | 0..99 | Promotion | Ein einzelnes Angebot für eine Unterkunft. Wenn
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 Wenn |
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.
|
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.
|
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:
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:
|
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:
|
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 Wenn eine Stapelung konfiguriert ist,
Beispiel: Preis für 1 Übernachtung im Hotel „
Hier ist die Reihenfolge der Berechnung:
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
|
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 Die Wenn eine Stapelung konfiguriert ist,
Beispiel: Preis für 1 Übernachtung im Hotel „
Die Reihenfolge der Berechnungen:
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
|
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.
|
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:
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.
|
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:
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: Gibt den Rabatt an, der für dieses Angebot angewendet werden soll. |
Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float | Genau eines von Dezimalwert von 0 bis 100, der den Rabatt in Prozent angibt.
Sie wird auf Beispiele:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float | Genau eines von Ein fester Betrag, der von der Summe der
Beispiele:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float | Genau eines von Ein fester Rabatt, der auf jeden Beispiele:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float | Genau eines von Wenn Wenn Beispiele:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float | Genau eines von Wenn Wenn Wenn Beispiele:
|
Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | Sollte nur in Verbindung mit
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 |
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 Beispiel: Wenn |
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: Gibt eine
Tagesrabatt, der auf eine Übernachtung angewendet werden kann. Dies ist in
im Gegensatz zu 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.
|
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float | Es muss genau ein Wert von Dezimalwert von 0 bis 100, der den Rabatt in Prozent angibt.
Sie wird auf Beispiele:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float | Genau eines von Ein fester Betrag, der von einem Einzelnen subtrahiert wird
Beispiele:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float | Genau eines von Wenn Beispiele:
|
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, |
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:
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:
Dieses Attribut muss immer angegeben werden.
|
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 Sie den Bereich |
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 |
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 |
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:
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 Wenn für das Nutzerland Wenn das Feld „UserCountry“ Wenn das Feld „UserCountry“ ( |
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 |
PromotionsResponse / Issues | 0..1 | Issues | Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der
Werbenachricht.
Entweder |
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 |
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>