Żądania
Składnia
Wiadomość OTA_HotelRateAmountNotifRQ
ma tę 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
zawiera te elementy i atrybuty:
Element / @Attribute | Wystąpienia | Typ | Opis |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Element główny wiadomości z cenami. |
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 | wersję 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 dowiedzieć się, 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 dla tego komunikatu (zwykle używany, jeśli backend udostępnia pliki danych o cenach dla wielu kont partnerów). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Wymagany, jeśli występuje <POS> . Kontener na potrzeby elementu <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Wymagany, jeśli występuje <POS> . Definiuje konto partnera. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Konto partnera, do którego należy 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 być zgodna z wartością atrybutu |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Kolekcja elementów <RateAmountMessage> , które określają stawki. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym 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 (połączenie typu pokoju i abonamentu w określonym zakresie dat). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Określa zakres dat oraz identyfikatory typu pokoju (InvTypeCode ) i planu cenowego (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | Data rozpoczęcia zakresu dat (włącznie) w strefie czasowej usługi. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Data zakończenia zakresu dat (włącznie z wartościami granicznymi) na podstawie strefy czasowej usługi. Musi być równa lub większa niż wartość start .
Jeśli wartości start i end są równe, aktualizacja zostanie zastosowana do tej daty. Pamiętaj, że Google obsługuje dane z okresu do 3 lat. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Ustaw wartość true lub 1 , aby wyraźnie uwzględnić poniedziałki.
Jeśli wartość jest ustawiona na |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Ustaw wartość true lub 1 , aby wyraźnie uwzględnić wtorki.
Jeśli wartość jest ustawiona na |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Ustaw wartość true lub 1 , aby wyraźnie uwzględnić środy.
Jeśli wartość jest ustawiona na |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Ustaw wartość true lub 1 , aby wyraźnie uwzględnić czwartki.
Jeśli wartość jest ustawiona na |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Ustaw wartość true lub 1 , aby wyraźnie uwzględnić piątki.
Jeśli wartość jest ustawiona na |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Ustaw na true lub 1 , aby wyraźnie uwzględnić soboty.
Jeśli wartość jest ustawiona na |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Ustaw wartość true lub 1 , aby wyraźnie uwzględnić niedziele.
Jeśli wartość jest ustawiona na |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Unikalny identyfikator asortymentu (rodzaju pokoju). Ta wartość jest mapowana na <RoomID> w wiadomości Transaction (Property Data). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Unikalny identyfikator planu cenowego. Ten identyfikator jest mapowany na element <PackageID> w wiadomości Transaction (Property Data). Plan taryfowy jest dalej definiowany i określany w <StatusApplicationControl> w wiadomościach <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Identyfikator wskazujący typ modelu cenowego ARI, który ma zastosowanie do tej aktualizacji cen. Należy ją określić tylko wtedy, gdy używasz modelu cenowego opartego na długości pobytu, a wartość wynosi 26 . Brak tego atrybutu oznacza, że jest to aktualizacja ceny za datę. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Kontener na kolekcję elementów <Rate> . Jeśli wartość parametru NotifType to "Remove" , tego elementu nie można określić. W przeciwnym razie ten element musi być określony dokładnie raz. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Kontener kolekcji elementów <BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Jednostka, w której określana jest długość pobytu. Jedyną obsługiwaną wartością jest "Day" , co oznacza, że długość pobytu będzie podana w dniach.
Aby korzystać z ceny opartej na długości pobytu, należy 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 tej stawki.
Jeśli na przykład wartość Stawki za zajętość określone w tym obiekcie Aby korzystać z ceny opartej na długości pobytu, należy określić |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Kontener na zbiór opłat podstawowych. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Określa ceny pokoi w wybranej walucie. Cena może być podana za osobę, jeśli użyjesz kilku elementów <BaseByGuestAmt> , z których każdy ma inną wartość atrybutu NumberOfGuests .
W przeciwnym razie cena obowiązuje dla maksymalnej liczby osób określonej przez NumberOfGuests . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
Cena za pokój za dzień przed uwzględnieniem podatków i opłat. Możesz określić zarówno Jeśli korzystasz z promocji, rabat jest stosowany do |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Cena za dzień po uwzględnieniu obowiązujących podatków i opłat. Jeśli określono wartość AmountAfterTax , nie trzeba wysyłać oddzielnych wiadomości <TaxFeeInfo> dla każdej usługi. Ten atrybut może być używany w połączeniu z atrybutem AmountBeforeTax , aby podawać stawki podstawowe i łączne, które mogą być wyświetlane użytkownikom w określonych regionach.
Ostrzeżenie: jeśli korzystasz z promocji, zdecydowanie odradzamy używanie Uwaga: jeśli nie określono parametru |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Trzyliterowy kod waluty według normy ISO 4217.
Zapoznaj się z listą obsługiwanych walut. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Maksymalna liczba gości, których można zakwaterować w ramach tej ceny.
Jeśli nie podano żadnej wartości, domyślnie są to 2 osoby.
Pamiętaj, że jeśli |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Kontener na zbiór opłat za dodatkowych gości.
Ta składnia jest przydatna, jeśli dodatkowe stawki dla gości lub dzieci zmieniają się w zależności od daty. Jeśli te kwoty można zdefiniować statycznie na poziomie usługi, rozważ użycie bardziej wydajnego komunikatu
Załóżmy na przykład, że ceny podstawowe są określone dla 1 i 2 osób dorosłych.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Określa ceny na podstawie typu gościa, podanego za pomocą elementu AgeQualifyingCode , oraz w stosownych przypadkach wieku gościa, podanego za pomocą elementu MaxAge .
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Określa typ dodatkowego gościa: osoba dorosła lub dziecko. Prawidłowe opcje:
Wartość Wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | Wartość MaxAge musi być określona, gdy AgeQualifyingCode ma wartość 8 . Nie można go określić, gdy AgeQualifyingCode ma wartość 10 .
Wartość flagi Podanie wartości Wartości większe niż Możesz określić wiele przedziałów wiekowych dzieci za pomocą osobnych elementów |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Kwota przed opodatkowaniem i opłatami dodana do stawki podstawowej za każdego dodatkowego gościa.
Podatki i opłaty zależne od wieku osób zajmujących pokój muszą być określone za pomocą elementu |
Przykłady
W tej sekcji znajdziesz przykłady kodu, które pokazują, jak:
- Konfigurowanie stawek podstawowych i stawek łącznych
- Dodawanie, nakładanie i usuwanie stawek
- Dodawanie, nakładanie i usuwanie dodatkowych kwot za gości
- Konfigurowanie cen na podstawie długości pobytu
- Dodawanie, nakładanie i usuwanie stawek opartych na długości pobytu
Gdy ustawisz wartości add
, overlay
lub remove
, zakresy dat mogą być takie same lub różne w zależności od Twoich celów. Możesz na przykład użyć wartości overlay
, aby ustawić tylko kilka tygodni na okres świąt grudniowych, a nie cały zakres ustawiony dla komunikatu „Dodaj stawkę”. Zastąpi to stawki obłożenia tylko w tym okresie.
Ceny za dzień
W przypadku danego pokoju i planu cenowego może być maksymalnie 50 poziomów obłożenia na obiekt. Jeśli stawki są takie same dla wszystkich rodzajów zakwaterowania, wystarczy przesłać maksymalną liczbę osób z wymaganą ceną. W ten sposób Google wnioskuje, że w przypadku mniejszego obłożenia obowiązuje ta sama stawka podstawowa.
Konfigurowanie stawek podstawowych i całkowitych
Przykład 1
Stawka podstawowa (bez podatków i opłat) dla domyślnego obłożenia (podwójnego). W tym modelu podatki i opłaty za obiekt muszą być zdefiniowane za pomocą wiadomości <TaxFeeInfo>
. Stawka podstawowa będzie bardziej widoczna dla użytkowników wyszukujących 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
Cena podstawowa i łączna dla domyślnego obłożenia (2 osoby). W tym modelu podatki i opłaty nie powinny być definiowane oddzielnie za pomocą komunikatów <TaxFeeInfo>
. Stawka podstawowa będzie bardziej widoczna dla użytkowników wyszukujących 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) przy różnym obłożeniu. W tym modelu podatki i opłaty nie powinny być definiowane 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
stawki podstawowe i całkowite dla wielu typów pokoi i abonamentów 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
Obowiązuje limit 5000 kombinacji produktów (rodzaj pokoju i pakiet) na usługę. Użyj typów powiadomień Overlay
lub Remove
, aby usunąć wcześniej zdefiniowane produkty.
Dodawanie stawek
Ustaw wartość NotifType
na Delta
, aby dodać stawki za osobę dla
RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31. Pamiętaj, że Google obsługuje dane z okresu do 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>
Stawki za nakładki
Ustaw NotifType
na Overlay
, aby usunąć wszystkie stawki za pokój dla RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31 i zastąpić je nowo określonymi stawkami za pokój.
Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj stawki”, stawki za 1, 2 i 3 osoby zostaną usunięte i zapisana zostanie tylko nowa stawka za 1 osobę. Możesz też ustawić krótszy zakres dat (np. 2021-12-20 i 2021-12-31), aby zastąpić tylko niektóre stawki obłożenia w określonych datach, np. w dni świąteczne.
<?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>
Usuwanie stawek
Ustaw NotifType
na Remove
, aby usunąć wszystkie stawki za pokój dla poszczególnych osób dla RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31.
Jeśli na przykład ta wiadomość została wysłana po którejś z pozostałych przykładowych wiadomości, nie zostaną zapisane żadne stawki za zajęcie.
<?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>
Dodawanie, nakładanie i usuwanie dodatkowych kwot gości
Dodawanie kwot
Ustaw wartość NotifType
na Delta
, aby dodać stawki podstawowe dla 1 i 2 osób oraz kwoty za dodatkowych gości dla RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31.
Dodatkowe opłaty za gości będą naliczane powyżej stawki podstawowej, która będzie określana na podstawie liczby osób w wyszukiwaniu użytkownika. Określona przez użytkownika liczba osób musi mieścić się w zakresie pojemności pomieszczenia RoomID_1.
W tym przykładzie dodatkowe kwoty za gości zostaną zastosowane w ten sposób:
- 5 USD w przypadku dzieci w wieku od 0 do 10 lat (włącznie).
- 10 USD w przypadku 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 wartość NotifType
na Overlay
, aby usunąć wszystkie stawki za pokój i wszystkie kwoty dodatkowe za gościa dla identyfikatorów RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31 i zastąpić je nowo określonymi stawkami za pokój i kwotami dodatkowymi.
Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj stawki”, stawki podstawowe dla 1 i 2 osób zostaną usunięte i zostanie zapisana tylko nowa stawka podstawowa dla 1 osoby. Poprzedni zestaw dodatkowych kwot za gości zostanie usunięty i zostanie zapisany tylko nowy zestaw kwot. Dodatkowe kwoty dla gości będą teraz korzystać z nowej stawki dla 1 osoby jako stawki podstawowej. Pamiętaj, że po tej aktualizacji nie będą już obowiązywać ż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>
Usuwanie kwot
Ustaw NotifType
na Delete
, aby usunąć wszystkie stawki podstawowe za pokój i wszystkie dodatkowe kwoty za gościa w przypadku RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31.
Jeśli na przykład ta wiadomość została wysłana po którejś z pozostałych przykładowych wiadomości, nie zostaną zapisane żadne podstawowe stawki za pobyt ani dodatkowe kwoty za 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>
Usuwanie tylko kwot za dodatkowych gości
Ustaw wartość NotifType
na Delta
z pustym elementem <AdditionalGuestAmounts>
, aby usunąć wszystkie dodatkowe kwoty za gości w przypadku RoomID_1 i PackageID_1 bez wpływu na stawki podstawowe w okresie od 2021-10-20 do 2021-12-31.
Jeśli na przykład ta wiadomość została wysłana po którejś z pozostałych przykładowych wiadomości, zapisane zostaną 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 zależne od długości pobytu
Konfigurowanie cen na podstawie długości pobytu
Przykład 1
Ustal stawki za pobyt 1-, 2- i 3-dniowy od 2020-05-18. W tym przykładzie łączna cena za pobyt na 1, 2 i 3 noce wyniesie odpowiednio 100, 180 i 240 PLN.
<?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>
Dodawanie, nakładanie i usuwanie stawek opartych na długości pobytu
Dodawanie długości pobytu
W przypadku cen opartych na długości pobytu operacja Delta
umożliwia stopniowe aktualizowanie stawek w przypadku zakresów dat zameldowania wskazanych w elemencie <StatusApplicationControl>
oraz wszystkich długości pobytu wskazanych w elemencie podrzędnym Rate
elementu UnitMultiplier
.
W przypadku każdej odpowiedniej daty zameldowania i długości pobytu należy określić wszystkie stawki za zajęcie pokoju.
<?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>
Nakładanie długości pobytu
W przypadku cen opartych na długości pobytu Overlay
operacja zastępuje stawki dla wszystkich długości pobytu produktu i zakresu dat zameldowania wskazanych w <StatusApplicationControl>
.
Wiadomość ta spowoduje usunięcie stawek za 1 osobę dla wszystkich długości pobytu w określonych datach przyjazdu i zastąpienie ich stawką za 2 osoby, która jest zdefiniowana tylko dla długości 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>
Usuwanie długości pobytu
W przypadku cen opartych na długości pobytu operacja Remove
usuwa stawki dla wszystkich długości pobytu produktu i zakresu dat zameldowania podanego w <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
Wiadomość OTA_HotelRateAmountNotifRS
ma tę 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
ma te elementy i atrybuty:
Element / @Attribute | Wystąpienia | Typ | Opis |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Element główny odpowiedzi na wiadomość o dostępności. |
OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. |
OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Unikalny identyfikator z powiązanejOTA_HotelRateAmountNotifRQ wiadomości. |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Wskazuje, że wiadomość OTA_HotelRateAmountNotifRQ została przetworzona.
W każdej wiadomości występuje właściwość |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Kontener na co najmniej 1 problem napotkany podczas przetwarzania wiadomości OTA_HotelRateAmountNotifRQ .
W każdej wiadomości występuje właściwość |
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Opis błędu, który wystąpił podczas przetwarzania wiadomości 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 | Typ błędu lub ostrzeżenia OpenTravel Alliance EWT 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 powiązany z błędem.
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 problemu w Google. Szczegółowe informacje o tych błędach znajdziesz w artykule Komunikaty o błędach stanu pliku danych. |
Przykłady
Sukces
Oto odpowiedź na prawidłowo przetworzoną wiadomość 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 znajduje się odpowiedź na wiadomość OTA_HotelRateAmountNotifRQ, która nie została przetworzona 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>