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"
                      id="message_ID"
   >   <                timestamp="timestamp"
  HotelRateM>odifi<cations hotel_id="HotelID" action="[overlay]&quo>t;
    <ItineraryRat>eModifica<tion id="ModificationID" action="[delete]"
      BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" 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=">;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" end=>"Y<YYY-MM-DD>" da<ys_of_week=""MTW>HFSU_or_s<ubset""/
      />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="Ro>omID_2&qu<ot;/
      /RoomTypes
   >   StayDa<tes application="[all|any]"
        DateRange start="YYYY-MM-DD" 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  | 
| 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  | 
| 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
         Jeśli została określona, wartość musi być  | 
| 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ścistart, 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 startlub późniejsza. Jeśli nie podasz parametruend, 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: 
 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ścistart, 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 startlub późniejsza. Jeśli nie podasz parametruend, 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: 
 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ścistart, 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 startlub późniejsza. Jeśli nie podasz parametruend, 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: 
 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,tabletlubmobile. | 
| 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 AmountBeforeTaxiAmountAfterTaxprzez podany mnożnik. | 
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | Zarówno AmountBeforeTax, jak iAmountAfterTaxsą 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: 
 | 
| 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: 
 | 
| RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available | 1 | boolean | (Wymagane) Ustaw na 1lubtrue, aby wskazać, czy stawka umożliwia pełny zwrot środków; w przeciwnym razie ustaw na0lubfalse. | 
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (wymagany, jeśli availabletotrue) Określa liczbę dni przed zameldowaniem, w których można poprosić o pełny zwrot środków. Wartośćrefundable_until_daysmusi 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 availabletotrue) 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 tagiemrefundable_until_days, aby określić na przykład, że „zwroty są dostępne do godziny 16:00 2 dni przed zameldowaniem”. Jeśli parametrrefundable_until_timenie 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 AmountBeforeTaxlubAmountAfterTax), 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 atrybutRatePlanCodew 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 atrybutInvTypeCodew 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: 
 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ścistart, 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 startlub późniejsza. Jeśli nie podasz parametruend, 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: 
 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  Jeśli parametr UserCountries  Jeśli parametr UserCountries  Jeśli parametr UserCountries  | 
| 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 DElubFR. 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>="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>"/
      /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"
                    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  | 
| 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  | 
| 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  | 
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