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ś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:
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:
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:
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:
|
| 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 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:
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:
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 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>="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