Żądania
Składnia
Komunikat OTA_HotelRateAmountNotifRQ
ma taką składnię:
<?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>
Elementy i atrybuty
Wiadomość OTA_HotelRateAmountNotifRQ
składa się z tych elementów i atrybutów:
Element / @Atrybut | Wystąpienia | Typ | Opis |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Element główny wiadomości o stawkach. |
OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | Przestrzeń nazw XML. |
OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | Unikalny identyfikator tej wiadomości z żądaniem. Ta wartość jest zwracana w wiadomości z odpowiedzią. Dozwolone znaki to a-z , A-Z , 0-9 , _ (underscore) i - (dash) . |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | Wersja wiadomości OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Typ powiadomienia, które ma być stosowane do każdego Prawidłowe wartości to: Aby zrozumieć, jak działają te atrybuty, zapoznaj się z przykładami.
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | Zakres Prawidłowe wartości to:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Kontener do określania konta partnera na potrzeby tej wiadomości (zwykle używany, gdy backend udostępnia pliki danych z cenami dla kilku kont partnerów). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Wymagane, jeśli występuje <POS> . Kontener dla: <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Wymagane, jeśli występuje <POS> . Określa konto partnera. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Konto partnera, z którego pochodzi ta wiadomość. Ta wartość ciągu znaków to wartość „Klucz partnera” podana na
stronie Ustawienia konta w Hotel Center.
Uwaga: jeśli masz backend, który udostępnia pliki danych dla wielu kont, ta wartość musi odpowiadać wartości atrybutu |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Zbiór elementów <RateAmountMessage> , które określają stawki. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Unikalny identyfikator usługi. Ta wartość musi pasować do identyfikatora hotelu określonego za pomocą elementu <id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też podany w Hotel Center. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Kontener do ustawiania cen za stawkę za pokój (kombinację typu pokoju i abonamentu w danym zakresie dat). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Określa zakres dat oraz identyfikatory typu pokoju (InvTypeCode ) i abonamentu (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | Data rozpoczęcia (na podstawie strefy czasowej usługi) włącznie z datą rozpoczęcia zakresu dat. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Data końcowa z zakresu dat (na podstawie strefy czasowej usługi). Wartość nie może być mniejsza niż wartość start .
Jeśli wartości start i end są równe, aktualizacja zostanie zastosowana do wybranego dnia. Pamiętaj, że Google obsługuje dane z maksymalnie 3 lat. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględniać poniedziałki.
Jeśli ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Ustaw jako true lub 1 , aby uwzględnić wtorki.
Jeśli ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Ustaw jako true lub 1 , by uwzględnić środy.
Jeśli ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Ustaw jako true lub 1 , aby uwzględnić czwartki.
Jeśli ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględniać piątki.
Jeśli ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględnić soboty.
Jeśli ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Ustaw jako true lub 1 , aby uwzględnić niedziele.
Jeśli ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Unikalny identyfikator zasobów reklamowych (typ pomieszczenia). Ta wartość jest mapowana na <RoomID> w komunikacie transakcji (dane usługi). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Unikalny identyfikator abonamentu. Ten identyfikator jest mapowany na obiekt <PackageID> w komunikacie transakcji (dane usługi). Plan stawek jest szczegółowo zdefiniowany i przywołany w <StatusApplicationControl> zarówno w komunikatach <OTA_HotelRateAmountNotifRQ> , jak i <OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Identyfikator określający typ modelu cenowego ARI, który ma zastosowanie do tej aktualizacji cen. Należy go podawać za pomocą wartości 26 tylko wtedy, gdy używasz modelu cenowego na podstawie LOS. Wykluczenie tego atrybutu wskazuje, że jest to aktualizacja cen według okresu. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Kontener dla zbioru elementów <Rate> . Jeśli NotifType to "Remove" , nie można określać tego elementu. W przeciwnym razie element trzeba określić dokładnie raz. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Kontener dla kolekcji elementów <BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Jednostka, według której określa się długość pobytu. Jedyną obsługiwaną wartością jest "Day" , co oznacza, że długość pobytu jest podawana w dniach.
Aby korzystać z cen na podstawie LOS, musisz określić |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Liczba RateTimeUnits , które składają się na długość pobytu w przypadku danej ceny.
Jeśli na przykład Stawki za obłożenie określone w obiekcie Aby korzystać z cen na podstawie LOS, musisz określić |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Kontener do pobierania opłat podstawowych. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Określa ceny za pokoje w określonej walucie. Cena może być określona za liczbę osób za pomocą wielu elementów <BaseByGuestAmt> , z których każdy ma inną wartość NumberOfGuests .
W przeciwnym razie cena dotyczy maksymalnej liczby osób określonej przez NumberOfGuests . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
Dzienna cena stawki za pokój bez podatków i opłat. Można określić zarówno Jeśli korzystasz z promocji, zniżka zostanie zastosowana do |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Dzienna cena stawki za pokój po uwzględnieniu obowiązujących podatków i opłat. Jeśli określono AmountAfterTax , nie trzeba wysyłać osobnych wiadomości <TaxFeeInfo> z poszczególnych usług. Tego atrybutu możesz używać w połączeniu z atrybutem AmountBeforeTax , aby podać zarówno stawki podstawowe, jak i łączne, które mogą być wyświetlane użytkownikom w określonych regionach.
Ostrzeżenie: jeśli korzystasz z promocji, zdecydowanie odradzamy stosowanie kwot Uwaga: jeśli |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Kod alfa zgodny ze standardem ISO 4217 (3) dla określonej jednostki pieniężnej.
Sprawdź listę obsługiwanych walut. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Maksymalna liczba gości, które można zatrzymać w ramach tej ceny.
Jeśli nie zostanie podany, domyślnie będą to 2 osoby.
Pamiętaj, że jeśli atrybut |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Kontener do pobierania opłat za dodatkowych gości.
Ta składnia jest przydatna, jeśli stawki za dodatkowe osoby lub dzieci zmieniają się zależnie od daty. Rozważ użycie bardziej skutecznego komunikatu
Załóżmy na przykład, że stawki podstawowe zostały określone dla 1 i 2 dorosłych.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Określa ceny w zależności od typu gościa (określonego za pomocą elementu AgeQualifyingCode ) oraz, w odpowiednich przypadkach, wieku gościa podanego w usłudze MaxAge .
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Określa typ dodatkowego gościa (dorosły lub dziecko). Prawidłowe opcje to:
Jeśli |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | Jeśli AgeQualifyingCode to 8 , musisz określić wartość MaxAge . Nie można go określać, gdy AgeQualifyingCode ma wartość 10 .
Wartość Można określić wiele przedziałów wiekowych dla dzieci za pomocą osobnych elementów |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Kwota przed naliczeniem podatków i opłat dodanych do stawki podstawowej za każdego dodatkowego gościa.
Podatki i opłaty zależne od wieku gości należy określić za pomocą elementu |
Przykłady
Ta sekcja zawiera przykłady kodu ilustrujące, jak:
- Konfigurowanie stawek podstawowych i łącznych
- Dodawanie, nakładanie i usuwanie stawek
- Dodawanie, nakładanie i usuwanie dodatkowych kwot w przypadku gości
- Konfigurowanie stawek opartych na LOS
- Dodawanie, nakładanie i usuwanie stawek opartych na LOS
Po ustawieniu wartości add
, overlay
lub remove
zakresy dat mogą być takie same lub różnić się w zależności od Twoich celów. Za pomocą overlay
możesz np. ustawić tylko kilka tygodni dla grudniowych świąt, a nie cały zakres ustawiony dla komunikatu „Dodaj stawkę”. Spowoduje to zastąpienie cen za obłożenie tylko za ten okres.
Ceny według dat
Skonfiguruj stawki podstawowe i łączne
Przykład 1
Stawka podstawowa (bez podatków i opłat) za domyślne obłożenie (podwójne). W tym modelu podatki i opłaty związane z usługą muszą być zdefiniowane za pomocą komunikatu <TaxFeeInfo>
. Stawka podstawowa będzie bardziej widoczna dla użytkowników z określonych regionów.
<?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>
Przykład 2
Stawka podstawowa i łączna za domyślne obłożenie (podwójne). W tym modelu podatków i opłat nie należy definiować oddzielnie za pomocą komunikatów <TaxFeeInfo>
. Stawka podstawowa będzie bardziej widoczna dla użytkowników z określonych regionów.
<?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>
Przykład 3
Łączna cena (z podatkami i opłatami) za kilka osób. W tym modelu podatków i opłat nie należy definiować oddzielnie za pomocą komunikatów <TaxFeeInfo>
.
<?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>
Przykład 4
Stawka podstawowa i łączna dla wielu typów pokojów oraz planów stawek w różnych zakresach dat.
<?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>
Dodawanie, nakładanie i usuwanie stawek
Dodaj ceny
Ustaw NotifType
na Delta
, aby dodać ceny za liczbę osób w przypadku RoomID_1 i PackageID_1 w okresie od 20.10.2021 do 31.12.2021. Pamiętaj, że Google obsługuje dane z maksymalnie 3 lat.
<?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>
Współczynniki nakładek
Ustaw NotifType
na Overlay
, aby usunąć wszystkie ceny za liczbę osób w przypadku RoomID_1 i PackageID_1 między 20.10.2021 a 31.12.2021 i zastąpić je nowo określonymi stawkami za liczbę osób.
Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj cenę”, ceny za obłożenie 1, 2 i 3 zostaną usunięte i zostanie zachowana tylko nowa cena za obłożenie 1. Możesz też ustawić krótszy zakres dat (np. 20 listopada 2021 r. i 31 grudnia 2021 r.) w celu zastąpienia tylko niektórych cen za obłożenie w określonych dniach, np. w święta.
<?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>
Usuń ceny
Ustaw NotifType
na Remove
, aby usunąć wszystkie ceny za liczbę osób w przypadku RoomID_1 i PackageID_1 między 20.10.2021 a 31.12.2021.
Jeśli na przykład ta wiadomość została wysłana po jednej z innych przykładowych wiadomości, informacje o opłatach za obłożenie nie zostaną zapisane.
<?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>
Dodawaj, nakładaj i usuwaj dodatkowe kwoty gości
Dodaj kwoty
Ustaw NotifType
na Delta
, aby dodać stawki podstawowe dla 1 i 2 osób oraz dodatkowe kwoty dla gości dla RoomID_1 i PackageID_1 na okres od 20 października 2021 r. do 31 grudnia 2021 r.
Dodatkowe kwoty gości będą doliczane do stawki podstawowej, która będzie określana na podstawie liczby osób w wyszukiwarce użytkownika. Ilość osób podana przez użytkownika musi mieścić się w limicie RoomID_1.
W tym przykładzie kwoty w ramach dodatkowych gości zostaną zastosowane w ten sposób:
- 5 USD dla dzieci w wieku od 0 do 10 lat (włącznie).
- 10 USD dla dzieci w wieku od 11 do 17 lat (włącznie).
- 20 USD dla dorosłych.
<?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>
Kwoty nakładek
Ustaw NotifType
na Overlay
, aby usunąć wszystkie ceny za liczbę osób i wszystkie dodatkowe kwoty dla RoomID_1 i PackageID_1 między 20.10.2021 a 31.12.2021, a następnie zastąpić je nowo określonymi stawkami za liczbę osób i dodatkowymi kwotami.
Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj stawkę”, stawki za obłożenie podstawowe 1 i 2 zostaną usunięte i zachowana będzie tylko nowa stawka za obłożenie podstawowe 1. Poprzedni zestaw kwot dodatkowych gości zostałby usunięty i zapisany byłby tylko nowy zestaw kwot. Dodatkowa liczba gości będzie teraz używać nowej stawki za obłożenie 1 jako stawki podstawowej. Pamiętaj, że po tej aktualizacji nie są stosowane żadne dodatkowe opłaty za dzieci.
<?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>
Usuń kwoty
Ustaw NotifType
na Delete
, aby usunąć wszystkie stawki podstawowe za liczbę osób i wszystkie dodatkowe kwoty dla gości w usługach RoomID_1 i PackageID_1 w okresie od 20.10.2021 do 31.12.2021.
Jeśli na przykład ta wiadomość została wysłana po jednej z innych przykładowych wiadomości, nie będą przechowywane żadne podstawowe stawki za liczbę osób ani dodatkowe kwoty gości.
<?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>
Usuń tylko dodatkowe liczby gości
Ustaw NotifType
na Delta
z pustym elementem <AdditionalGuestAmounts>
, aby usunąć wszystkie dodatkowe kwoty gości związane z RoomID_1 i PackageID_1 bez wpływu na stawki podstawowe pomiędzy 20.10.2021 a 31.12.2021.
Jeśli na przykład ta wiadomość została wysłana po jednej z pozostałych przykładowych wiadomości, przechowywane będą tylko kwoty podstawowe.
<?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>
Ceny na podstawie LOS
Skonfiguruj stawki oparte na LOS
Przykład 1
Ustal ceny za pobyty 1, 2 i 3 noclegi od 18 maja 2020 r. Łączna cena za pobyty 1, 2 i 3 noce w tym przykładzie wynosi 100 zł, 180 zł i 240 zł.
<?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>
Dodawaj, nakładaj i usuwaj stawki obliczane na podstawie LOS
Dodaj długości pobytu
W przypadku cen opartych na LOS operacja Delta
umożliwia stopniowe aktualizowanie cen dla zakresów dat zameldowania wskazanych w polu <StatusApplicationControl>
oraz dla wszystkich długości pobytu wskazanych w elemencie UnitMultiplier
każdego podrzędnego elementu Rate
.
W przypadku każdej obowiązującej daty zameldowania i długości pobytu należy określić wszystkie ceny za obłożenie.
<?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>
Długość pobytu nakładki
W przypadku cen opartych na LOS operacja Overlay
zastępuje stawki za wszystkie długości pobytu w usłudze i w zakresie dat zameldowania wskazanym w polu <StatusApplicationControl>
.
Ten komunikat spowoduje, że ceny za obłożenie za wszystkie długości pobytu w podanym dniu przyjazdu zostaną usunięte i zastąpione ceną za 2 osobę określoną tylko za długość pobytu 3.
<?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>
Usuń długość pobytu
W przypadku cen opartych na LOS operacja Remove
usuwa stawki za wszystkie długości pobytu w usłudze i w zakresie dat zameldowania wskazanym w polu <StatusApplicationControl>
.
<?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>
Odpowiedzi
Składnia
Komunikat OTA_HotelRateAmountNotifRS
ma taką składnię:
<?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>
Elementy i atrybuty
Wiadomość OTA_HotelRateAmountNotifRS
składa się z tych elementów i atrybutów:
Element / @Atrybut | Wystąpienia | Typ | Opis |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Element główny odpowiedzi na komunikat o dostępności. |
OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Unikalny identyfikator powiązanej wiadomości OTA_HotelRateAmountNotifRQ . |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Wskazuje, że komunikat OTA_HotelRateAmountNotifRQ został przetworzony.
Każda wiadomość zawiera element |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Kontener rozwiązania co najmniej jednego problemu, który wystąpił podczas przetwarzania wiadomości OTA_HotelRateAmountNotifRQ .
Każda wiadomość zawiera element |
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Opis błędu, który wystąpił podczas przetwarzania komunikatu OTA_HotelRateAmountNotifRQ . Szczegółowe informacje o tych błędach znajdziesz w artykule Komunikaty o błędach stanu pliku danych. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | Obiekt OpenTravel Alliance EWT (Error Warning Type) dotyczący błędu, który jest powiązany z błędem. Używana jest tylko wartość 12 (Processing exception) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | Kod błędu OpenTravel Alliance ERR (kod błędu).
Używana jest tylko wartość 450 (Unable to process) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | Stan pierwotnej prośby. Używana jest tylko wartość NotProcessed . |
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | Identyfikator Google problemu. Szczegółowe informacje o tych błędach znajdziesz w artykule Komunikaty o błędach stanu pliku danych. |
Przykłady
Gotowe
Poniżej znajdziesz odpowiedź na przetworzony komunikat OTA_HotelRateAmountNotifRQ.
<?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>
Błędy
Poniżej znajdziesz odpowiedź na komunikat OTA_HotelRateAmountNotifRQ, który nie został przetworzony z powodu błędów.
<?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>