Zmiany reguł

Omówienie

Ten interfejs API umożliwia definiowanie sposobów dynamicznego stosowania działań do stawki, gdy są spełnione odpowiednie warunki, np. dostosowywanie ceny lub umożliwianie zwrotów. W przeciwieństwie do interfejsu Promotions API, który może stosować tylko kwalifikujące się promocje z największymi rabatami, ten interfejs API stosuje dowolne działania, gdy spełnione są określone warunki, w tym korekty cen, które mogą ostatecznie zwiększyć cenę końcową.

Żądania

Składnia

Wiadomość RateModifications używa tej składni:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="partner_key&quot;
                      id="message_ID"
   >   <                timestamp="timestamp"
  HotelRateM>odifi<cations hotel_id="HotelID" action="[overlay]&quo>t;
    <ItineraryRat>eModifica<tion id="ModificationID" action="[delete]&quot;
      BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD&quot; days_of_week=&q>uot;&qu<ot;MTWHFSU_or>_subset<""/
        DateRange start=&quo>t;YYYY-<MM-DD" >end="<;YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/
      />Booking<Dates
      B>ookingW<indow min=&qu>ot;intege<r" max="integer"/
      CheckinDates
        DateRange start=&quot>;YYYY-M<M-DD" end>="<YYYY-MM>-DD"< days_of_week=""MTWHFSU_or_s>ubset&q<uot;&quo>t;/
   <   /CheckinDates
      CheckoutDates
    >    Dat<eRange start="YYYY-MM-DD&quot; end=>"Y<YYY-MM-DD>" da<ys_of_week=&quot;"MTW>HFSU_or_s<ubset"&quot;/
      />Checkou<tDates
   >   Devi<ces
     >   Device< type="[desktop|ta>blet|mobi<le]"/
      /Devic>es
    <  L>engthOfStay mi<n="integer" max="i>nteger&qu<ot;/
      MinimumAmount before_discount="integer"/
      RatePlans
   >     Ra<tePlan id=>"P<ackageID_1"/
        RatePlan id=>"Pac<kageID_2"/
      /RateP>lans
  <    Roo>mTypes
       < RoomType id=">RoomID_1&<quot;/
        RoomType id=&quot;Ro>omID_2&qu<ot;/
      /RoomTypes
   >   StayDa<tes application="[all|any]&quot;
        DateRange start="YYYY-MM-DD&quot; end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_su>bset"<;"/
      /StayDates
      User>Countri<es type="[inclu>de|ex<clude]"
        Count>ry <code="country_code>&<quot;/
      /User>Countries
      ModificationActions
        PriceAdjustment multiplier="float"/
        RateRule id="RateRuleID"/
        Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/
        Availability status="[unavailable]"/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications

Elementy i atrybuty

Wiadomość RateModifications zawiera te elementy i atrybuty:

Element / @Attribute Wystąpienia Typ Opis
RateModifications 1 Complex element Element główny wiadomości o zmianach stawek.
RateModifications / @partner 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 ID, która jest określona w elemencie <RequestorID> w wiadomościach <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ> dla tego samego konta.

RateModifications / @id 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, _ (podkreślenie) i – (łącznik).
RateModifications / @timestamp 1 DateTime Data i godzina utworzenia tej wiadomości.
RateModifications / HotelRateModifications 0..n HotelRateModifications

modyfikacje stawek w usłudze, Każda modyfikacja stawki dotyczy jednej usługi.

Uwaga: jeśli można zastosować wiele modyfikacji stawek do tej samej stawki, zostaną zastosowane wszystkie modyfikacje. Nie gwarantujemy określonej kolejności.

RateModifications / HotelRateModifications / @hotel_id 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ż widoczny w Hotel Center.
RateModifications / HotelRateModifications / @action 0..1 enum

Jeśli nie podasz wartości action, modyfikacje w tym elemencie zostaną dodane lub zaktualizowane dla tego hotelu. Jeśli określono opcję action="overlay", wszystkie wcześniej zdefiniowane modyfikacje dotyczące tego hotelu zostaną najpierw usunięte. Następnie wprowadzane są zmiany określone w tym pliku. Jeśli używany jest element action="overlay", a w jego ramach nie ma żadnych modyfikacji, wszystkie modyfikacje dotyczące tego hotelu zostaną usunięte.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

pojedyncza zmiana ceny usługi.

Uwaga: modyfikacje stawek są trudne do debugowania, dlatego zalecamy oszczędne ich stosowanie. W przypadku scenariuszy, które wymagają więcej niż 200 modyfikacji stawek, skontaktuj się z przedstawicielem Technicznej obsługi klienta.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Unikalny identyfikator modyfikacji stawki. Maksymalna dozwolona liczba znaków to 40. Dozwolone znaki to a–z, A–Z, 0–9, _ (podkreślenie), - (łącznik) i . (kropka).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Jeśli nie jest określony i nie jest przechowywana modyfikacja stawki z tym samym id, ta modyfikacja stawki jest przechowywana. W przeciwnym razie, jeśli nie zostanie określona i jeśli modyfikacja stawki z tym samym id jest przechowywana, wówczas zostanie zaktualizowana dotychczasowa modyfikacja stawki.

Jeśli została określona, wartość musi być "delete". Jeśli podano wartość "delete", zapisana modyfikacja stawki z tą samą wartością id zostanie usunięta. Jeśli używasz elementu "delete", nie umieszczaj w nim żadnych elementów podrzędnych.<ItineraryRateModification> Ponadto "delete" nie jest dozwolone w połączeniu z <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Kontener obejmujący co najmniej 1 zakres dat, który określa, kiedy rezerwacja musi zostać dokonana, aby można było zastosować zmianę stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Zakres dat określający, kiedy rezerwacja musi zostać dokonana, aby można było zastosować zmianę ceny.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end. Jeśli nie podasz wartości start, zakres dat będzie obejmował wszystkie daty.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każda litera w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Określa okres, w którym rezerwacja musi nastąpić w stosunku do daty zameldowania (na podstawie strefy czasowej obiektu). Na przykład okno rezerwacji może być ustawione na co najmniej 7 dni, ale nie więcej niż 180 dni przed zameldowaniem.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer Minimalna liczba dni przed zameldowaniem, w których musi nastąpić rezerwacja, aby można było zastosować zmianę ceny. Jeśli nie określisz tu żadnej wartości, nie będzie minimalnej wartości.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer Maksymalna liczba dni przed zameldowaniem, w których musi nastąpić rezerwacja, aby można było zastosować zmianę ceny. Jeśli nie określisz tu żadnej wartości, nie będzie limitów.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Pojemnik z co najmniej jednym zakresem dat, który określa, kiedy musi nastąpić zameldowanie, aby można było zastosować zmianę stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange Zakres dat określający, kiedy musi nastąpić zameldowanie, aby można było zastosować modyfikację stawki. Ten element nie jest wymagany, jeśli usuwasz co najmniej jedną modyfikację stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end. Jeśli nie podasz wartości start, zakres dat będzie obejmował wszystkie daty.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każda litera w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Pojemnik z co najmniej jednym zakresem dat, który określa, kiedy musi nastąpić płatność, aby można było zastosować zmianę stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange Zakres dat określający, kiedy musi nastąpić wymeldowanie, aby można było zastosować zmianę stawki. Ten element nie jest wymagany, jeśli usuwasz co najmniej jedną modyfikację stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end. Jeśli nie podasz wartości start, zakres dat będzie obejmował wszystkie daty.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każda litera w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Kontenery zawierające listę urządzeń użytkownika, które kwalifikują się do zmiany stawki. Jeśli to pole jest określone, zmiana stawki jest stosowana tylko wtedy, gdy użytkownik pasuje do jednego z wymienionych urządzeń. Jeśli nie określisz tu żadnej wartości, nie będzie to ograniczać stosowania modyfikacji stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device Określa jeden typ urządzenia użytkownika, które kwalifikuje się do zmiany stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum Typ urządzenia. Wartość musi być desktop, tablet lub mobile.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

Działanie, które jest stosowane do stawki, jeśli są spełnione wszystkie określone warunki.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Modyfikuje częstotliwość przez pomnożenie wartości AmountBeforeTax i AmountAfterTax przez podany mnożnik.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Zarówno AmountBeforeTax, jak i AmountAfterTax są mnożone przez tę wartość.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modyfikuje stawkę przez zastosowanie do niej określonego identyfikatora reguły dotyczącej ceny.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Ten identyfikator dopasowuje stawkę do definicji w pliku Definicja reguły stawki. Uwaga:
  • Limit znaków w tym polu wynosi 40.
  • Każda stawka może być powiązana tylko z jedną regułą dotyczącą stawek.
  • Jeśli do ceny ma zastosowanie wiele modyfikacji z identyfikatorem reguły dotyczącej ceny, do ceny zostanie przypisany identyfikator reguły, który jest najmniejszy pod względem leksykograficznym.
  • Jeśli ten identyfikator nie pasuje do reguły dotyczącej stawek w pliku z definicją reguł dotyczących stawek, uznaje się go za niekwalifikujący się.
Aby dowiedzieć się więcej o różnych sposobach wyświetlania prywatnych stawek w interfejsie użytkownika, przeczytaj ten artykuł.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Zastępuje zwrotność stawki określoną wartością.

Podczas konfigurowania atrybutów pamiętaj o tych kwestiach:

  • Ta modyfikacja całkowicie zastępuje ustawienie „Zwrotny” dla kwalifikującej się stawki, a nie tylko wypełnione pola.
  • Jeśli zasada available lub refundable_until_days nie jest skonfigurowana, stawka nie jest wyświetlana jako podlegająca zwrotowi.
  • Jeśli wartość atrybutu available to 0 lub false, pozostałe atrybuty są ignorowane. Stawka nie jest wyświetlana jako podlegająca zwrotowi, nawet jeśli ustawiono jeden lub oba pozostałe atrybuty.
  • Zaleca się ustawienie wartości refundable_until_time. Jeśli nie zostanie ona ustawiona, będzie używana najkrótsza wartość (północ).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Wymagane) Ustaw na 1 lub true, aby wskazać, czy stawka umożliwia pełny zwrot środków; w przeciwnym razie ustaw na 0 lub false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (wymagany, jeśli available to true) Określa liczbę dni przed zameldowaniem, w których można poprosić o pełny zwrot środków. Wartość refundable_until_days musi być liczbą całkowitą z zakresu od 0 do 330 włącznie.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (zalecane, jeśli available to true) Określa najpóźniejszą godzinę (według lokalnego czasu hotelu), do której można poprosić o pełny zwrot środków. Możesz go połączyć z tagiem refundable_until_days, aby określić na przykład, że „zwroty są dostępne do godziny 16:00 2 dni przed zameldowaniem”. Jeśli parametr refundable_until_time nie jest ustawiony, jego wartością domyślną jest północ.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Zastępuje dostępność ceny określoną wartością. Obsługujemy tylko ustawienie stawki na unavailable.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum Jeśli jest to status="unavailable", stawka jest traktowana tak, jakby była niedostępna, niezależnie od tego, czy istnieje dla niej prawidłowa cena.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Określa limity długości pobytu, w których można zastosować tę modyfikację stawki. Modyfikacja stawki nie jest stosowana, gdy długość pobytu wykracza poza minimalne i maksymalne limity.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Minimalna liczba nocy, która może być uwzględniona w zmianie stawki. Jeśli nie określisz tu żadnej wartości, nie będzie limitów.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer Maksymalna liczba noclegów, które można uwzględnić w ramach zmiany stawki. Jeśli nie określisz tu żadnej wartości, nie będzie limitu.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount Określa minimalną sumę dziennych stawek za pokój (przy użyciu większej wartości z opcji AmountBeforeTax lub AmountAfterTax), która musi zostać przekroczona, aby można było zastosować zmianę stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Wartość, która musi zostać przekroczona, aby można było zastosować zmianę stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Kontener z listą planów cenowych, do których ma zastosowanie modyfikacja ceny. Jeśli nie podasz wartości <RatePlans>, zmiana stawki zostanie zastosowana do wszystkich planów cenowych.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan Określa plan taryfowy. Pakiet usług jest zdefiniowany przez kombinację pakietu, stawek i dostępności, jak określono w transakcjach (dane obiektu), wiadomościach OTA_HotelRateAmountNotifRQ i OTA_HotelAvailNotifRQ oraz identyfikatorze PackageID.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string Unikalny identyfikator planu cenowego. Ta wartość jest mapowana na wartość atrybutu PackageID w elemencie <PackageData> w komunikacie Transaction (Property Data) oraz na atrybut RatePlanCode w elemencie <StatusApplicationControl> w obu komunikatach <OTA_HotelRateAmountNotifRQ> i <OTA_HotelAvailNotifRQ>. Maksymalna liczba znaków to 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Kontener z listą typów pokoi, do których ma zastosowanie modyfikacja stawki. Modyfikacja stawki jest stosowana do każdego określonego <RoomType>. Jeśli <RoomTypes> nie został określony, zmiana stawki zostanie zastosowana do wszystkich pokoi.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType Określa typ pokoju. Typ pokoju jest zdefiniowany w elemencie <RoomData> w wiadomości Transakcja (dane obiektu) i jest odwoływany za pomocą wartości <RoomID>. (jej wartość <RoomID> jest też używana przez atrybut InvTypeCode w wiadomościach OTA_HotelRateAmountNotifRQ).
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string Unikalny identyfikator asortymentu (typ pokoju). Ta wartość jest mapowana na <RoomID> w wiadomości dotyczącej transakcji (danych usługi). Maksymalna liczba znaków to 50.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates Pojemnik na co najmniej 1 zakres dat, który określa sposób stosowania modyfikacji stawki, np. w celu uwzględnienia cen sezonowych.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Opisuje, jak należy zastosować zmianę stawki.

Prawidłowe wartości to:

  • all: zmiana stawki jest stosowana do każdej nocy w planie podróży, jeśli wszystkie daty w planie pokrywają się z datami pobytu.
  • any: zmiana ceny jest stosowana do wszystkich nocy w planie podróży, jeśli jakakolwiek data w planie pokrywa się z jakikolwiek datą w zakresie dat pobytu.

Ten atrybut musi być zawsze określony.

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange Zakres dat określający daty, w których ma być stosowana modyfikacja stawki.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date Data rozpoczęcia (według strefy czasowej usługi) obejmująca zakres dat. Ta data musi być wcześniejsza lub taka sama jak data end. Jeśli nie podasz wartości start, zakres dat będzie obejmował wszystkie daty.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date Data końcowa (zgodnie ze strefą czasową usługi) zakresu dat. Data musi być taka sama jak data start lub późniejsza. Jeśli nie podasz parametru end, zakres dat będzie nieograniczony pod względem daty zakończenia.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

Dni tygodnia dozwolone w wybranym zakresie dat. Jeśli nie wybierzesz żadnego dnia, wszystkie dni w zakresie dat będą dozwolone. Każda litera w ciągu odpowiada jednemu dniowi. Na przykład „MTWHF” określa, że w zakresie dat dozwolone są dni robocze.

Prawidłowe znaki:

  • M w poniedziałek
  • T we wtorek
  • W w środę
  • H w czwartek
  • F w piątek
  • S w sobotę
  • U w przypadku niedzieli

Dozwolona jest dowolna kombinacja znaków.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Jeśli to konieczne, zmiana stawki jest stosowana tylko wtedy, gdy użytkownik znajduje się w jednym z wybranych krajów. Jeśli nie jest określony, modyfikacja stawki jest stosowana niezależnie od lokalizacji użytkownika.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Typ specyfikacji UserCountries.

Prawidłowe wartości to include i exclude.

Jeśli parametr UserCountries type ma wartość include, modyfikacja stawki dotyczy użytkowników z tych krajów:

Jeśli parametr UserCountries type ma wartość exclude, modyfikacja stawki dotyczy użytkowników spoza wymienionych krajów.

Jeśli parametr UserCountries type nie jest skonfigurowany, jest traktowany jako include, a modyfikacja stawki dotyczy użytkowników z krajów wymienionych w liście.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Określa kraj użytkownika, w którym można zmodyfikować stawkę.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string kod kraju CLDR, na przykład DE lub FR. Pamiętaj, że w przypadku niektórych krajów kod CLDR nie jest taki sam jak 2-literowy kod ISO. Nie są też obsługiwane kody regionów CLDR.

Przykłady

Podstawowa wiadomość

Ten przykład pokazuje podstawowy komunikat RateModifications:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_1&q>uot;
    I<tineraryRateModification id="1"
      BookingDates
      >   DateRan<ge start="2023-07-01" end="2023>-07-31&<quot; days_of>_week=&<quot;MTWHF"/
         DateR>ange st<art="20>23-09-01&q<uot; end="2023-09-30"/
      /BookingDates
      Bookin>gWindow< min="7&>quot; m<ax="330&>quot;/
   <   CheckinDates
         DateRange start="2023-10-01" e>nd=&quo<t;2023-10-31&q>uot; da<ys_of_w>eek="<;FSU"/
      /Ch>eckinDate<s
      CheckoutDates>
      <   DateRange st<art="2023-10-08" end>="<2023-11-0>7" da<ys_of_week="F>SU"/
<      /CheckoutDat>es
    <  D>evices
       < Device t>ype="<mobile"/
    >    Device< type="tablet>"/<
      /De>vices
 <     L>engthOfStay min=<"2" max=>"14&<quot;/
      RateP>lans
  <       >RatePlan id=&q<uot;234"/
    >     Rate<Plan id="567"/
      /R>atePlan<s
      RoomTypes
  >     <  RoomType id="123&qu>ot;</
         RoomType id=>&<quot;456"/
  >    /RoomTypes
      UserCountries
        Country code="US"/
        Country code="GB"/
      /UserCountries
      ModificationActions
        PriceAdjustment multiplier="1.2"/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications


Usuwanie jednej modyfikacji stawki

Ten przykład pokazuje, jak usunąć jedną zmianę stawki w przypadku obiektu:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id="Property_1>&qu<ot;
    ItineraryRateMo>d<ification id=">;1" action="delete"/
  /HotelRateModifications
/RateModifications

Usuwanie wszystkich modyfikacji stawek

Ten przykład pokazuje, jak usunąć wszystkie modyfikacje stawek w usługach:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00"
  HotelRateMod>i<fications hotel_id>=&quot;Property_1" action="overlay"/
/RateModifications


Nakładanie wszystkich modyfikacji stawek

Ten przykład pokazuje, jak nałożyć <HotelRateModifications> na usługę z co najmniej jedną nową modyfikacją stawki. Gdy action="overlay", wszystkie zapisane modyfikacje stawek są usuwane przed zapisaniem modyfikacji stawek określonych w bieżącej wiadomości:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00"
  HotelRateMod>ifica<tions hotel_id="Property_1&>quot; a<ction=">overlay&qu<ot;/
    ItineraryRateModification id="1&>quot;
 <     B>ookingDates
  <       DateRange st>art="<;2023-09-01" end="2023->09-30&q<uot;/
      /Booking>Dates
 <     ModificationAc<tions
        Pric>eAdjustmen<t multiplier=">;1.2&qu<ot;/
     > /Modif<icationAc>tions
    <  RoomTypes
      >   RoomTyp<e id="123&quo>t;/
   <      RoomType <id="456"/
      >/Ro<omTypes
      RatePlans>
<         RatePlan >id="234"/
         RatePlan id="567"/
      /RatePlans
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications

Wiele działań związanych z modyfikacją

Z tego przykładu dowiesz się, jak wykonać kilka modyfikacji jednocześnie:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_1&q>uot;
    I<tineraryRateModification id="1"
    >  Booki<ngDates
     >    Dat<eRange start=">2023-01-0<1" end="2023-02-28">;/
      </BookingDates
      ModificationActions
        PriceAdjustment multiplier=".95"/
        Refundable available=">true&qu<ot;
                >    r<efundable_until_days=">;1&<quot;
                 > <  refundabl>e_until_time="12:00:00"/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications


Wyłączanie planu cenowego dla krajów użytkowników

Ten przykład pokazuje, jak ograniczyć plan taryfowy tylko do użytkowników z Japonii (JP):

<?xml version="1.0" encodin>g<="UTF-8"?
RateModifications partner="account_xyz"
                   id="123_abc"
                >   <timestamp="2023-05-22T16:20:00-04:00&qu>ot;
 < HotelRateModifications hotel_id>="<Property_>1"
  <  ItineraryRate>Modification i<d="1&>quot;
 <     RatePlans
         Rate>Plan id=&<quot;jp_only">/
     < /RatePlans
  >    Use<rCountries type=&qu>ot;exclud<e"
        Country code=">;JP&quo<t;/
      /UserCount>ries
<      ModificationActions
>   <     Availability statu>s<="unavailable>&quot;/
      /ModificationActions
    /ItineraryRateModification
  /HotelRateModifications
/RateModifications


Odpowiedzi

Składnia

Wiadomość RateModificationsResponse używa tej składni:

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="timestamp&quot;
                    id="message_ID"
 >   <                partner="partner_key"
  >!--< Either >Suc<cess o>r Iss<ues will be populated. --
  Success/
  Issu><es
>    Issue code=&q<uot;><issue_>cod<e"> <status="issue_type&qu>ot;varissue_description/var/Issue
  /Issues
/RateModificationsResponse

Elementy i atrybuty

Wiadomość RateModificationsResponse zawiera te elementy i atrybuty:

Element / @Attribute Wystąpienia Typ Opis
RateModifications 1 Complex element Element główny wskazujący powodzenie lub problemy z otrzymanym żądaniem zmiany stawki.
RateModificationsResponse / @timestamp 1 DateTime Data i godzina utworzenia tej wiadomości.
RateModificationsResponse / @id 1 string Unikalny identyfikator z powiązanej wiadomości o zmianach stawek.
RateModificationsResponse / @partner 1 string Konto partnera, na którym jest wysyłana wiadomość.
RateModificationsResponse / Success 0..1 Success Wskazuje, że wiadomość RateModifications została przetworzona bez ostrzeżeń, błędów ani niepowodzeń.

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

RateModificationsResponse / Issues 0..1 Issues Kontener dla co najmniej 1 problemu, który wystąpił podczas przetwarzania wiadomości RateModifications.

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

RateModificationsResponse / Issues / Issue 1..n Issue Opis ostrzeżenia, błędu lub niepowodzenia podczas przetwarzania wiadomości RateModifications. Szczegółowe informacje o tych problemach znajdziesz w komunikatach o błędach stanu pliku danych.
RateModificationsResponse / Issues / Issue / @code 1 integer Identyfikator problemu.
RateModificationsResponse / Issues / Issue / @status 1 enum

Typ napotkanego problemu.

Prawidłowe wartości to warning, error i failure.

Przykłady

Sukces

Poniżej znajduje się odpowiedź na pomyślnie przetworzony komunikat RateModifications.

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
 >   <        > <       partner=&quo>t;partner_key"
  Success/
/RateModificationsResponse

Problemy

Poniżej przedstawiamy odpowiedź na wiadomość RateModifications, która nie została przetworzona z powodu błędów.

<?xml version="1.0" encodin>g<="UTF-8"?
RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
                    id="12345678"
 >   <      >     <     partner="partne>r_key"
  <Issues>
  <  Issue <code="1001" stat>us="error"Example/Issue
  /Issues
/RateModificationsResponse