Żądania
Składnia
Wiadomość OTA_HotelRateAmountNotifRQ ma tę składnię:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="message_ID"
                            TimeStamp="timestamp"
                            Version="3.0"
                            NotifType="[Overlay|Delta|Remove]"
                            NotifScopeType="[ProductRate]">
  <POS>
    <Source>
      <RequestorID ID="partner_key"/>
    </Source>
  </POS>
  <RateAmountMessages HotelCode="HotelID">
    <RateAmountMessage>
      <StatusApplicationControl Start="YYYY-MM-DD"
                                End="YYYY-MM-DD"
                                Mon="boolean_value"
                                Tue="boolean_value"
                                Weds="boolean_value"
                                Thur="boolean_value"
                                Fri="boolean_value"
                                Sat="boolean_value"
                                Sun="boolean_value"
                                InvTypeCode="RoomID"
                                RatePlanCode="PackageID"
                                RatePlanType="[26]" />
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="float"
                            AmountAfterTax="float"
                            CurrencyCode="currency"
                            NumberOfGuests="integer"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="float"
                                   AgeQualifyingCode="[10|8]"
                                   MaxAge="integer"/>
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Elementy i atrybuty
Wiadomość OTA_HotelRateAmountNotifRQ zawiera te elementy i atrybuty:
| Element / @Attribute | Wystąpienia | Typ | Opis | 
|---|---|---|---|
| OTA_HotelRateAmountNotifRQ | 1 | Complex element | Element główny wiadomości z cenami. | 
| OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | Przestrzeń nazw XML. | 
| OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | Unikalny identyfikator tej wiadomości z żądaniem. Ta wartość jest zwracana w wiadomości z odpowiedzią. Dozwolone znaki to a-z,A-Z,0-9,_ (underscore)i- (dash). | 
| OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. | 
| OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | wersję wiadomości OpenTravel; | 
| OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Typ powiadomienia, które ma być stosowane do każdego  Prawidłowe wartości to: Aby dowiedzieć się, jak działają te atrybuty, zapoznaj się z przykładami. 
 | 
| OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | Zakres  Prawidłowe wartości to: 
 | 
| OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Kontener do określania konta partnera dla tego komunikatu (zwykle używany, jeśli backend udostępnia pliki danych o cenach dla wielu kont partnerów). | 
| OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Wymagany, jeśli występuje <POS>. Kontener na potrzeby elementu<RequestorID>. | 
| OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Wymagany, jeśli występuje <POS>. Definiuje konto partnera. | 
| OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Konto partnera, do którego należy ta wiadomość. Ta wartość ciągu znaków to wartość „Klucz partnera” podana na 
        stronie Ustawienia konta w Hotel Center. Uwaga: jeśli masz backend, który udostępnia pliki danych dla wielu kont, ta wartość musi być zgodna z wartością atrybutu  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Kolekcja elementów <RateAmountMessage>, które określają stawki. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Unikalny identyfikator usługi. Ta wartość musi być zgodna z identyfikatorem hotelu określonym za pomocą elementu <id> w elemencie <listing> w pliku danych z listą hoteli. Identyfikator hotelu jest też podany w Hotel Center. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Kontener do ustawiania cen za stawkę za pokój (połączenie typu pokoju i abonamentu w określonym zakresie dat). | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Określa zakres dat oraz identyfikatory typu pokoju ( InvTypeCode) i planu cenowego (RatePlanCode). | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | Data rozpoczęcia zakresu dat (włącznie) w strefie czasowej usługi. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Data zakończenia zakresu dat (włącznie z wartościami granicznymi) na podstawie strefy czasowej usługi. Musi być równa lub większa niż wartość start.
        Jeśli wartościstartiendsą równe, aktualizacja zostanie zastosowana do tej daty. Pamiętaj, że Google obsługuje dane z okresu do 3 lat. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Ustaw wartość truelub1, aby wyraźnie uwzględnić poniedziałki.Jeśli wartość jest ustawiona na  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Ustaw wartość truelub1, aby wyraźnie uwzględnić wtorki.Jeśli wartość jest ustawiona na  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Ustaw wartość truelub1, aby wyraźnie uwzględnić środy.Jeśli wartość jest ustawiona na  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Ustaw wartość truelub1, aby wyraźnie uwzględnić czwartki.Jeśli wartość jest ustawiona na  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Ustaw wartość truelub1, aby wyraźnie uwzględnić piątki.Jeśli wartość jest ustawiona na  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Ustaw na truelub1, aby wyraźnie uwzględnić soboty.Jeśli wartość jest ustawiona na  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Ustaw wartość truelub1, aby wyraźnie uwzględnić niedziele.Jeśli wartość jest ustawiona na  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Unikalny identyfikator asortymentu (rodzaju pokoju). Ta wartość jest mapowana na <RoomID>w wiadomości Transaction (Property Data). | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Unikalny identyfikator planu cenowego. Ten identyfikator jest mapowany na element <PackageID>w wiadomości Transaction (Property Data). Plan taryfowy jest dalej definiowany i określany w<StatusApplicationControl>w wiadomościach<OTA_HotelRateAmountNotifRQ>i<OTA_HotelAvailNotifRQ>. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Identyfikator wskazujący typ modelu cenowego ARI, który ma zastosowanie do tej aktualizacji cen. Należy ją określić tylko wtedy, gdy używasz modelu cenowego opartego na długości pobytu, a wartość wynosi 26. Brak tego atrybutu oznacza, że jest to aktualizacja ceny za datę. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Kontener na kolekcję elementów <Rate>. Jeśli wartość parametruNotifTypeto"Remove", tego elementu nie można określić. W przeciwnym razie ten element musi być określony dokładnie raz. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Kontener kolekcji elementów <BaseByGuestAmts>. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Jednostka, w której określana jest długość pobytu. Jedyną obsługiwaną wartością jest "Day", co oznacza, że długość pobytu będzie podana w dniach.Aby korzystać z ceny opartej na długości pobytu, należy określić  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Liczba RateTimeUnits, które składają się na długość pobytu w przypadku tej stawki.Jeśli na przykład wartość  Stawki za zajętość określone w tym obiekcie  Aby korzystać z ceny opartej na długości pobytu, należy określić  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Kontener na zbiór opłat podstawowych. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Określa ceny pokoi w wybranej walucie. Cena może być podana za osobę, jeśli użyjesz kilku elementów <BaseByGuestAmt>, z których każdy ma inną wartość atrybutuNumberOfGuests.
        W przeciwnym razie cena obowiązuje dla maksymalnej liczby osób określonej przezNumberOfGuests. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float | Cena za pokój za dzień przed uwzględnieniem podatków i opłat.  Możesz określić zarówno  Jeśli korzystasz z promocji, rabat jest stosowany do  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Cena za dzień po uwzględnieniu obowiązujących podatków i opłat. Jeśli określono wartość AmountAfterTax, nie trzeba wysyłać oddzielnych wiadomości<TaxFeeInfo>dla każdej usługi. Ten atrybut może być używany w połączeniu z atrybutemAmountBeforeTax, aby podawać stawki podstawowe i łączne, które mogą być wyświetlane użytkownikom w określonych regionach.Ostrzeżenie: jeśli korzystasz z promocji, zdecydowanie odradzamy używanie  Uwaga: jeśli nie określono parametru  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Trzyliterowy kod waluty według normy ISO 4217. Zapoznaj się z listą obsługiwanych walut. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Maksymalna liczba gości, których można zakwaterować w ramach tej ceny.
        Jeśli nie podano żadnej wartości, domyślnie są to 2 osoby.  Pamiętaj, że jeśli  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Kontener na zbiór opłat za dodatkowych gości. Ta składnia jest przydatna, jeśli dodatkowe stawki dla gości lub dzieci zmieniają się w zależności od daty. Jeśli te kwoty można zdefiniować statycznie na poziomie usługi, rozważ użycie bardziej wydajnego komunikatu  
 Załóżmy na przykład, że ceny podstawowe są określone dla 1 i 2 osób dorosłych. 
 | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Określa ceny na podstawie typu gościa, podanego za pomocą elementu AgeQualifyingCode, oraz w stosownych przypadkach wieku gościa, podanego za pomocą elementuMaxAge. | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Określa typ dodatkowego gościa: osoba dorosła lub dziecko. Prawidłowe opcje: 
 Wartość  Wartość  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | Wartość MaxAgemusi być określona, gdyAgeQualifyingCodema wartość8. Nie można go określić, gdyAgeQualifyingCodema wartość10.Wartość flagi  Podanie wartości  Wartości większe niż  Możesz określić wiele przedziałów wiekowych dzieci za pomocą osobnych elementów  | 
| OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Kwota przed opodatkowaniem i opłatami dodana do stawki podstawowej za każdego dodatkowego gościa. Podatki i opłaty zależne od wieku osób zajmujących pokój muszą być określone za pomocą elementu  | 
Przykłady
W tej sekcji znajdziesz przykłady kodu, które pokazują, jak:
- Konfigurowanie stawek podstawowych i stawek łącznych
- Dodawanie, nakładanie i usuwanie stawek
- Dodawanie, nakładanie i usuwanie dodatkowych kwot za gości
- Konfigurowanie cen na podstawie długości pobytu
- Dodawanie, nakładanie i usuwanie stawek opartych na długości pobytu
Gdy ustawisz wartości add, overlay lub remove, zakresy dat mogą być takie same lub różne w zależności od Twoich celów. Możesz na przykład użyć wartości overlay, aby ustawić tylko kilka tygodni na okres świąt grudniowych, a nie cały zakres ustawiony dla komunikatu „Dodaj stawkę”. Zastąpi to stawki obłożenia tylko w tym okresie.
Ceny za dzień
W przypadku danego pokoju i planu cenowego może być maksymalnie 50 poziomów obłożenia na obiekt. Jeśli stawki są takie same dla wszystkich rodzajów zakwaterowania, wystarczy przesłać maksymalną liczbę osób z wymaganą ceną. W ten sposób Google wnioskuje, że w przypadku mniejszego obłożenia obowiązuje ta sama stawka podstawowa.
Konfigurowanie stawek podstawowych i całkowitych
Przykład 1
Stawka podstawowa (bez podatków i opłat) dla domyślnego obłożenia (podwójnego). W tym modelu podatki i opłaty za obiekt muszą być zdefiniowane za pomocą wiadomości <TaxFeeInfo>. Stawka podstawowa będzie bardziej widoczna dla użytkowników wyszukujących z określonych regionów.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Przykład 2
Cena podstawowa i łączna dla domyślnego obłożenia (2 osoby). W tym modelu podatki i opłaty nie powinny być definiowane oddzielnie za pomocą komunikatów <TaxFeeInfo>. Stawka podstawowa będzie bardziej widoczna dla użytkowników wyszukujących z określonych regionów.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Przykład 3
Łączna cena (z podatkami i opłatami) przy różnym obłożeniu. W tym modelu podatki i opłaty nie powinny być definiowane oddzielnie za pomocą komunikatów <TaxFeeInfo>.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Przykład 4
stawki podstawowe i całkowite dla wielu typów pokoi i abonamentów w różnych zakresach dat;
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-01"
                                End="2020-05-31"
                                InvTypeCode="RoomID_2"
                                RatePlanCode="PackageID_2"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            AmountAfterTax="220.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Dodawanie, nakładanie i usuwanie stawek
Obowiązuje limit 5000 kombinacji produktów (rodzaj pokoju i pakiet) na usługę. Użyj typów powiadomień Overlay lub Remove, aby usunąć wcześniej zdefiniowane produkty.
Dodawanie stawek
Ustaw wartość NotifType na Delta, aby dodać stawki za osobę dla
      RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31. Pamiętaj, że Google obsługuje dane z okresu do 3 lat.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountBeforeTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Stawki za nakładki
Ustaw NotifType na Overlay, aby usunąć wszystkie stawki za pokój dla RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31 i zastąpić je nowo określonymi stawkami za pokój.
Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj stawki”, stawki za 1, 2 i 3 osoby zostaną usunięte i zapisana zostanie tylko nowa stawka za 1 osobę. Możesz też ustawić krótszy zakres dat (np. 2021-12-20 i 2021-12-31), aby zastąpić tylko niektóre stawki obłożenia w określonych datach, np. w dni świąteczne.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Usuwanie stawek
Ustaw NotifType na Remove, aby usunąć wszystkie stawki za pokój dla poszczególnych osób dla RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31.
Jeśli na przykład ta wiadomość została wysłana po którejś z pozostałych przykładowych wiadomości, nie zostaną zapisane żadne stawki za zajęcie.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Dodawanie, nakładanie i usuwanie dodatkowych kwot gości
Dodawanie kwot
Ustaw wartość NotifType na Delta, aby dodać stawki podstawowe dla 1 i 2 osób oraz kwoty za dodatkowych gości dla RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31.
Dodatkowe opłaty za gości będą naliczane powyżej stawki podstawowej, która będzie określana na podstawie liczby osób w wyszukiwaniu użytkownika. Określona przez użytkownika liczba osób musi mieścić się w zakresie pojemności pomieszczenia RoomID_1.
W tym przykładzie dodatkowe kwoty za gości zostaną zastosowane w ten sposób:
- 5 USD w przypadku dzieci w wieku od 0 do 10 lat (włącznie).
- 10 USD w przypadku dzieci w wieku od 11 do 17 lat (włącznie).
- 20 USD dla dorosłych.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountBeforeTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" />
            <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" />
            <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Kwoty nakładek
Ustaw wartość NotifType na Overlay, aby usunąć wszystkie stawki za pokój i wszystkie kwoty dodatkowe za gościa dla identyfikatorów RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31 i zastąpić je nowo określonymi stawkami za pokój i kwotami dodatkowymi.
Jeśli na przykład ta wiadomość została wysłana po wiadomości „Dodaj stawki”, stawki podstawowe dla 1 i 2 osób zostaną usunięte i zostanie zapisana tylko nowa stawka podstawowa dla 1 osoby. Poprzedni zestaw dodatkowych kwot za gości zostanie usunięty i zostanie zapisany tylko nowy zestaw kwot. Dodatkowe kwoty dla gości będą teraz korzystać z nowej stawki dla 1 osoby jako stawki podstawowej. Pamiętaj, że po tej aktualizacji nie będą już obowiązywać żadne dodatkowe opłaty za dzieci.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="200.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
          </BaseByGuestAmts>
          <AdditionalGuestAmounts>
            <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" />
          </AdditionalGuestAmounts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Usuwanie kwot
Ustaw NotifType na Delete, aby usunąć wszystkie stawki podstawowe za pokój i wszystkie dodatkowe kwoty za gościa w przypadku RoomID_1 i PackageID_1 w okresie od 2021-10-20 do 2021-12-31.
Jeśli na przykład ta wiadomość została wysłana po którejś z pozostałych przykładowych wiadomości, nie zostaną zapisane żadne podstawowe stawki za pobyt ani dodatkowe kwoty za gości.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">>
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Usuwanie tylko kwot za dodatkowych gości
Ustaw wartość NotifType na Delta z pustym elementem <AdditionalGuestAmounts>, aby usunąć wszystkie dodatkowe kwoty za gości w przypadku RoomID_1 i PackageID_1 bez wpływu na stawki podstawowe w okresie od 2021-10-20 do 2021-12-31.
Jeśli na przykład ta wiadomość została wysłana po którejś z pozostałych przykładowych wiadomości, zapisane zostaną tylko kwoty podstawowe.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <AdditionalGuestAmounts/>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Ceny zależne od długości pobytu
Konfigurowanie cen na podstawie długości pobytu
Przykład 1
Ustal stawki za pobyt 1-, 2- i 3-dniowy od 2020-05-18. W tym przykładzie łączna cena za pobyt na 1, 2 i 3 noce wyniesie odpowiednio 100, 180 i 240 PLN.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="1" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="2" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="90.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2" />
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Dodawanie, nakładanie i usuwanie stawek opartych na długości pobytu
Dodawanie długości pobytu
W przypadku cen opartych na długości pobytu operacja Delta umożliwia stopniowe aktualizowanie stawek w przypadku zakresów dat zameldowania wskazanych w elemencie <StatusApplicationControl> oraz wszystkich długości pobytu wskazanych w elemencie podrzędnym Rate elementu UnitMultiplier.
W przypadku każdej odpowiedniej daty zameldowania i długości pobytu należy określić wszystkie stawki za zajęcie pokoju.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Delta"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Nakładanie długości pobytu
W przypadku cen opartych na długości pobytu Overlayoperacja zastępuje stawki dla wszystkich długości pobytu produktu i zakresu dat zameldowania wskazanych w <StatusApplicationControl>.
Wiadomość ta spowoduje usunięcie stawek za 1 osobę dla wszystkich długości pobytu w określonych datach przyjazdu i zastąpienie ich stawką za 2 osoby, która jest zdefiniowana tylko dla długości pobytu 3.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Overlay"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-18"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
      <Rates>
        <Rate UnitMultiplier="3" RateTimeUnit="Day">
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountBeforeTax="80.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Usuwanie długości pobytu
W przypadku cen opartych na długości pobytu operacja Remove usuwa stawki dla wszystkich długości pobytu produktu i zakresu dat zameldowania podanego w <StatusApplicationControl>.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2021-10-20T20:50:37-05:00"
                            Version="3.0"
                            NotifType="Remove"
                            NotifScopeType="ProductRate">
  <RateAmountMessages HotelCode="Property_1">
    <RateAmountMessage>
      <StatusApplicationControl Start="2021-10-20"
                                End="2021-12-31"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"
                                RatePlanType="26"/>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>Odpowiedzi
Składnia
Wiadomość OTA_HotelRateAmountNotifRS ma tę składnię:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                            TimeStamp="timestamp"
                            EchoToken="echo_token"
                            Version="3.0">
  <!-- Either Success or Errors will be populated. -->
  <Success/>
  <Errors>
    <Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>
Elementy i atrybuty
Wiadomość OTA_HotelRateAmountNotifRS ma te elementy i atrybuty:
| Element / @Attribute | Wystąpienia | Typ | Opis | 
|---|---|---|---|
| OTA_HotelRateAmountNotifRS | 1 | Complex element | Element główny odpowiedzi na wiadomość o dostępności. | 
| OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | Data i godzina utworzenia tej wiadomości. | 
| OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Unikalny identyfikator z powiązanej OTA_HotelRateAmountNotifRQwiadomości. | 
| OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Wskazuje, że wiadomość OTA_HotelRateAmountNotifRQzostała przetworzona.W każdej wiadomości występuje właściwość  | 
| OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Kontener na co najmniej 1 problem napotkany podczas przetwarzania wiadomości OTA_HotelRateAmountNotifRQ.W każdej wiadomości występuje właściwość  | 
| OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Opis błędu, który wystąpił podczas przetwarzania wiadomości OTA_HotelRateAmountNotifRQ. Szczegółowe informacje o tych błędach znajdziesz w artykule Komunikaty o błędach stanu pliku danych. | 
| OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | Typ błędu lub ostrzeżenia OpenTravel Alliance EWT powiązany z błędem. Używana jest tylko wartość 12 (Processing exception). | 
| OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | Kod błędu OpenTravel Alliance ERR powiązany z błędem.
      Używana jest tylko wartość 450 (Unable to process). | 
| OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | Stan pierwotnej prośby. Używana jest tylko wartość NotProcessed. | 
| OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | Identyfikator problemu w Google. Szczegółowe informacje o tych błędach znajdziesz w artykule Komunikaty o błędach stanu pliku danych. | 
Przykłady
Sukces
Oto odpowiedź na prawidłowo przetworzoną wiadomość OTA_HotelRateAmountNotifRQ.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Success/>
</OTA_HotelRateAmountNotifRS>Błędy
Poniżej znajduje się odpowiedź na wiadomość OTA_HotelRateAmountNotifRQ, która nie została przetworzona z powodu błędów.
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
                       EchoToken="12345678"
                       TimeStamp="2021-10-20T20:50:37-05:00"
                       Version="3.0">
  <Errors>
    <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error>
  </Errors>
</OTA_HotelRateAmountNotifRS>