Żą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
ma te elementy i atrybuty:
Element / @Atrybut | Wystąpienia | Typ | Opis |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Element główny komunikatu dotyczącego cen. |
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 komunikatu 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 obiektu Prawidłowe wartości to:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Kontener do określania konta partnera dla tej wiadomości (zwykle używany, jeśli backend udostępnia pliki danych z cenami dla wielu kont partnerów). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Wymagane, jeśli podano <POS> . Kontener <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Wymagane, jeśli podano <POS> . Określa konto partnera. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Konto partnera, do którego jest przypisana ta wiadomość. Ta wartość ciągu znaków jest wartością „Klucz partnera” podaną na
stronie Ustawienia konta w Hotel Center.
Uwaga: jeśli masz backend, który dostarcza pliki danych dla wielu kont, ta wartość musi być zgodna z 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ą parametru <id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też widoczny w Hotel Center. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Kontener do określania cen ceny pokoju (kombinacji typu pokoju i planu stawek w 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 zakresem dat. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Data zakończenia (na podstawie strefy czasowej usługi) włącznie z zakresem dat. Musi być równa wartości start lub większa.
Jeśli start i end są równe, aktualizacja dotyczy tej daty. 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 zasada ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględniać wtorki.
Jeśli zasada ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględniać środy.
Jeśli zasada ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględniać czwartki.
Jeśli zasada 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 zasada ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględniać soboty.
Jeśli zasada ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Ustaw jako true lub 1 , aby wyraźnie uwzględniać niedziele.
Jeśli zasada ma wartość |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Unikalny identyfikator zasobów reklamowych (typ sali). Ta wartość jest mapowana na <RoomID> w wiadomości o transakcji (dane usługi). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Unikalny identyfikator planu stawek. Ten identyfikator jest mapowany na <PackageID> w wiadomości dotyczącej transakcji (dane usługi). Abonament jest dokładniej zdefiniowany i odwoływany się do niego w komunikacie <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. W modelu cenowym opartym na LOS należy go określić tylko za pomocą wartości 26 . Wykluczenie tego atrybutu wskazuje, że jest to aktualizacja ceny według daty. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Kontener na kolekcję elementów <Rate> . Jeśli NotifType ma wartość "Remove" , tego elementu nie należy określać. W przeciwnym razie ten element należy określić dokładnie raz. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Kontener na zbiór 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 będzie określana w dniach.
Aby korzystać z cen opartych na LOS, musisz określić |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Liczba elementów RateTimeUnits , które składają się na długość pobytu w przypadku tej stawki.
Jeśli na przykład wartość Poziom obłożenia określony w tym obiekcie Aby korzystać z cen opartych na LOS, musisz określić |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Kontener na zbieranie opłat podstawowych. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Określa ceny pokoi w określonej walucie. Cena może określać cenę za obłożenie przy użyciu 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 zasadę NumberOfGuests . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
Dzienna cena pokoju bez podatków i opłat. Możesz 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 ceny pokoju po uwzględnieniu obowiązujących podatków i opłat. Jeśli jest określona wartość AmountAfterTax , nie trzeba wysyłać wiadomości <TaxFeeInfo> oddzielnie dla każdej usługi. Tego atrybutu można użyć 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 znaków alfanumerycznych zgodny z normą ISO 4217 (3) oznaczający określoną jednostkę pieniężną.
Zapoznaj się z listą obsługiwanych walut. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Maksymalna liczba osób, które mogą pomieścić w tej cenie.
Jeśli nie zostanie podana, domyślnie przyjmuje się 2 gości.
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, gdy w zależności od daty zmieniają się stawki za dodatkowych gości lub podrzędne. Jeśli te kwoty można statycznie określić na poziomie usługi, rozważ użycie bardziej efektywnego komunikatu
Załóżmy na przykład, że stawki podstawowe są określone dla 1 lub 2 osób dorosłych.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Określa ceny na podstawie typu gościa określonego do
AgeQualifyingCode oraz, w stosownych przypadkach, wieku gościa określonego w MaxAge .
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Określa typ dodatkowego gościa: dorosłego lub dziecka. Prawidłowe opcje to:
Musisz określić |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | Musisz określić MaxAge , gdy AgeQualifyingCode ma wartość 8 . Nie możesz go określać, gdy AgeQualifyingCode ma wartość 10 .
Wiele podrzędnych przedziałów wiekowych można określić 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 muszą być określone za pomocą elementu |
Przykłady
W tej sekcji znajdziesz przykłady kodu, które pokazują, jak:
- Konfigurowanie stawek podstawowych i łącznych
- Dodawanie, nakładanie i usuwanie stawek
- Dodawanie, nakładanie i usuwanie kwot dodatkowych gości
- Konfigurowanie stawek na podstawie 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óżne w zależności od Twoich celów. Możesz np. użyć parametru overlay
, aby ustawić tylko kilka tygodni w dni wolne od pracy, a nie cały zakres ustawiony dla komunikatu „Dodaj stawkę”. Spowoduje to zastąpienie stawek za obłożenie tylko w tym okresie.
Ceny według daty
Konfigurowanie stawek podstawowych i łącznych
Przykład 1
Stawka podstawowa (bez podatków i opłat) za domyślną liczbę osób (podwójną). W tym modelu podatki i opłaty dla usługi muszą być zdefiniowane za pomocą komunikatu <TaxFeeInfo>
. Stawka podstawowa będzie bardziej widoczna dla użytkowników szukających informacji 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 całkowita za domyślne obłożenie (liczba zmiennoprzecinkowa). W tym modelu podatków i opłat nie należy określać oddzielnie za pomocą komunikatów <TaxFeeInfo>
. Stawka podstawowa będzie bardziej widoczna w przypadku użytkowników szukających informacji 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) dla kilku osób. W tym modelu podatków i opłat nie należy określać 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 całkowita dla wielu rodzajów pokojów 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
Dodaj ceny
Ustaw NotifType
na Delta
, aby dodać ceny za liczbę osób w przypadku pokoi RoomID_1 i PackageID_1 od 20.10.2021 do 31.12.2021. Pamiętaj, że Google obsługuje dane z okresu 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>
Nakładki reklamowe
Ustaw NotifType
na Overlay
, aby usunąć wszystkie ceny za obłożenie pokoi RoomID_1 i PackageID_1 od 20.10.2021 do 31.12.2021 i zastąp je nowo określonymi stawkami za obłożenie.
Jeśli na przykład ta wiadomość została wysłana po wysłaniu wiadomości „Dodaj ceny”, stawki za obłożenie 1, 2 i 3 zostaną usunięte, a zapisana zostanie tylko nowa stawka za obłożenie 1. Możesz też ustawić krótszy zakres dat (np. 20.12.2021 i 31.12.2021), aby zastąpić tylko niektóre ceny za obłożenie w określone dni, 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 pokoi 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, stawki 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 kwoty dodatkowych gości
Dodaj kwoty
Ustaw NotifType
na Delta
, aby dodać stawki podstawowe za obłożenie 1 i 2 oraz dodatkowe kwoty gości dla RoomID_1 i PackageID_1 od 20.10.2021 do 31.12.2021.
Kwoty dodatkowych gości będą dodawane do stawki podstawowej, która jest określana na podstawie obłożenia w wyszukiwaniu użytkownika. Liczba osób podana przez użytkownika musi mieścić się w limicie RoomID_1.
W tym przykładzie kwoty dodatkowych gości zostaną zastosowane w następujący sposób:
- 5 USD dla dzieci w wieku od 0 do 10 lat (włącznie).
- 10 USD dla dzieci w wieku 11–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 obłożenie oraz wszystkie dodatkowe kwoty gości w przypadku pokoi RoomID_1 i PackageID_1 między 20.10.2021 a 31.12.2021 r., a następnie zastąp je nowo określonymi stawkami za obłożenie i dodatkowymi kwotami.
Jeśli na przykład ta wiadomość została wysłana po wysłaniu komunikatu „Dodaj ceny”, stawki podstawowe za obłożenie 1 i 2 zostałyby usunięte i tylko nowa cena podstawowa za obłożenie 1 zostanie zapisana. Poprzedni zestaw kwot dodatkowych gości zostanie usunięty i zachowany tylko nowy zestaw kwot. Kwoty dodatkowych gości będą teraz używać nowej stawki za obłożenie 1 jako stawki podstawowej. Po tej aktualizacji nie będą już obowiązywać dodatkowe opłaty dla gości w przypadku 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 podstawowe stawki za obłożenie oraz wszystkie dodatkowe kwoty dla pokoi RoomID_1 i PackageID_1 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 stawki podstawowe za obłożenie 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 dodatkowych gości
Ustaw NotifType
na Delta
z pustym elementem <AdditionalGuestAmounts>
, aby usunąć wszystkie dodatkowe kwoty gości dla RoomID_1 i PackageID_1 bez wpływu na stawki podstawowe 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, 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>
Cena na podstawie LOS
Skonfiguruj stawki oparte na LOS
Przykład 1
Ustal stawki za pobyt 1, 2 i 3 noclegi od 18 maja 2020 r. Łączna cena za 1, 2 i 3 noce w tym przykładzie wynosi odpowiednio 100 USD, 180 USD i 240 USD.
<?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>
Dodaj, nałóż i usuń stawki oparte na LOS.
Dodaj długość pobytu
W przypadku cen opartych na LOS operacja Delta
umożliwia stopniowe aktualizowanie stawek w zakresach dat zameldowania wskazanych w <StatusApplicationControl>
oraz w przypadku wszystkich długości pobytu wskazanych w atrybucie UnitMultiplier
każdego podrzędnego elementu Rate
.
W przypadku każdej odpowiedniej daty zameldowania i długości pobytu musisz określić wszystkie stawki 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ść nakładanych nakładek pobytu
W przypadku cen opartych na LOS operacja Overlay
zastępuje stawki za wszystkie długość pobytu i zakres dat zameldowania określony w polu <StatusApplicationControl>
.
W ramach tej wiadomości stawki za liczbę osób w przypadku wszystkich długości pobytu w podanych datach przyjazdu zostaną usunięte i zastąpione przez stawkę dla 2 osób, która jest określona tylko dla długości pobytu 3 osób.
<?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 i zakresy dat zameldowania wskazane we właściwości <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
Komunikat OTA_HotelRateAmountNotifRS
ma te elementy i atrybuty:
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 z powiązanej wiadomości OTA_HotelRateAmountNotifRQ . |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Wskazuje, że komunikat OTA_HotelRateAmountNotifRQ został przetworzony.
W każdej wiadomości występuje właściwość |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Kontener zawierający co najmniej 1 problem, który wystąpił podczas przetwarzania komunikatu 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 komunikatu OTA_HotelRateAmountNotifRQ . Szczegółowe informacje o tych błędach znajdziesz w sekcji Komunikaty o błędach stanu pliku danych. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | Wartość błędu OpenTravel Alliance EWT (typ ostrzeżenia o błędzie) powiązana z błędem. Używana jest tylko wartość 12 (Processing exception) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | Błąd – kod błędu: ERR (kod błędu) OpenTravel Alliance.
Używana jest tylko wartość 450 (Unable to process) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | Stan pierwotnego żądania. 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 sekcji Komunikaty o błędach stanu pliku danych. |
Przykłady
Gotowe
Ta wiadomość to odpowiedź na wiadomość OTA_HotelRateAmountNotifRQ, która została pomyślnie przetworzona.
<?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
To jest 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>