OTA_HotelRateAmountNotifRQ

Żą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 / @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)- (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 <RateAmountMessage>.

Prawidłowe wartości to:

Aby dowiedzieć się, jak działają te atrybuty, zapoznaj się z przykładami.

  • Overlay: Usuń wszystkie stawki za pokój dla danego typu pokoju, planu cenowego i dat określonych w <StatusApplicationControl> i zastąp je nowymi stawkami.
  • Remove: Usuń wszystkie dotychczasowe stawki za pokój dla danego typu pokoju, planu cenowego i dat określonych w <StatusApplicationControl>.
  • Delta: (wartość domyślna, jeśli nie podano NotifType) Dodaj lub zaktualizuj dotychczasowe stawki za osobę w przypadku typu pokoju, planu cenowego i dat określonych w <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Zakres NotifType, który ma być stosowany do każdego <RateAmountMessage>.

Prawidłowe wartości to:

  • ProductRate: (wartość domyślna, jeśli nie określono NotifScopeType) NotifType dotyczy produktów, czyli kombinacji typu pokoju (InvTypeCode) i planu cenowego (RatePlanCode).
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>. Określa 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 partner w wiadomości Transakcja (dane usługi) oraz z wartością atrybutu ID w elemencie <RequestorID> wiadomości <OTA_HotelAvailNotifRQ> dla tego samego konta.

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ą atrybutu <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) w strefie czasowej usługi. Musi być równa lub większa niż wartość start. Jeśli wartości startend 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 ustawisz wartość true, inne dni tygodnia, które nie są wyraźnie ustawione na true, zostaną wykluczone (w efekcie zostaną odfiltrowane z dat w zakresie Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Ustaw wartość true lub 1, aby wyraźnie uwzględnić wtorki.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie są wyraźnie ustawione na true, zostaną wykluczone (w efekcie zostaną odfiltrowane z dat w zakresie Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Ustaw wartość true lub 1, aby wyraźnie uwzględnić środy.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie są wyraźnie ustawione na true, zostaną wykluczone (w efekcie zostaną odfiltrowane z dat w zakresie Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Ustaw wartość true lub 1, aby wyraźnie uwzględnić czwartki.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie są wyraźnie ustawione na true, zostaną wykluczone (w efekcie zostaną odfiltrowane z dat w zakresie Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri 0..1 boolean Ustaw wartość true lub 1, aby wyraźnie uwzględnić piątki.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie są wyraźnie ustawione na true, zostaną wykluczone (w efekcie zostaną odfiltrowane z dat w zakresie Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat 0..1 boolean Ustaw na true lub 1, aby wyraźnie uwzględnić soboty.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie są wyraźnie ustawione na true, zostaną wykluczone (w efekcie zostaną odfiltrowane z dat w zakresie Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean Ustaw wartość true lub 1, aby wyraźnie uwzględnić niedziele.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie są wyraźnie ustawione na true, zostaną wykluczone (w efekcie zostaną odfiltrowane z dat w zakresie Start i End).

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><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, podając wartość 26. Brak tego atrybutu oznacza, że jest to aktualizacja ceny za datę.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Kontener kolekcji elementów <Rate>. Jeśli wartość parametru NotifType to "Remove", nie można określić tego elementu. 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 zostanie podana w dniach.

Aby korzystać z ceny opartej na długości pobytu, należy określić RateTimeUnit i UnitMultiplier. W przeciwnym razie nie należy określać żadnej z tych wartości.

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ść RateTimeUnits to "Day", a UnitMultiplier wynosi 5, oznacza to, że stawki określone w tym obiekcie Rate obowiązują w przypadku każdej nocy 5-nocnego pobytu.

Stawki za zajętość określone w tym obiekcie Rate zostaną pomnożone przez UnitMultiplier (długość pobytu), aby uzyskać łączną cenę pobytu.

Aby korzystać z ceny na podstawie długości pobytu, należy określić RateTimeUnit i UnitMultiplier. W przeciwnym razie nie należy określać żadnej z tych wartości.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts Kontener kolekcji 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 dzień przed uwzględnieniem podatków i opłat.

Możesz określić zarówno AmountBeforeTax, jak i AmountAfterTax. Jeśli nie określono parametru AmountBeforeTax, należy określić parametr AmountAfterTax. Jeśli określono parametr AmountBeforeTax, a nie określono parametru AmountAfterTax, podatki i opłaty muszą być określone w wiadomości <TaxFeeInfo>.

Jeśli korzystasz z promocji, rabat jest stosowany do AmountBeforeTax, a rabaty procentowe są stosowane do AmountAfterTax. Ponieważ ta metoda nie działa w przypadku niektórych struktur podatkowych, zdecydowanie zalecamy podanie tutaj tylko wartości AmountBeforeTax i użycie wartości <TaxFeeInfo> do określenia podatków i opłat.

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 poszczególnych właściwości. Ten atrybut może być używany w połączeniu z atrybutem AmountBeforeTax, aby podawać 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 używanie AmountAfterTaxkwot. Jeśli chcesz korzystać z rabatów, określ podatki i opłaty za pomocą wiadomości <TaxFeeInfo>. Rabaty zostaną zastosowane do kwot AmountBeforeTax.

Uwaga: jeśli nie określono parametru AmountBeforeTax, należy określić parametr AmountAfterTax.

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 zostanie podana, domyślna wartość to 2 gości.

Pamiętaj, że jeśli <AdditionalGuestAmounts> zawiera opłaty za dzieci, NumberOfGuests odnosi się tylko do osób dorosłych. Jeśli element <AdditionalGuestAmounts> nie jest określony lub nie zawiera opłat za dzieci, NumberOfGuests odnosi się do łącznej liczby osób, w tym dorosłych i dzieci.

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 ceny 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 ExtraGuestCharges.

Dodatkowe kwoty za gości są naliczane w ten sposób:
  • Są one stosowane oprócz podstawowego współczynnika obłożenia. Podstawowa liczba osób to najwyższa liczba osób określona w <BaseByGuestAmts>, która jest mniejsza lub równa liczbie dorosłych w wyszukiwaniu użytkownika.
  • Są one stosowane, o ile liczba osób w wyszukiwaniu użytkownika mieści się w zakresie pojemności pokoju.
  • <AdditionalGuestAmounts> zawsze zastępuj wcześniej określone kwoty dodatkowe nowymi, gdy NotifType ma wartość Delta lub Overlay.
  • Wartość <AdditionalGuestAmounts> może być wysyłana niezależnie od stawek podstawowych tylko wtedy, gdy wartość NotifType to Delta. Wartość <BaseByGuestAmts> musi być określona, gdy wartość NotifType to Overlay.
  • Pusty element <AdditionalGuestAmounts> z atrybutem NotifType ustawionym na Delta usuwa istniejące kwoty dodatkowe bez wpływu na stawki podstawowe.
  • Są one stosowane w walucie określonej w <BaseByGuestAmt>.

Załóżmy na przykład, że ceny podstawowe są określone dla 1 i 2 osób dorosłych.

  • Jeśli użytkownik wyszuka 3 osoby dorosłe, jako cenę podstawową zostanie wybrana cena za 2 osoby, a do niej zostanie dodana kwota za 1 osobę dorosłą.
  • Jeśli użytkownik wyszuka pokój dla 1 osoby dorosłej i 2 dzieci, jako cenę podstawową zostanie wybrana cena za 1 osobę, a do niej zostaną dodane kwoty za 2 dzieci.
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:
  • 10: osoba dorosła.
  • 8: Dziecko.

Wartość AgeQualifyingCode można ustawić na 10 w przypadku maksymalnie jednego elementu AdditionalGuestAmount.

Wartość MaxAge musi być określona, gdy AgeQualifyingCode ma wartość 8.

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 MaxAge musi być liczbą całkowitą z zakresu od 0 do 17.

Podanie wartości 0 wyłącza dzieci.

Wartości większe niż 17 będą traktowane jako maksymalna akceptowana wartość 17.

Możesz określić wiele przedziałów wiekowych dzieci za pomocą osobnych elementów AdditionalGuestAmount. Przedziały wiekowe muszą być ciągłe i nie mogą się nakładać.

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 <AgeBrackets> w wiadomości <TaxFeeInfo>.

Przykłady

Ta sekcja zawiera przykłady kodu, które pokazują, jak:

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 „Szybkość dodawania”. 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 łącznych

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, typów pokoi i pakietów na usługę. Użyj typów powiadomień Overlay lub Remove, aby usunąć wcześniej zdefiniowane produkty.

Dodawanie stawek

Ustaw 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 nakładki

Ustaw wartość 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 zostanie zapisana 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 wartość NotifType na Remove, aby usunąć wszystkie stawki za pokój 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 wiadomości przykładowych, 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 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ładki

Ustaw NotifType na Overlay, aby usunąć wszystkie stawki za pokój i wszystkie kwoty dodatkowe za gościa 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 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 wartość NotifType na Delete, aby usunąć wszystkie stawki podstawowe za pokój i wszystkie dodatkowe kwoty dla gości 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 stawki podstawowe za zajęcie 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, 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 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 18 maja 2020 r. 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 UnitMultiplier każdego elementu podrzędnego Rate.

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 Overlayoperacja<StatusApplicationControl> 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 / @Atrybut 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 element <Success> lub <Errors>.

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 element <Success> lub <Errors>.

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error Opis błędu, który wystąpił podczas przetwarzania wiadomościOTA_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 (Error Warning Type) 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

Poniżej znajduje się 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>