OTA_HotelPriceAmountififQQ,

Żądania

Składnia

Wiadomość OTA_HotelRateAmountNotifRQ używa tej 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 dotyczącej cen.
OTA_HotelRateAmountNotifRQ / @xmlns 0..1 string (URI) Przestrzeń nazw XML.
OTA_HotelRateAmountNotifRQ / @EchoToken 1 string Unikalny identyfikator tego komunikatu żądania. 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 Wersja wiadomości OpenTravel.
OTA_HotelRateAmountNotifRQ / @NotifType 0..1 enum

Typ powiadomienia, który ma być stosowany do wszystkich <RateAmountMessage>.

Prawidłowe wartości to:

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

  • Overlay: Usuń wszystkie ceny za osobę w pokoju dla danego typu pokoju, abonamentu i dat określonych w <StatusApplicationControl> i zastąp je nowymi cenami.
  • Remove: Usuń wszystkie istniejące stawki za osobę w pokoju dla danego typu pokoju, planu cenowego i dat określonych w <StatusApplicationControl>.
  • Delta: (wartość domyślna, jeśli nie określono wartości w elementzie NotifType) Dodaj lub zaktualizuj istniejące ceny za osobę w pokoju dla danego typu pokoju, planu cenowego i daty określonych w elementzie <StatusApplicationControl>.
OTA_HotelRateAmountNotifRQ / @NotifScopeType 0..1 enum

Zakres NotifType, który ma być stosowany do wszystkich <RateAmountMessage>.

Prawidłowe wartości to:

  • ProductRate: (wartość domyślna, jeśli nie określono wartości NotifScopeType) NotifType ma zastosowanie do usług, czyli kombinacji typu pokoju (InvTypeCode) i taryfy (RatePlanCode).
OTA_HotelRateAmountNotifRQ / POS 0..1 POS Kontener do określania konta partnera dla tego komunikatu (zazwyczaj używany, jeśli backend udostępnia pliki danych o cenach dla wielu kont partnerów).
OTA_HotelRateAmountNotifRQ / POS / Source 1 Source Wymagane, jeśli występuje właściwość <POS>. Kontener <RequestorID>.
OTA_HotelRateAmountNotifRQ / POS / RequestorID 1 RequestorID Wymagane, jeśli występuje właściwość <POS>. Definiuje konto partnera.
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID 1 string Konto partnera, na którym jest wysyłana wiadomość. Ta wartość ciągu znaków to wartość „klucza 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 o transakcji (danych o obiekcie) oraz wartością atrybutu ID w elemencie <RequestorID> wiadomości <OTA_HotelAvailNotifRQ> na tym samym koncie.

OTA_HotelRateAmountNotifRQ / RateAmountMessages 1 RateAmountMessages Zbiór elementów <RateAmountMessage>, które definiują stawki.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode 1 string Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą atrybutu <id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też widoczny w Hotel Center.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage 1..n RateAmountMessage Konteiner do ustawiania cen za stawkę za pokój (typ pokoju i kombinacja stawki w zakresie dat).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl 1 StatusApplicationControl Określa zakres dat oraz identyfikatory typu pokoju (InvTypeCode) i taryfy (RatePlanCode).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start 1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End 1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Musi być równa lub większa niż wartość start. Jeśli wartości startend są takie same, 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ędnić poniedziałki.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie mają wyraźnie ustawionej wartości true, zostaną wykluczone (w efekcie zostaną odfiltrowane z daty w zakresie StartEnd).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue 0..1 boolean Aby wyraźnie uwzględnić w kampanii wtorki, ustaw tę opcję na true lub 1.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie mają wyraźnie ustawionej wartości true, zostaną wykluczone (w efekcie zostaną odfiltrowane z daty w zakresie StartEnd).

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

Jeśli ustawisz wartość true, inne dni tygodnia, które nie mają wyraźnie ustawionej wartości true, zostaną wykluczone (w efekcie zostaną odfiltrowane z daty w zakresie StartEnd).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur 0..1 boolean Aby uwzględnić w ramach harmonogramu wtorek, ustaw wartość true lub 1.

Jeśli ustawisz wartość true, inne dni tygodnia, które nie mają wyraźnie ustawionej wartości true, zostaną wykluczone (w efekcie zostaną odfiltrowane z daty w zakresie StartEnd).

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

Jeśli ustawisz wartość true, inne dni tygodnia, które nie mają wyraźnie ustawionej wartości true, zostaną wykluczone (w efekcie zostaną odfiltrowane z daty w zakresie StartEnd).

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

Jeśli ustawisz wartość true, inne dni tygodnia, które nie mają wyraźnie ustawionej wartości true, zostaną wykluczone (w efekcie zostaną odfiltrowane z daty w zakresie StartEnd).

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

Jeśli ustawisz wartość true, inne dni tygodnia, które nie mają wyraźnie ustawionej wartości true, zostaną wykluczone (w efekcie zostaną odfiltrowane z daty w zakresie StartEnd).

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode 1 string Unikalny identyfikator asortymentu (typ pokoju). Ta wartość jest mapowana na <RoomID> w wiadomości dotyczącej transakcji (danych usługi).
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode 1 string Unikalny identyfikator planu taryfowego. Ten identyfikator jest mapowany na element <PackageID> w komunikacie Transakcja (Dane obiektu). Abonament jest dalej definiowany i wymieniony w <StatusApplicationControl> w komunikatach <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ>.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType 0..1 string Identyfikator wskazujący typ modelu cen ARI, który ma zastosowanie do tej aktualizacji cen. Należy ją określić tylko za pomocą wartości 26, gdy używasz modelu ustalania cen na podstawie LOS. 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 = "Remove", nie należy określać tego elementu. W przeciwnym razie ten element musi być określony dokładnie raz.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate 1 Rate Kontener na kolekcję 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 określona w dniach.

Aby używać określania stawek na podstawie LOS, musisz podać wartości RateTimeUnit i UnitMultiplier. W innych sytuacjach nie należy określać żadnej z tych właściwości.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier 0..1 Integer Liczba RateTimeUnits, która określa długość pobytu w ramach tej stawki.

Jeśli na przykład wartość RateTimeUnits to "Day", a UnitMultiplier to 5, oznacza to, że stawki określone w obiekcie Rate mają zastosowanie do każdej nocy pobytu 5-dniowego.

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

Aby używać określania stawek na podstawie LOS, musisz podać wartości RateTimeUnit i UnitMultiplier. W innych sytuacjach nie należy określać żadnej z tych właściwości.

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 określonej walucie. Cena może być ustalana za osobę za pomocą kilku elementów <BaseByGuestAmt>, z których każdy ma inną wartość atrybutu NumberOfGuests. W przeciwnym razie cena jest stosowana dla maksymalnej liczby pasażerów określonej przez NumberOfGuests.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax 0..1 float

Cena za pokój za dzień przed opodatkowaniem i opłatami.

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

Jeśli korzystasz z promocji, zniżka jest stosowana do AmountBeforeTax; zniżki procentowe są również stosowane do AmountAfterTax. Ponieważ ta opcja nie działa w przypadku niektórych struktur podatkowych, zdecydowanie zalecamy określenie tutaj tylko wartości AmountBeforeTax, a do określenia podatków i opłat użycie wartości <TaxFeeInfo>.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax 0..1 float Cena za dzień pobytu w pokoju po uwzględnieniu obowiązujących podatków i opłat. Jeśli określona jest właściwość AmountAfterTax, nie trzeba wysyłać osobnych wiadomości <TaxFeeInfo> dla poszczególnych właściwości. Tego atrybutu można 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 zalecamy, aby nie używać kwot AmountAfterTax. Jeśli chcesz skorzystać z rabatów, podaj podatki i opłaty, używając wiadomości <TaxFeeInfo>. Rabaty zostaną następnie zastosowane do kwot AmountBeforeTax.

Uwaga: jeśli nie określono parametru AmountBeforeTax, musisz podać parametr AmountAfterTax.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode 1 enum Kod waluty wyrażony literami (3) według normy ISO 4217 dla konkretnej jednostki monetarnej.

Zobacz listę obsługiwanych walut.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests 0..1 integer Maksymalna liczba gości, którzy mogą zatrzymać się w ramach tej stawki. Jeśli nie zostanie podana, domyślnie jest to 2 osoby.

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

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts 0..1 AdditionalGuestAmounts Kontenery na opłaty za dodatkowych gości.

Ta składnia jest przydatna, jeśli dodatkowe stawki za dodatkowego gościa lub dziecko zmieniają się w zależności od daty. Jeśli kwoty można zdefiniować statycznie na poziomie obiektu, możesz użyć bardziej wydajnego komunikatu ExtraGuestCharges.

Dodatkowe kwoty za dodatkowe osoby są naliczane w ten sposób:
  • Są one naliczane dodatkowo do podstawowej stawki za obłożenie. Podstawowa liczba osób na 1 pokój to najwyższa liczba osób na 1 pokój (wyrażona w <BaseByGuestAmts>), która jest równa lub mniejsza od liczby 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ępuje wcześniej określone dodatkowe kwoty nowymi, gdy NotifType ma wartość Delta lub Overlay.
  • <AdditionalGuestAmounts> może być wysyłany niezależnie od stawek podstawowych tylko wtedy, gdy NotifType to Delta. Gdy NotifType to Overlay, należy podać wartość <BaseByGuestAmts>.
  • Pusty element <AdditionalGuestAmounts> z wartością NotifType = Delta powoduje usunięcie dotychczasowych dodatkowych kwot 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 wyszukuje zakwaterowanie dla 3 osób dorosłych, jako stawka podstawowa zostanie wybrana stawka za 2 osoby, a dodatkowo zostanie do niej dodana stawka za 1 osobę dorosłą.
  • Jeśli użytkownik wyszukuje pokój dla 1 dorosłej osoby i 2 dzieci, jako stawka podstawowa zostanie wybrana stawka za 1 osobę, a do niej dodane zostaną dodatkowe kwoty za 2 dzieci.
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount 0..n AdditionalGuestAmount Określa ceny na podstawie typu gościa określonego w AgeQualifyingCode oraz, w odpowiednich 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ły lub dziecko. Prawidłowe opcje:
  • 10: Dorośli.
  • 8: Dziecko.

Wartość AgeQualifyingCode może być ustawiona na 10 w przypadku maksymalnie jednego elementu AdditionalGuestAmount.

Wartość MaxAge musi być określona, jeśli wartość AgeQualifyingCode to 8.

OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge 0..1 integer Wartość MaxAge musi być określona, jeśli wartość AgeQualifyingCode to 8. Nie można go określić, gdy AgeQualifyingCode to 10.

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

Podanie wartości 0 spowoduje wyłączenie pasażerów dziecięcych.

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

Za pomocą oddzielnych elementów AdditionalGuestAmount można określić wiele przedziałów wiekowych dzieci. 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 podatkami i opłatami dodanymi do stawki podstawowej za każdego dodatkowego gościa.

Podatki i opłaty, które zależą od wieku lokatorów, 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 ustawiasz wartości add, overlay lub remove, zakresy dat mogą być takie same lub różne w zależności od Twoich celów. Na przykład za pomocą parametru overlay możesz ustawić tylko kilka tygodni na okres świąteczny w grudniu, 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

W przypadku danego pokoju i planu cenowego można ustawić maksymalnie 50 poziomów obłożenia na obiekt. Jeśli stawki są takie same dla wszystkich liczby osób, wystarczy przesłać maksymalną liczbę osób z wymaganą ceną. W ten sposób Google wnioskuje, że niższe obłożenie również ma tę samą stawkę podstawową.

Konfigurowanie stawek podstawowych i łącznych

Przykład 1

Stawka podstawowa (bez podatków i opłat) za domyślną liczbę osób (2). W tym modelu podatki i opłaty za usługę należy zdefiniować za pomocą wiadomości <TaxFeeInfo>. Stawka podstawowa będzie bardziej widoczna dla użytkowników wyszukujących w określonych regionach.

<?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 cena za domyślną liczbę osób (2 osoby). W tym modelu podatki i opłaty nie powinny być definiowane osobno za pomocą komunikatów <TaxFeeInfo>. Stawka podstawowa będzie bardziej widoczna dla użytkowników, którzy szukają w niektórych regionach.

<?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 pobyt wielu osób. W tym modelu podatki i opłaty nie powinny być definiowane osobno 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 stawka za różne typy pokoi i plany cenowe 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 produktów (typów pokoi i kombinacji pakietów) na usługę. Aby usunąć zdefiniowane wcześniej produkty, użyj typów powiadomień Overlay lub Remove.

Dodawanie stawek

Aby dodać ceny za osobę w pokojach RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31, ustaw wartość NotifType na Delta. 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>

Stawki za nakładanie

Ustaw wartość NotifType na Overlay, aby usunąć wszystkie stawki za liczbę osób w pokoju RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31 i zastąpić je nowo określonymi stawkami za liczbę osób w pokoju.

Jeśli na przykład wiadomość została wysłana po wiadomości „Dodaj ceny”, ceny za 1, 2 i 3 osoby zostaną usunięte, a tylko cena za 1 osobę zostanie zapisana. Możesz też ustawić krótszy zakres dat (np. 2021-12-20 i 2021-12-31), aby zastąpić tylko niektóre stawki za zakwaterowanie w określonych terminach, 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>

Usuwanie stawek

Aby usunąć wszystkie stawki za liczbę osób w pokoju RoomID_1 i pakiecie PackageID_1 w okresie od 2021-10-20 do 2021-12-31, ustaw NotifType na Remove.

Jeśli na przykład ta wiadomość została wysłana po jednej z innych przykładowych wiadomości, nie są przechowywane żadne 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="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

Dodawanie kwot

Aby dodać ceny podstawowe dla 1 i 2 osób oraz dodatkowej liczby osób w pokoju RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31, ustaw wartość NotifType na Delta.

Dodatkowe kwoty za dodatkowe osoby będą naliczane w ramach stawki podstawowej, która będzie określana na podstawie liczby osób w wyszukiwaniu użytkownika. Liczba osób określona przez użytkownika musi mieścić się w pojemności pokoju RoomID_1.

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

  • 5 USD za dzieci w wieku od 0 do 10 lat (włącznie).
  • 10 USD za 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 liczbę osób i dodatkowe kwoty za dodatkowe osoby w przypadku RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31 i zastąpić je nowo określonymi stawkami za liczbę osób i dodatkowymi kwotami.

Jeśli na przykład wiadomość została wysłana po wiadomości „Dodaj ceny”, ceny za pobyt 1 i 2 osób zostaną usunięte, a w pamięci zostanie zapisana tylko nowa cena za pobyt 1 osoby. Poprzedni zestaw kwot dodatkowych gości zostanie usunięty, a zapisany zostanie tylko nowy zestaw kwot. Liczba dodatkowych osób będzie teraz określana na podstawie stawki za 1 osobę. Po tej aktualizacji nie ma dodatkowych opłat za gości, którzy są dziećmi.

<?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

Aby usunąć wszystkie ceny podstawowe za każdą liczbę gości oraz wszystkie kwoty za dodatkowe osoby w pokoju RoomID_1 i pakiecie PackageID_1 w okresie od 2021-10-20 do 2021-12-31, ustaw wartość parametru NotifType na Delete.

Jeśli na przykład ta wiadomość została wysłana po wysłaniu jednego z pozostałych przykładowych komunikatów, nie zostaną zapisane żadne stawki podstawowe za osobę ani kwoty za dodatkowe osoby.

<?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 dodatkowych ilości gości

Ustaw NotifType na Delta z pustym elementem <AdditionalGuestAmounts>, aby usunąć wszystkie kwoty dodatkowych gości dla 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 jednej z innych przykładowych wiadomości, zostaną zapisane 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

Konfigurowanie stawek opartych na LOS

Przykład 1

Od 18 maja 2020 r. ustaw stawki za pobyty 1-, 2- i 3-dniowe. 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 na podstawie LOS

Dodawanie długości pobytu

W przypadku cen ustalanych na podstawie długości pobytu operacja Delta umożliwia stopniowe aktualizowanie stawek w zakresie dat zameldowania wskazanych w elemencie <StatusApplicationControl> oraz dla wszystkich długości pobytu wskazanych przez UnitMultiplier każdego elementu podrzędnego Rate.

W przypadku każdej daty zameldowania i długości pobytu należy określić wszystkie stawki za liczbę 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="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 ustalania cen na podstawie długości pobytu operacja Overlay zastępuje stawki za wszystkie długości pobytu produktu i zakres dat zameldowania wskazane w <StatusApplicationControl>.

W ramach tego komunikatu stawki za liczbę osób w pokoju w przypadku wszystkich długości pobytu w określonym terminie przyjazdu zostaną usunięte i zastąpione stawką za 2 osoby, która jest zdefiniowana tylko w przypadku 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 ustalania cen na podstawie długości pobytu operacja Remove usuwa stawki za wszystkie długości pobytu produktu i zakres dat zameldowania wskazane 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 używa tej 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 zawiera 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 powiązany z wiadomością OTA_HotelRateAmountNotifRQ.
OTA_HotelRateAmountNotifRS / Success 0..1 Success Wskazuje, że wiadomość OTA_HotelRateAmountNotifRQ została przetworzona.

W każdej wiadomości występuje element <Success> lub <Errors>.

OTA_HotelRateAmountNotifRS / Errors 0..1 Errors Kontener dla co najmniej 1 problemu napotkanego podczas przetwarzania wiadomości OTA_HotelRateAmountNotifRQ.

W każdej wiadomości występuje element <Success> lub <Errors>.

OTA_HotelRateAmountNotifRS / Errors / Error 1..n Error Opis błędu, który wystąpił podczas przetwarzania wiadomoś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 OpenTravel Alliance EWT (Error Warning Type) powiązany z błędem. Używana jest tylko wartość 12 (Processing exception).
OTA_HotelRateAmountNotifRS / Errors / Error / @Code 1 integer ERR (kod błędu) OpenTravel Alliance powiązany z błędem. 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 problemu w Google. Szczegółowe informacje o tych błędach znajdziesz w artykule Komunikaty o błędach stanu pliku danych.

Przykłady

Sukces

Poniżej znajduje się odpowiedź na pomyślnie przetworzone 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>