OTA_HotelPriceAmountififQQ,

Żą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)- (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 osobę dla 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>. 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 partner w wiadomości dotyczącej transakcji (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ą 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 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 wartość jest ustawiona na true, inne dni tygodnia, które nie są wyraźnie ustawione na true, są wykluczane (w efekcie są odfiltrowywane 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 wartość jest ustawiona na true, inne dni tygodnia, które nie są wyraźnie ustawione na true, są wykluczane (w efekcie są odfiltrowywane 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 wartość jest ustawiona na true, inne dni tygodnia, które nie są wyraźnie ustawione na true, są wykluczane (w efekcie są odfiltrowywane 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 wartość jest ustawiona na true, inne dni tygodnia, które nie są wyraźnie ustawione na true, są wykluczane (w efekcie są odfiltrowywane 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 wartość jest ustawiona na true, inne dni tygodnia, które nie są wyraźnie ustawione na true, są wykluczane (w efekcie są odfiltrowywane 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 wartość jest ustawiona na true, inne dni tygodnia, które nie są wyraźnie ustawione na true, są wykluczane (w efekcie są odfiltrowywane 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 wartość jest ustawiona na true, inne dni tygodnia, które nie są wyraźnie ustawione na true, są wykluczane (w efekcie są odfiltrowywane 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, 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ć RateTimeUnit i UnitMultiplier. W przeciwnym razie nie należy określać żadnej z nich.

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 opartej na długości pobytu, należy określić RateTimeUnit i UnitMultiplier. W przeciwnym razie nie należy określać żadnej z nich.

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 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, a do określania podatków i opłat używanie wartości <TaxFeeInfo>.

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 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 podano żadnej wartości, domyślnie są to 2 osoby.

Pamiętaj, że jeśli <AdditionalGuestAmounts> zawiera opłaty za dzieci, NumberOfGuests odnosi się tylko do osób dorosłych. Jeśli wartość <AdditionalGuestAmounts> nie jest określona 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 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 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 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 doliczona kwota za dodatkową osobę dorosłą.
  • Jeśli użytkownik wyszuka 1 osobę dorosłą 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: dla dorosłych.
  • 8: Dziecko.

Wartość AgeQualifyingCode można ustawić na 10 w przypadku co najwyżej 1 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 pasażerów w wieku dziecięcym.

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

W tej sekcji znajdziesz 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 „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 Overlayoperacja 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ść <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 właściwość <Success> lub <Errors>.

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>