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>C
ountries
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>=&q
uot;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_ti
me="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>&qu
ot;/
/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>o
t;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