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 składa się z tych elementów i atrybutów:

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) i - (dash).
OTA_HotelRateAmountNotifRQ / @TimeStamp 1 DateTime Data i godzina utworzenia tej wiadomości.
OTA_HotelRateAmountNotifRQ / @Version 1 decimal Wersja 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 zrozumieć, jak działają te atrybuty, zapoznaj się z przykładami.

  • Overlay:Usuń wszystkie stawki za obłożenie powiązane z typem pokoju, abonamentem i datami podanymi w polu <StatusApplicationControl>, a następnie zastąp je nowymi stawkami.
  • Remove: Usuń wszystkie istniejące stawki za obłożenie powiązane z typem pokoju, abonamentem i datami określonymi w atrybucie <StatusApplicationControl>.
  • Delta: (wartość domyślna, jeśli nie określono NotifType) Dodaj lub zaktualizuj istniejące stawki za obłożenie dotyczące typu pokoju, abonamentu i dat podanych w <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Zakres NotifType, który będzie stosowany do każdej z tych kategorii: <RateAmountMessage>.

Prawidłowe wartości to:

  • ProductRate: (wartość domyślna, jeśli NotifScopeType nie jest określona) NotifType ma zastosowanie do usług – kombinacji typu pokoju (InvTypeCode) i abonamentu (RatePlanCode).
OTA_HotelRateAmountNotifRQ / POS 0..1 POS Kontener do określania konta partnera na potrzeby tej wiadomości (zwykle używany, gdy backend udostępnia pliki danych z cenami dla kilku kont partnerów).
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Wymagane, jeśli występuje <POS>. Kontener dla: <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Wymagane, jeśli występuje <POS>. Określa konto partnera.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 string Konto partnera, z którego pochodzi 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 odpowiadać wartości atrybutu partner komunikatu transakcji (dane właściwości) 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ą 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 (kombinację typu pokoju i abonamentu w danym 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 datą rozpoczęcia zakresu dat.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date Data końcowa z zakresu dat (na podstawie strefy czasowej usługi). Wartość nie może być mniejsza niż wartość start. Jeśli wartości start i end są równe, aktualizacja zostanie zastosowana do wybranego dnia. 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 ma wartość true, pozostałe dni tygodnia, które nie mają przypisanej wartości true, są wykluczane (w efekcie są odfiltrowywane z dat podanych w parametrach Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Ustaw jako true lub 1, aby uwzględnić wtorki.

Jeśli ma wartość true, pozostałe dni tygodnia, które nie mają przypisanej wartości true, są wykluczane (w efekcie są odfiltrowywane z dat podanych w parametrach Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds 0..1 boolean Ustaw jako true lub 1, by uwzględnić środy.

Jeśli ma wartość true, pozostałe dni tygodnia, które nie mają przypisanej wartości true, są wykluczane (w efekcie są odfiltrowywane z dat podanych w parametrach Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Ustaw jako true lub 1, aby uwzględnić czwartki.

Jeśli ma wartość true, pozostałe dni tygodnia, które nie mają przypisanej wartości true, są wykluczane (w efekcie są odfiltrowywane z dat podanych w parametrach 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 ma wartość true, pozostałe dni tygodnia, które nie mają przypisanej wartości true, są wykluczane (w efekcie są odfiltrowywane z dat podanych w parametrach Start i End).

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

Jeśli ma wartość true, pozostałe dni tygodnia, które nie mają przypisanej wartości true, są wykluczane (w efekcie są odfiltrowywane z dat podanych w parametrach Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun 0..1 boolean Ustaw jako true lub 1, aby uwzględnić niedziele.

Jeśli ma wartość true, pozostałe dni tygodnia, które nie mają przypisanej wartości true, są wykluczane (w efekcie są odfiltrowywane z dat podanych w parametrach Start i End).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 1 string Unikalny identyfikator zasobów reklamowych (typ pomieszczenia). Ta wartość jest mapowana na <RoomID> w komunikacie transakcji (dane usługi).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string Unikalny identyfikator abonamentu. Ten identyfikator jest mapowany na obiekt <PackageID> w komunikacie transakcji (dane usługi). Plan stawek jest szczegółowo zdefiniowany i przywołany w <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. Należy go podawać za pomocą wartości 26 tylko wtedy, gdy używasz modelu cenowego na podstawie LOS. Wykluczenie tego atrybutu wskazuje, że jest to aktualizacja cen według okresu.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates 0..1 Rates Kontener dla zbioru elementów <Rate>. Jeśli NotifType to "Remove", nie można określać tego elementu. W przeciwnym razie element trzeba określić dokładnie raz.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Kontener dla kolekcji 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 jest podawana w dniach.

Aby korzystać z cen na podstawie LOS, musisz określić RateTimeUnit i UnitMultiplier. W przeciwnym razie nie należy podawać ż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 danej ceny.

Jeśli na przykład RateTimeUnits ma wartość "Day", UnitMultiplier z 5 oznacza, że stawki określone w tym obiekcie Rate dotyczą każdej nocy w przypadku 5-dniowego pobytu.

Stawki za obłożenie określone w obiekcie Rate zostaną mnożone przez UnitMultiplier (długość pobytu), aby uzyskać łączną cenę za pobyt.

Aby korzystać z cen na podstawie LOS, musisz określić RateTimeUnit i UnitMultiplier. W przeciwnym razie nie należy podawać żadnej z nich.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts 1 BaseByGuestAmts Kontener do pobierania opłat podstawowych.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt 1..n BaseByGuestAmt Określa ceny za pokoje w określonej walucie. Cena może być określona za liczbę osób za pomocą 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 NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

Dzienna cena stawki za pokój bez podatków i opłat.

Można określić zarówno AmountBeforeTax, jak i AmountAfterTax. Jeśli AmountBeforeTax nie został określony, musisz określić AmountAfterTax. Jeśli określono AmountBeforeTax, a AmountAfterTax nie określono, podatki i opłaty należy podać w komunikacie <TaxFeeInfo>.

Jeśli korzystasz z promocji, zniżka zostanie zastosowana do AmountBeforeTax. Rabaty procentowe mają też zastosowanie do AmountAfterTax. Ponieważ nie działa to w przypadku niektórych struktur podatkowych, zdecydowanie zalecamy jedynie określenie w tym miejscu AmountBeforeTax i użycie właściwości <TaxFeeInfo> do określenia podatków i opłat.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float Dzienna cena stawki za pokój po uwzględnieniu obowiązujących podatków i opłat. Jeśli określono AmountAfterTax, nie trzeba wysyłać osobnych wiadomości <TaxFeeInfo> z poszczególnych usług. Tego atrybutu możesz używać 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>. Zniżki zostaną zastosowane do kwot AmountBeforeTax.

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

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode 1 enum Kod alfa zgodny ze standardem ISO 4217 (3) dla określonej jednostki pieniężnej.

Sprawdź listę obsługiwanych walut.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 integer Maksymalna liczba gości, które można zatrzymać w ramach tej ceny. Jeśli nie zostanie podany, domyślnie będą to 2 osoby.

Pamiętaj, że jeśli atrybut <AdditionalGuestAmounts> zawiera opłaty dla dzieci, NumberOfGuests dotyczy tylko osób dorosłych. Jeśli właściwość <AdditionalGuestAmounts> nie jest określona lub nie zawiera opłat za dzieci, NumberOfGuests odnosi się do łącznej liczby osób w pomieszczeniu – zarówno dorosłych, jak 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, jeśli stawki za dodatkowe osoby lub dzieci zmieniają się zależnie od daty. Rozważ użycie bardziej skutecznego komunikatu ExtraGuestCharges, jeśli te kwoty można statycznie zdefiniować na poziomie usługi.

Kwoty dodatkowe są naliczane w ten sposób:
  • Są one doliczane do podstawowej stawki za obłożenie. Podstawowy poziom obłożenia to najwyższy współczynnik obłożenia określony w <BaseByGuestAmts>, który jest mniejszy lub równy liczbie dorosłych w wyszukiwaniu użytkownika.
  • Są one stosowane, dopóki liczba osób w wyszukiwaniu użytkownika nie przekracza limitu liczby osób w pokoju.
  • <AdditionalGuestAmounts> zawsze zastępuje określone wcześniej dodatkowe kwoty nowymi, gdy NotifType to Delta lub Nakładka.
  • Wartość <AdditionalGuestAmounts> może być wysyłana niezależnie od stawek podstawowych tylko wtedy, gdy NotifType to Delta. Jeśli NotifType ma wartość Overlay, należy określić <BaseByGuestAmts>.
  • Pusty element <AdditionalGuestAmounts> z wartością NotifType ustawioną na Delta spowoduje usunięcie istniejących dodatkowych kwot bez wpływu na stawki podstawowe.
  • Są one stosowane z użyciem waluty określonej w polu <BaseByGuestAmt>.

Załóżmy na przykład, że stawki podstawowe zostały określone dla 1 i 2 dorosłych.

  • Jeśli użytkownik wyszuka 3 osoby dorosłe, jako stawka podstawowa zostanie wybrana cena za podwójne obłożenie, a do niej zostanie doliczona opłata za dodatkowe miejsce dla 1 osoby dorosłej.
  • Jeśli użytkownik wyszuka 1 osobę dorosłą i 2 dzieci, jako stawka podstawowa zostanie wybrana cena za 1 osobę, a do niej zostaną zastosowane dodatkowe kwoty w przypadku 2 dzieci.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount Określa ceny w zależności od typu gościa (określonego za pomocą elementu AgeQualifyingCode) oraz, w odpowiednich przypadkach, wieku gościa podanego w usłudze MaxAge.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode 1 enum Określa typ dodatkowego gościa (dorosły lub dziecko). Prawidłowe opcje to:
  • 10: osoba dorosła.
  • 8: Dziecko.

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

Jeśli AgeQualifyingCode to 8, musisz określić wartość MaxAge.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer Jeśli AgeQualifyingCode to 8, musisz określić wartość MaxAge. Nie można go określać, gdy AgeQualifyingCode ma wartość 10.

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

Można określić wiele przedziałów wiekowych dla dzieci za pomocą osobnych elementów AdditionalGuestAmount. Przedziały wiekowe muszą przylegać do siebie i nie mogą się pokrywać.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount 1 float Kwota przed naliczeniem podatków i opłat dodanych do stawki podstawowej za każdego dodatkowego gościa.

Podatki i opłaty zależne od wieku gości należy określić za pomocą elementu <AgeBrackets> w wiadomości <TaxFeeInfo>.

Przykłady

Ta sekcja zawiera przykłady kodu ilustrujące, jak:

Po ustawieniu wartości add, overlay lub remove zakresy dat mogą być takie same lub różnić się w zależności od Twoich celów. Za pomocą overlay możesz np. ustawić tylko kilka tygodni dla grudniowych świąt, a nie cały zakres ustawiony dla komunikatu „Dodaj stawkę”. Spowoduje to zastąpienie cen za obłożenie tylko za ten okres.

Ceny według dat

Skonfiguruj stawki podstawowe i łączne

Przykład 1

Stawka podstawowa (bez podatków i opłat) za domyślne obłożenie (podwójne). W tym modelu podatki i opłaty związane z usługą muszą być zdefiniowane za pomocą komunikatu <TaxFeeInfo>. Stawka podstawowa będzie bardziej widoczna dla użytkowników 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 łączna za domyślne obłożenie (podwójne). W tym modelu podatków i opłat nie należy definiować oddzielnie za pomocą komunikatów <TaxFeeInfo>. Stawka podstawowa będzie bardziej widoczna dla użytkowników 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) za kilka osób. W tym modelu podatków i opłat nie należy definiować 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 łączna dla wielu typów pokojów oraz planów stawek 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 RoomID_1 i PackageID_1 w okresie od 20.10.2021 do 31.12.2021. Pamiętaj, że Google obsługuje dane z 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>

Współczynniki nakładek

Ustaw NotifType na Overlay, aby usunąć wszystkie ceny za liczbę osób w przypadku RoomID_1 i PackageID_1 między 20.10.2021 a 31.12.2021 i zastąpić je nowo określonymi stawkami za liczbę osób.

Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj cenę”, ceny za obłożenie 1, 2 i 3 zostaną usunięte i zostanie zachowana tylko nowa cena za obłożenie 1. Możesz też ustawić krótszy zakres dat (np. 20 listopada 2021 r. i 31 grudnia 2021 r.) w celu zastąpienia tylko niektórych cen za obłożenie w określonych dniach, 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 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, informacje o opłatach 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 dodatkowe kwoty gości

Dodaj kwoty

Ustaw NotifType na Delta, aby dodać stawki podstawowe dla 1 i 2 osób oraz dodatkowe kwoty dla gości dla RoomID_1 i PackageID_1 na okres od 20 października 2021 r. do 31 grudnia 2021 r.

Dodatkowe kwoty gości będą doliczane do stawki podstawowej, która będzie określana na podstawie liczby osób w wyszukiwarce użytkownika. Ilość osób podana przez użytkownika musi mieścić się w limicie RoomID_1.

W tym przykładzie kwoty w ramach dodatkowych gości zostaną zastosowane w ten sposób:

  • 5 USD dla dzieci w wieku od 0 do 10 lat (włącznie).
  • 10 USD dla 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 NotifType na Overlay, aby usunąć wszystkie ceny za liczbę osób i wszystkie dodatkowe kwoty dla RoomID_1 i PackageID_1 między 20.10.2021 a 31.12.2021, a następnie zastąpić je nowo określonymi stawkami za liczbę osób i dodatkowymi kwotami.

Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj stawkę”, stawki za obłożenie podstawowe 1 i 2 zostaną usunięte i zachowana będzie tylko nowa stawka za obłożenie podstawowe 1. Poprzedni zestaw kwot dodatkowych gości zostałby usunięty i zapisany byłby tylko nowy zestaw kwot. Dodatkowa liczba gości będzie teraz używać nowej stawki za obłożenie 1 jako stawki podstawowej. Pamiętaj, że po tej aktualizacji nie są stosowane ż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>

Usuń kwoty

Ustaw NotifType na Delete, aby usunąć wszystkie stawki podstawowe za liczbę osób i wszystkie dodatkowe kwoty dla gości w usługach RoomID_1 i PackageID_1 w okresie 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 podstawowe stawki za liczbę osób 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 dodatkowe liczby gości

Ustaw NotifType na Delta z pustym elementem <AdditionalGuestAmounts>, aby usunąć wszystkie dodatkowe kwoty gości związane z RoomID_1 i PackageID_1 bez wpływu na stawki podstawowe pomiędzy 20.10.2021 a 31.12.2021.

Jeśli na przykład ta wiadomość została wysłana po jednej 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 na podstawie LOS

Skonfiguruj stawki oparte na LOS

Przykład 1

Ustal ceny za pobyty 1, 2 i 3 noclegi od 18 maja 2020 r. Łączna cena za pobyty 1, 2 i 3 noce w tym przykładzie wynosi 100 zł, 180 zł i 240 zł.

<?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>
Dodawaj, nakładaj i usuwaj stawki obliczane na podstawie LOS

Dodaj długości pobytu

W przypadku cen opartych na LOS operacja Delta umożliwia stopniowe aktualizowanie cen dla zakresów dat zameldowania wskazanych w polu <StatusApplicationControl> oraz dla wszystkich długości pobytu wskazanych w elemencie UnitMultiplier każdego podrzędnego elementu Rate.

W przypadku każdej obowiązującej daty zameldowania i długości pobytu należy określić wszystkie ceny 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ść pobytu nakładki

W przypadku cen opartych na LOS operacja Overlay zastępuje stawki za wszystkie długości pobytu w usłudze i w zakresie dat zameldowania wskazanym w polu <StatusApplicationControl>.

Ten komunikat spowoduje, że ceny za obłożenie za wszystkie długości pobytu w podanym dniu przyjazdu zostaną usunięte i zastąpione ceną za 2 osobę określoną tylko za długość 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>

Usuń długość pobytu

W przypadku cen opartych na LOS operacja Remove usuwa stawki za wszystkie długości pobytu w usłudze i w zakresie dat zameldowania wskazanym w polu <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

Wiadomość OTA_HotelRateAmountNotifRS składa się z tych elementów i atrybutów:

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 powiązanej wiadomości OTA_HotelRateAmountNotifRQ.
OTA_HotelRateAmountNotifRS / Success 0..1 Success Wskazuje, że komunikat OTA_HotelRateAmountNotifRQ został przetworzony.

Każda wiadomość zawiera element <Success> lub <Errors>.

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors Kontener rozwiązania co najmniej jednego problemu, który wystąpił podczas przetwarzania wiadomości OTA_HotelRateAmountNotifRQ.

Każda wiadomość zawiera element <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 artykule Komunikaty o błędach stanu pliku danych.
OTA_HotelRateAmountNotifRS / Errors / Error / @Type 1 integer Obiekt OpenTravel Alliance EWT (Error Warning Type) dotyczący błędu, który jest 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 (kod błędu). 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 Google problemu. Szczegółowe informacje o tych błędach znajdziesz w artykule Komunikaty o błędach stanu pliku danych.

Przykłady

Gotowe

Poniżej znajdziesz odpowiedź na przetworzony komunikat 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 znajdziesz odpowiedź na komunikat OTA_HotelRateAmountNotifRQ, który nie został przetworzony 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>