Anfragen
Syntax
Die Nachricht OTA_HotelRateAmountNotifRQ
verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="message_ID"
TimeStamp="timestamp"
Version="3.0"
NotifType="[Overlay|Delta|Remove]"
NotifScopeType="[ProductRate]">
<POS>
<Source>
<RequestorID ID="partner_key"/>
</Source>
</POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon="boolean_value"
Tue="boolean_value"
Weds="boolean_value"
Thur="boolean_value"
Fri="boolean_value"
Sat="boolean_value"
Sun="boolean_value"
InvTypeCode="RoomID"
RatePlanCode="PackageID"
RatePlanType="[26]" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="float"
AmountAfterTax="float"
CurrencyCode="currency"
NumberOfGuests="integer"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="float"
AgeQualifyingCode="[10|8]"
MaxAge="integer"/>
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Elemente und Attribute
Die Nachricht OTA_HotelRateAmountNotifRQ
enthält folgende Elemente und Attribute:
Element / @Attribut | Häufigkeit | Typ | Beschreibung |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Das Stammelement für eine Nachricht vom Typ „Preise“. |
OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | Der XML-Namespace. |
OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | Eine eindeutige Kennung für diese Anfragenachricht. Dieser Wert wird in der Antwortnachricht zurückgegeben. Zulässige Zeichen sind a-z , A-Z , 0-9 , _ (underscore) und - (dash) . |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | Erstellungsdatum und ‑uhrzeit der Nachricht. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | Die Nachrichtenversion von OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Der Benachrichtigungstyp, der für jede Gültige Werte sind: Damit Sie die Funktionsweise dieser Attribute verstehen können, sehen Sie sich die Beispiele an.
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | Der Bereich von Gültige Werte sind:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Ein Container zum Angeben des Partnerkontos für diese Nachricht. Wird normalerweise verwendet, wenn Ihr Backend Preisfeeds für mehrere Partnerkonten bereitstellt. |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Erforderlich, wenn <POS> vorhanden ist. Ein Container für die <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Erforderlich, wenn <POS> vorhanden ist. Definiert das Partnerkonto. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Das Partnerkonto für diese Nachricht. Dieser Stringwert ist der Wert „Partnerschlüssel“, der im Hotel Center auf der
Seite „Kontoeinstellungen“ aufgeführt ist.
Hinweis:Wenn Sie ein Backend haben, das Feeds für mehrere Konten bereitstellt, muss dieser Wert mit dem Attributwert |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Eine Sammlung von <RateAmountMessage> -Elementen, die Preise definieren. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Die eindeutige Kennung für die Unterkunft. Dieser Wert muss mit der Hotel-ID übereinstimmen, die mit <id> im Element <listing> im Hotellistenfeed angegeben wird. Die Hotel-ID ist auch im Hotel Center aufgeführt. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Ein Container zum Festlegen von Preisen für einen Zimmerpreis (eine Kombination von Zimmertyp und Preisplan über einen Zeitraum). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Definiert den Zeitraum sowie die Kennungen für den Zimmertyp (InvTypeCode ) und den Preisplan (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | Das einschließliche Startdatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Das einschließliche Enddatum (basierend auf der Zeitzone der Unterkunft) des Zeitraums. Muss gleich oder größer als der Wert start sein.
Wenn start und end gleich sind, gilt die Aktualisierung für dieses Datum. Google unterstützt Daten für bis zu drei Jahre. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Geben Sie true oder 1 an, um Montage explizit einzubeziehen.
Wird der Wert auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Geben Sie true oder 1 an, um Dienstage explizit einzubeziehen.
Wird der Wert auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Geben Sie true oder 1 an, um Mittwoche explizit einzubeziehen.
Wird der Wert auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Geben Sie true oder 1 an, um Donnerstage explizit einzubeziehen.
Wird der Wert auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Geben Sie true oder 1 an, um Freitage explizit einzubeziehen.
Wird der Wert auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Geben Sie true oder 1 an, um Samstage explizit einzubeziehen.
Wird der Wert auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Geben Sie true oder 1 an, um Sonntage explizit einzubeziehen.
Wird der Wert auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Die eindeutige Kennung für das Inventar (Zimmertyp). Dieser Wert ist <RoomID> in einer Nachricht „Transaktion (Unterkunftsdaten)“ zugeordnet. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Eine eindeutige Kennung für den Preisplan. Diese Kennung wird dem Wert der <PackageID> in einer Nachricht „Transaktion (Unterkunftsdaten)“ zugeordnet. Der Preisplan wird weiter definiert und in <StatusApplicationControl> in den Nachrichten <OTA_HotelRateAmountNotifRQ> und <OTA_HotelAvailNotifRQ> referenziert. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Eine Kennung, die den Typ des ARI-Preismodells angibt, das für diese Preisaktualisierung gilt. Dieser Wert sollte nur mit dem Wert 26 angegeben werden, wenn Sie das auf der Aufenthaltsdauer basierende Preismodell verwenden. Wenn dieses Attribut nicht angegeben wird, handelt es sich um eine Preisaktualisierung pro Datum. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Container für eine Sammlung von <Rate> -Elementen. Wenn NotifType "Remove" ist, darf dieses Element nicht angegeben werden. Andernfalls muss dieses Element genau einmal angegeben werden. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Container für eine Sammlung von <BaseByGuestAmts> -Elementen. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Die Einheit, in der die Aufenthaltsdauer angegeben wird. Der einzige unterstützte Wert ist "Day" . Die Aufenthaltsdauer wird also in Tagen angegeben.
Wenn Sie auf der Aufenthaltsdauer basierende Preise verwenden möchten, müssen |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Die Anzahl der RateTimeUnits , aus denen die Aufenthaltsdauer für diesen Tarif besteht.
Wenn der Wert von Die unter diesem Wenn Sie auf der Aufenthaltsdauer basierende Preise verwenden möchten, müssen |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Container für eine Sammlung von Basisgebühren. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Gibt Zimmerpreise in einer bestimmten Währung an. Der Preis kann pro Person berechnet werden, indem mehrere <BaseByGuestAmt> -Elemente verwendet werden, die jeweils einen anderen Wert für NumberOfGuests haben.
Andernfalls gilt der Preis für eine maximale Anzahl von Personen, die durch NumberOfGuests definiert ist. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
Der Tagespreis des Zimmerpreises vor Steuern und Gebühren. Sie können sowohl Wenn Sie Angebote verwenden, wird der Rabatt auf |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Der Tagespreis des Zimmerpreises nach Abzug der anwendbaren Steuern und Gebühren. Wenn AmountAfterTax angegeben ist, müssen separate <TaxFeeInfo> -Nachrichten pro Unterkunft nicht gesendet werden. Dieses Attribut kann in Kombination mit AmountBeforeTax verwendet werden, um Basis- und Gesamtpreise bereitzustellen, die Nutzern in bestimmten Regionen angezeigt werden können.
Warnung:Wenn Sie Angebote verwenden, wird dringend von der Verwendung von Hinweis:Wenn |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Der ISO 4217 (3)-Alphacode für eine bestimmte monetäre Einheit. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Maximale Anzahl von Gästen, die mit diesem Preis untergebracht werden können.
Wenn kein Wert angegeben ist, wird der Standardwert 2 verwendet.
Wenn |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Container für eine Sammlung von Gebühren für zusätzliche Gäste.
Diese Syntax ist hilfreich, wenn sich zusätzliche Gast- oder Kindertarife je nach Datum ändern. Wenn diese Beträge statisch auf Property-Ebene definiert werden können, sollten Sie die effizientere
Angenommen, es werden Grundpreise für 1 und 2 Erwachsene angegeben.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Gibt Preise basierend auf dem Gasttyp an, der über AgeQualifyingCode angegeben wird, und ggf. dem Alter des Gastes, das über MaxAge angegeben wird.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Definiert die Art des zusätzlichen Gastes, entweder „adult“ (Erwachsener) oder „child“ (Kind). Gültige Optionen sind:
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | MaxAge muss angegeben werden, wenn AgeQualifyingCode 8 ist. Darf nicht angegeben werden, wenn AgeQualifyingCode gleich 10 ist.
Wenn Sie den Wert Werte, die größer als Mehrere Altersgruppen für Kinder können über separate |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Betrag vor Steuern und Gebühren, der dem Basispreis für jeden zusätzlichen Gast hinzugefügt wird.
Steuern und Gebühren, die vom Alter der Gäste abhängen, müssen über das |
Beispiele
Dieser Abschnitt enthält Codebeispiele, in denen Folgendes erläutert wird:
- Basis- und Gesamtpreise festlegen
- Preise hinzufügen, überlagern und entfernen
- Zusätzliche Beträge für Gäste hinzufügen, überlagern und entfernen
- Auf der Aufenthaltsdauer basierende Preise einrichten
- Auf der Aufenthaltsdauer basierende Preise hinzufügen, überlagern und entfernen
Wenn Sie die Werte add
, overlay
oder remove
festlegen, können die Zeiträume je nach Ihren Zielvorhaben gleich oder unterschiedlich sein. Sie können beispielsweise overlay
verwenden, um nur einige Wochen für die Feiertage im Dezember festzulegen, anstatt den gesamten Zeitraum, der für die Nachricht „Add rate“ festgelegt ist. Dadurch werden die Belegungsraten nur für diesen Zeitraum ersetzt.
Preis pro Datum
Für ein bestimmtes Zimmer und einen bestimmten Preisplan sind maximal 50 Belegungsraten pro Unterkunft zulässig. Wenn die Preise für alle Belegungen gleich sind, sollten Sie nur die maximale Belegung mit dem erforderlichen Preis senden. Google schließt daraus, dass für die geringere Belegung auch der gleiche Grundpreis gilt.
Basis- und Gesamtpreise festlegen
Beispiel 1
Basispreis (ohne Steuern oder Gebühren) für die Standardbelegung (Doppel). In diesem Modell müssen Steuern und Gebühren für die Unterkunft mit einer <TaxFeeInfo>
-Nachricht definiert werden. Der Basispreis wird für Nutzer, die in bestimmten Regionen suchen, stärker hervorgehoben.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Beispiel 2
Basis- und Gesamtpreis für die Standardbelegung (Doppel). In diesem Modell sollten Steuern und Gebühren mit <TaxFeeInfo>
-Nachrichten nicht separat definiert werden. Der Basispreis wird für Nutzer, die in bestimmten Regionen suchen, stärker hervorgehoben.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Beispiel 3
Gesamtpreis (mit Steuern und Gebühren) für Mehrfachbelegungen. In diesem Modell sollten Steuern und Gebühren mit <TaxFeeInfo>
-Nachrichten nicht separat definiert werden.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountAfterTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Beispiel 4
Basis- und Gesamtpreis für mehrere Zimmertypen und Preispläne für verschiedene Zeiträume.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> <RateAmountMessage> <StatusApplicationControl Start="2020-05-01" End="2020-05-31" InvTypeCode="RoomID_2" RatePlanCode="PackageID_2"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" AmountAfterTax="220.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Preise hinzufügen, überlagern und entfernen
Pro Unterkunft sind nur bis zu 5.000 Produkte mit verschiedenen Raumtyp- und Paketkombinationen zulässig. Verwenden Sie die Benachrichtigungstypen Overlay
oder Remove
, um zuvor definierte Produkte zu entfernen.
Preise hinzufügen
Legen Sie NotifType
auf Delta
fest, um die Preise pro Belegung für RoomID_1 und PackageID_1 zwischen dem 20.10.2021 und 31.12.2021 hinzuzufügen. Google unterstützt Daten für bis zu drei Jahre.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountBeforeTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Preise überlagern
Setzen Sie NotifType
auf Overlay
, um alle Preise pro Belegung für RoomID_1 und PackageID_1 zwischen dem 20.10.2021 und dem 31.12.2021 zu löschen und sie durch die neu angegebenen Preise pro Belegung zu ersetzen.
Wenn diese Nachricht beispielsweise nach der Nachricht „Preise hinzufügen“ gesendet wurde, würden die Preise für Belegung 1, 2 und 3 gelöscht und nur der neue Preis für Belegung 1 würde gespeichert. Sie können auch einen kürzeren Zeitraum festlegen, z.B.: 2021-12-20 und 2021-12-31), um nur einige der Belegungsraten an bestimmten Tagen, z. B. an Feiertagen, zu ersetzen.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Preise entfernen
Setzen Sie NotifType
auf Remove
, um alle Preise pro Belegung für RoomID_1 und PackageID_1 zwischen dem 20.10.2021 und dem 31.12.2021 zu löschen.
Wenn diese Nachricht beispielsweise nach einer Nachricht aus den anderen Beispielen gesendet wurde, würden keine Preise pro Belegung gespeichert.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Beträge für zusätzliche Gäste hinzufügen, überlagern und entfernen
Beträge hinzufügen
Setzen Sie NotifType
auf Delta
, um Basispreise für die Belegung 1 und 2 sowie zusätzliche Beträge für Gäste für RoomID_1 und PackageID_1 zwischen dem 20.10.2021 und dem 31.12.2021 hinzuzufügen.
Zusätzliche Beträge für Gäste werden auf einen Basispreis aufgeschlagen, der durch die Belegung in einer Nutzersuche bestimmt wird. Die vom Nutzer angegebene Belegung muss innerhalb der Kapazität von RoomID_1 liegen.
In diesem Beispiel werden zusätzliche Gastbeträge so angewendet:
- 5 $ für Kinder im Alter von 0 bis 10 Jahren (einschließlich).
- 10 $ für Kinder im Alter von 11 bis 17 Jahren (einschließlich).
- 20 $ für Erwachsene.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" /> <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" /> <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Overlay-Beträge
Setzen Sie NotifType
auf Overlay
, um alle Preise pro Belegung und alle zusätzlichen Beträge für Gäste für RoomID_1 und PackageID_1 zwischen dem 20.10.2021 und dem 31.12.2021 zu löschen und sie durch die neu angegebenen Preise pro Belegung und zusätzlichen Beträge zu ersetzen.
Wenn diese Nachricht beispielsweise nach der Nachricht „Preise hinzufügen“ gesendet wurde, würden die Preise für die Basisbelegung 1 und 2 gelöscht und nur der neue Preis für die Basisbelegung 1 würde gespeichert. Die vorherigen Beträge für zusätzliche Gäste würden gelöscht und nur die neuen Beträge gespeichert. Für zusätzliche Gäste wird jetzt der neue Preis für 1 Person als Grundpreis verwendet. Nach diesem Update werden für Kinder keine zusätzlichen Gebühren für Gäste mehr erhoben.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Beträge entfernen
Setzen Sie NotifType
auf Delete
, um alle Preise pro Belegung und alle zusätzlichen Gastbeträge für RoomID_1 und PackageID_1 zwischen dem 20.10.2021 und dem 31.12.2021 zu löschen.
Wenn diese Nachricht beispielsweise nach einer Nachricht aus den anderen Beispielen gesendet wurde, würden keine Basispreise pro Belegung oder zusätzliche Beträge für Gäste gespeichert.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Nur zusätzliche Gastbeträge entfernen
Setzen Sie NotifType
auf Delta
mit einem leeren <AdditionalGuestAmounts>
-Element, um alle zusätzlichen Gastbeträge für RoomID_1 und PackageID_1 zu löschen, ohne die Basistarife zwischen dem 20.10.2021 und dem 31.12.2021 zu ändern.
Wenn diese Nachricht beispielsweise nach einer Nachricht aus den anderen Beispielen gesendet wurde, würden nur die Grundbeträge gespeichert.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <AdditionalGuestAmounts/> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Preise je nach Aufenthaltsdauer
Auf der Aufenthaltsdauer basierende Preise einrichten
Beispiel 1
Legen Sie die Preise für Aufenthalte mit 1, 2 und 3 Nächten ab dem 18.05.2020 fest. Der Gesamtpreis für Aufenthalte von 1, 2 und 3 Nächten würde in diesem Beispiel 100 $, 180 $ bzw. 240 $betragen.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="1" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="2" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="90.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2" /> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Auf Aufenthaltsdauer basierende Preise hinzufügen, überlagern und entfernen
Aufenthaltsdauer hinzufügen
Bei der Preisgestaltung auf Grundlage der Aufenthaltsdauer können mit einem Delta
-Vorgang die Preise für die in <StatusApplicationControl>
angegebenen Check-in-Datumsbereiche und für alle Aufenthaltsdauern, die durch die UnitMultiplier
jedes untergeordneten Rate
-Elements angegeben werden, schrittweise aktualisiert werden.
Für jedes zutreffende Anreisedatum und jede zutreffende Aufenthaltsdauer müssen alle Belegungsraten angegeben werden.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Aufenthaltsdauer überlagern
Bei der preisbasierten Preisgestaltung mit Aufenthaltsdauer werden mit einem Overlay
-Vorgang die Preise für alle Aufenthaltsdauern des Produkts und des im <StatusApplicationControl>
angegebenen Check-in-Datumsbereichs ersetzt.
Mit dieser Nachricht werden die Preise pro Person für alle Aufenthaltsdauern an den angegebenen Anreisedaten entfernt und durch einen Preis für zwei Personen ersetzt, der nur für eine Aufenthaltsdauer von 3 Tagen definiert ist.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Aufenthaltsdauer entfernen
Bei der preisbasierten Preisgestaltung wird mit einem Remove
-Vorgang der Preis für alle Aufenthaltsdauern des Produkts und den im <StatusApplicationControl>
angegebenen Zeitraum für das Check-in-Datum entfernt.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Antworten
Syntax
Die Nachricht OTA_HotelRateAmountNotifRS
verwendet die folgende Syntax:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="timestamp"
EchoToken="echo_token"
Version="3.0">
<!-- Either Success or Errors will be populated. -->
<Success/>
<Errors>
<Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>
Elemente und Attribute
Die Nachricht OTA_HotelRateAmountNotifRS
enthält folgende Elemente und Attribute:
Element / @Attribut | Häufigkeit | Typ | Beschreibung |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Das Stammelement für eine Antwort auf eine Verfügbarkeitsnachricht. |
OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | Erstellungsdatum und ‑uhrzeit der Nachricht. |
OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Die eindeutige Kennung der zugehörigen OTA_HotelRateAmountNotifRQ -Nachricht. |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Gibt an, dass die Nachricht OTA_HotelRateAmountNotifRQ erfolgreich verarbeitet wurde.
Entweder |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Ein Container für ein oder mehrere Probleme, die bei der Verarbeitung der Nachricht OTA_HotelRateAmountNotifRQ aufgetreten sind.
Entweder |
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Die Beschreibung eines Fehlers, der bei der Verarbeitung der Nachricht OTA_HotelRateAmountNotifRQ aufgetreten ist. Details zu diesen Fehlern finden Sie unter Fehlercodes für den Feedstatus. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | Der mit dem Fehler verknüpfte OpenTravel Alliance EWT (Error Warning Type, Art der Fehlerwarnung). Nur der Wert 12 (Processing exception) wird verwendet. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | Der mit dem Fehler verknüpfte OpenTravel Alliance ERR (Error Code, Fehlercode).
Nur der Wert 450 (Unable to process) wird verwendet. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | Der Status der ursprünglichen Anfrage. Nur der Wert NotProcessed wird verwendet. |
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | Die Google-Kennung für das Problem. Details zu diesen Fehlern finden Sie unter Fehlercodes für den Feedstatus. |
Beispiele
Erfolg
Die folgende Antwort ist eine Antwort auf eine erfolgreich verarbeitete OTA_HotelRateAmountNotifRQ-Nachricht.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Success/> </OTA_HotelRateAmountNotifRS>
Fehler
Im Folgenden finden Sie eine Antwort auf eine OTA_HotelRateAmountNotifRQ-Nachricht, die aufgrund von Fehlern nicht verarbeitet wurde.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Errors> <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error> </Errors> </OTA_HotelRateAmountNotifRS>