OTA_HotelPriceAmountififQQ,

Żą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 <RateAmountMessage>.

Prawidłowe wartości to:

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

  • Overlay: Usuń wszystkie ceny za obłożenie dla typu pokoju, abonamentu i dat określonych w opcji <StatusApplicationControl>, a następnie zastąp je nowymi cenami.
  • Remove: Usuń wszystkie istniejące ceny za obłożenie dla typu pokoju, abonamentu i dat określonych w polu <StatusApplicationControl>.
  • Delta: (wartość domyślna, jeśli nie określono NotifType) Dodaj lub zaktualizuj obecne ceny za obłożenie dotyczące typu pokoju, abonamentu i dat określonych w kolumnie <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Zakres obiektu NotifType, który ma zastosowanie do każdego elementu typu <RateAmountMessage>.

Prawidłowe wartości to:

  • ProductRate: (wartość domyślna, jeśli nie określono NotifScopeType) NotifType dotyczy produktów – kombinacji rodzaju pokoju (InvTypeCode) i abonamentu (RatePlanCode).
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 partner komunikatu transakcji (dane usługi) i wartości atrybutu ID w elemencie <RequestorID> komunikatu <OTA_HotelAvailNotifRQ> dla tego samego konta.

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ść true, inne dni tygodnia, które nie mają wartości true, są wykluczane (w efekcie są odfiltrowywane z okresów w zakresie Start i End).

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ść true, inne dni tygodnia, które nie mają wartości true, są wykluczane (w efekcie są odfiltrowywane z okresów w zakresie Start i End).

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ść true, inne dni tygodnia, które nie mają wartości true, są wykluczane (w efekcie są odfiltrowywane z okresów w zakresie Start i End).

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ść true, inne dni tygodnia, które nie mają wartości true, są wykluczane (w efekcie są odfiltrowywane z okresów w zakresie Start i End).

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ść true, inne dni tygodnia, które nie mają wartości true, są wykluczane (w efekcie są odfiltrowywane z okresów w zakresie Start i End).

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ść true, inne dni tygodnia, które nie mają wartości true, są wykluczane (w efekcie są odfiltrowywane z okresów w zakresie Start i End).

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ść true, inne dni tygodnia, które nie mają wartości true, są wykluczane (w efekcie są odfiltrowywane z okresów w zakresie Start i End).

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ć RateTimeUnit i UnitMultiplier. W przeciwnym razie żadna nie powinna być określona.

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ść RateTimeUnits to "Day", UnitMultiplier z 5 oznacza, że stawki określone w tym obiekcie Rate dotyczą każdej nocy w przypadku 5 noclegów.

Poziom obłożenia określony w tym obiekcie Rate zostanie pomnożony przez UnitMultiplier (długość pobytu), aby uzyskać całkowitą cenę za pobyt.

Aby korzystać z cen opartych na LOS, musisz określić RateTimeUnit i UnitMultiplier. W przeciwnym razie żadna nie powinna być określona.

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 AmountBeforeTax, jak i AmountAfterTax. Jeśli AmountBeforeTax nie jest określony, wartość AmountAfterTax musi być określona. Jeśli określono AmountBeforeTax, a nie określono AmountAfterTax, w komunikacie <TaxFeeInfo> należy podać podatki i opłaty.

Jeśli korzystasz z promocji, zniżka zostanie zastosowana do AmountBeforeTax, a zniżki procentowe – AmountAfterTax. Nie sprawdza się to w niektórych strukturach podatkowych, dlatego zdecydowanie zalecamy określenie tutaj tylko AmountBeforeTax i określenia podatków i opłat za pomocą <TaxFeeInfo>.

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 AmountAfterTax. Jeśli chcesz korzystać z rabatów, określ podatki i opłaty za pomocą komunikatu <TaxFeeInfo>. Twoje rabaty zostaną zastosowane do kwot AmountBeforeTax.

Uwaga: jeśli AmountBeforeTax nie jest określony, musisz określić AmountAfterTax.

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 <AdditionalGuestAmounts> zawiera opłaty za dzieci, to NumberOfGuests odnosi się tylko do osób dorosłych. Jeśli obiekt <AdditionalGuestAmounts> nie jest określony lub nie zawiera opłat za dzieci, NumberOfGuests oznacza łączną liczbę gości, w tym dorosłych i dzieci.

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

Kwoty dodatkowych gości są naliczane w następujący sposób:
  • Są stosowane do podstawowego poziomu obłożenia. Podstawowy poziom obłożenia to najwyższy poziom obłożenia określony w funkcji <BaseByGuestAmts>, który jest mniejszy lub równy liczbie dorosłych w wyszukiwaniu użytkownika.
  • Są stosowane, gdy obłożenie wyszukiwane przez użytkownika mieści się w ramach limitu sali.
  • Gdy NotifType ma wartość Delta lub Overlay, <AdditionalGuestAmounts> zawsze zastępuj wcześniej określone kwoty dodatkowe nowymi.
  • <AdditionalGuestAmounts> może być wysyłane niezależnie od stawek podstawowych tylko wtedy, gdy NotifType to Delta. <BaseByGuestAmts>Trzeba je określić, gdy NotifType ma wartość Overlay.
  • Pusty element <AdditionalGuestAmounts> z wartością NotifType ustawioną na Delta usuwa istniejące dodatkowe kwoty bez wpływu na stawki podstawowe.
  • Są one stosowane z użyciem waluty podanej tutaj: <BaseByGuestAmt>.

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

  • Jeśli użytkownik wyszukuje 3 osoby dorosłe, stawka za podwójne obłożenie zostanie wybrana jako stawka podstawowa, a do tej kwoty zostanie doliczona dodatkowa kwota za 1 osobę dorosłą.
  • Jeśli użytkownik wyszukuje 1 osobę dorosłą i 2 dzieci, jako stawkę podstawową zostanie wybrana cena za 1 osobę, a do niej zostaną doliczone dodatkowe kwoty dla 2 dzieci.
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:
  • 10: Osoba dorosła.
  • 8: Dziecko.

AgeQualifyingCode można ustawić na 10 dla maksymalnie 1 elementu AdditionalGuestAmount.

Musisz określić MaxAge, gdy AgeQualifyingCode ma wartość 8.

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.

MaxAge musi być liczbą całkowitą z zakresu od 0 do 17.

Wiele podrzędnych przedziałów wiekowych można określić za pomocą osobnych elementów AdditionalGuestAmount. Przedziały wiekowe muszą się pokrywać i nie nakładać na siebie.

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

Przykłady

W tej sekcji znajdziesz przykłady kodu, które pokazują, jak:

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

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

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>