Dokumentacja XML dotycząca zapytań i wskazówek

Ta sekcja zawiera informacje o wiadomościach z prośbą o wskazówkę, wiadomościach z odpowiedzią na prośbę o wskazówkęwiadomościach z zapytaniem w formacie XML Google.

<Hint> (wiadomość z odpowiedzią)

Element główny wiadomości z odpowiedzią. Wiadomości z podpowiedziami określają, które kombinacje hoteli lub planów podróży powinny zostać ponownie wycenione. Są one odpowiedzią na wiadomość z prośbą o wskazówkę od Google.

Wiadomość Hint Response powinna zawierać tylko te hotele, których ceny zmieniły się od czasu, gdy Google otrzymało ostatnią pomyślną odpowiedź Hint Response z Twoich serwerów.

Query

W wiadomościach odpowiedzi na podpowiedź używa się jednej z tych metod, aby określić, które hotele i plany podróży powinny zostać ponownie wycenione przez Google:

  • Dokładne plany podróży: połączenie daty zameldowania i długości pobytu.

  • Zakresy dat zameldowania: określa zakres dat zameldowania, od pierwszej do ostatniej daty zameldowania.

  • Pobyty w określonym przedziale czasu (lub plany podróży w określonym przedziale czasu)

Każda z tych metod wymaga innej składni wiadomości Hint Response.

Więcej informacji znajdziesz w sekcji Wiadomości z odpowiedzią na podpowiedź.

Składnia

Element <Hint> używa innej składni w zależności od typu wiadomości Hint Response:

Dokładne plany podróży

Poniżej przedstawiono składnię dokładnych planów podróży w wiadomości Hint Response:

<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encodin>g<=&qu>ot;<UTF->8&quo<t;?
Hint>
  Item
<    Prope>rtyhotel_ID/P<rope>rty
   < ...
    St>ay
      Che<ckInDatechec>kin_dat<e/CheckInDat>e
      LengthOf<Staynumber_of>_nigh<ts/Le>ngt<hOfSt>ay
    </Stay>
  /Item
  ...
/Hint

Zakresy zameldowania

Poniżej przedstawiono składnię zakresów odprawy w wiadomości Hint Response:

<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encodin>g<=&qu>ot;<UTF->8&quo<t;?
Hint
  Item
    !-- At leas>t one< is requ>ired --
<    Prope>rtyhotel_ID/Prop<erty
    [...]
>
    <!-- Requi>red --
    FirstDa<tefirst_ch>eckin<_date/FirstDate>
    <!-- Requ>ired --
    LastD<atelast_c>hec<kin_d>ate/Las<tDate>
  /Item
  ...
/Hint

Pobyty w określonym przedziale

Poniżej przedstawiono składnię pobytów w określonym przedziale w wiadomości Hint Response:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encodin>g<=&qu>ot;<UTF->8&quo<t;?
Hint
  Item
    !-- At leas>t one< is requ>ired --<
    Prop>erty1<458700/P>roperty<
    Prop>erty5<418701/Property
   > StaysI<ncludingRange
 >     !-<- Require>d --
     < Fi>rstDate2025-04<-28/FirstDate
 >     !-<- Option>al --
    <  >LastDate2025<-04-29/LastDate
    >/St<aysIn>cluding<Range>
  /Item
  ...
/Hint

Atrybuty

Element <Hint> zawiera atrybut opcjonalny: id. Jeśli jest podany, jest uwzględniany jako atrybut hintId<Query>wiadomościach wysyłanych na podstawie tego <Hint>.

Elementy potomne

Element <Hint> ma te elementy podrzędne:

Element podrzędny Wymagany? Typ Typ odpowiedzi Opis
<CheckInDate> Required Date Dokładne plany podróży Data zameldowania w przypadku planu podróży.
<FirstDate> Required Date Zakresy zameldowania i trasy z zakresem Pierwsza data z zakresu dat dla zakresu zameldowania lub wiadomości odpowiedzi z zakresem pobytu. Wyniki zawierają użyte daty.
<Item> Required Object Wszystkie Kontener z hotelem lub planem podróży, który ma zostać zaktualizowany.
<LastDate> Required* Date Zakresy zameldowania i trasy z zakresem

Ostatnia data zakresu dat dla zakresu zameldowania lub zakresu pobytu w wiadomości z podpowiedzią. Wyniki zawierają użyte daty.

* Ten element jest opcjonalny w przypadku pobytów w określonym zakresie dat.

<LengthOfStay> Required integer Dokładne plany podróży Liczba nocy w planie podróży wyrażona jako dodatnia liczba całkowita.
<Property> Required string Wszystkie

Identyfikator hotelu, który jest taki sam jak w liście hoteli. Liczba elementów <Property>, które możesz podać w jednym bloku <Item>, zależy od typu wiadomości z odpowiedzią na podpowiedź:

  • Dokładne plany podróży: do 100 hoteli.
  • Zakresy odprawy: więcej niż 1, jeśli w wiadomości <QueryControl> ustawisz <MultipleItineraries> na "checkin_range" .
  • Pobyt w określonym przedziale czasu: więcej niż 1, jeśli w wiadomości <QueryControl> ustawisz <MultipleItineraries> na "affected_dates" .
<Stay> Required Object Dokładne plany podróży Kontener elementów <CheckinDate><LengthOfStay> w odpowiedzi z dokładnym planem podróży. Każdy element <Item> może zawierać tylko jeden element <Stay>.
<StaysIncludingRange> Required Object Plany podróży z zakresem Kontener elementów <FirstDate><LastDate> w wiadomości z odpowiedzią na wskazówkę dotyczącą pobytu w określonym zakresie.

Przykłady

Dokładne plany podróży

W tym przykładzie zdefiniowano wiele planów podróży dla jednej nieruchomości w wiadomości Hint Response:

<!-- Exact Itinerary Hint Response -->
<?xml version="1.0" encodin>g<=&qu>ot;<UTF->8&quo<t;?
Hint>
  It<em
    Pr>opert<y123>45/Prop<erty
    St>ay
      C<heckInDate20>18-07-0<3/CheckInDat>e<
      Length>OfSta<y3/Le>ngt<hOfSt>ay
<    >/Stay<
  /Item>
  It<em
    Pr>opert<y123>45/Prop<erty
    St>ay
      C<heckInDate20>18-07-0<3/CheckInDat>e<
      Length>OfSta<y4/Le>ngt<hOfSt>a<y
   > /Stay
  /Item
/Hint

Zakresy zameldowania

W tym przykładzie określono 2 hotele, których ceny uległy zmianie i które należy ponownie pobrać. Google otrzymuje wszystkie plany podróży w przypadku obiektów 12345 i 67890 w okresie od 3 do 6 lipca:

<!-- Check-in Ranges Hint Response -->
<?xml version="1.0" encodin>g<=&qu>ot;<UTF->8&quo<t;?
Hint>
  It<em
    Pr>opert<y12345/P>roper<ty
    Pr>opert<y67890/Pr>operty
   < Fi>rstDate2018-<07-03/Fi>rstDate
  <  >LastDate20<18-07>-<06/La>stDate
  /Item
/Hint

Pobyty w określonym przedziale

Poniższy przykład pokazuje 2 różne zastosowania pobytów w określonym przedziale czasu: w przypadku zakresu nocy i w przypadku jednej nocy:

<!-- Ranged Stay Hint Response -->
<?xml version="1.0" encodin>g<=&qu>ot;<UTF-8"?
Hint
  !-- Google fetches prices for all itineraries (first and l>ast< dat>e are< set) -->
  It<em
    Pr>opert<y12345/Property
   > StaysI<ncludingR>ange
     < Fi>rstDate2018-07<-03/Firs>tDate
    <  >LastDate2018<-07-06/LastDate
    >/St<aysIn>clud<ingRange
  /Item

  !-- Google fetches prices for a single night >(fi<rst >date <only) -->
  It<em
    Pr>opert<y67890/Property
   > StaysI<ncludingR>ange
     < Fi>rstDate2018-<07-03/FirstDate
    >/St<aysIn>c<ludin>gRange
  /Item
/Hint

W każdym z tych przykładów Google odpowiada komunikatem <Query>, a Ty powinieneś(-aś) przesłać odpowiedź <Transaction> zawierającą aktualizacje cen dla określonych hoteli lub tras.

<HintRequest>

Element główny wiadomości z prośbą o podpowiedź. Google wysyła do Twojego serwera wiadomość z prośbą o wskazówkę i oczekuje odpowiedzi, która określa hotele i plany podróży, których ceny uległy zmianie od czasu, gdy Google otrzymało z Twojego serwera prawidłową odpowiedź z wskazówką.

Jeśli nastąpią zmiany cen, Google wyśle <Query>, który pobierze zaktualizowane dane o cenach wskazanych hoteli i planów podróży.

Więcej informacji znajdziesz w artykule Wiadomości z prośbą o wskazówkę.

Składnia

Element <HintRequest> ma tę składnię:

Składnia

<?xml version="1.0" encodin>g<="UTF->8&q<uot;?
HintReq>uest
  LastFetc<hTimelast_fetc>h<_time/LastFe>tchTime
/HintRequest

Atrybuty

Element <HintRequest> nie ma atrybutów.

Elementy potomne

Element <HintRequest> ma te elementy podrzędne:

Element podrzędny Typ Opis
<LastFetchTime> DateTime Ostatni raz, gdy Google udało się uzyskać odpowiedź na wiadomość z podpowiedzią.

Jeśli ten czas jest starszy niż ostatnia aktualizacja cen na serwerze, należy odpowiedzieć wiadomością Hint Response, w której określisz, które hotele uległy zmianie.

Jeśli ostatnie pobieranie nie powiodło się, wartość zostanie ustawiona na stały interwał (aby uniknąć poważniejszych problemów z dużymi zaległościami). Obecna stała wartość interwału wynosi 1000 sekund, ale może ulec zmianie.

Więcej informacji znajdziesz w artykule Wiadomości z odpowiedzią na podpowiedź.

Przykłady

Poniższy przykład przedstawia wiadomość z prośbą o podpowiedź:

wiadomość z prośbą o podpowiedź

Poniższy przykład pokazuje wiadomość z prośbą o podpowiedź:

<?xml version="1.0" encodin>g<="UTF-8"?
HintRequest id="ABCDEF" ti>mes<tamp="20>18-06-07T16:20:00Z&q<uot;
  LastFet>c<hTime2018-03>-25T00:04:09Z/LastFetchTime
/HintRequest

<Query>

Element główny wiadomości Query. Query wiadomości to żądania od Google dotyczące aktualizacji cen lub metadanych. Są one używane w przypadku trybów dostarczania Pull i Changed pricing.

Wiadomości z zapytaniami o ceny

Wiadomości z zapytaniem o cenę określają kombinacje obiektu i planu podróży, dla których podajesz ceny.

Gdy serwer otrzyma wiadomość z zapytaniem pricing, powinien odpowiedzieć wiadomością <Transaction> zawierającą żądane informacje o cenach.

Więcej informacji znajdziesz w omówieniu cen.

Istnieją 3 specjalne typy wiadomości Query:

  • Ceny na żywo: Google odpowiada na konkretną prośbę użytkownika o aktualizację ceny w czasie rzeczywistym. Gdy partnerzy otrzymają komunikat Live pricing query, powinni odpowiedzieć komunikatem <Transaction>, który zawiera żądane informacje o cenach w elementach <Result>.

  • W przypadku cen kontekstowych: Google aktualizuje pamięć podręczną cen na podstawie kontekstów, które były popularne w przeszłości. Gdy otrzymasz komunikat With Context query, musisz odpowiedzieć komunikatem <Transaction> zawierającym żądane informacje o cenach w elementach <Result>.

    • Z zapytaniami kontekstowymi dotyczącymi pojedynczego miejsca

      Podając stawki w odpowiedzi na zapytania z kontekstem, należy przesyłać tylko stawkę odpowiadającą określonemu kontekstowi. Obłożenie według ceny podstawowej wymaga co najmniej 2 osób, więc jeśli w przypadku ceny podstawowej podana zostanie 1 osoba, zostanie to zignorowane i nadal będzie traktowane jako obłożenie podwójne. W takim przypadku przekaż cenę podstawową jako niedostępną i użyj zagnieżdżonej ceny w ramach ceny za 1 osobę. Zapoznaj się z przykładem odpowiedzi z kontekstem. Możesz użyć zmienionych cen z kontekstem, aby połączyć stawki, ustawiając atrybut mergeable na "true". Więcej informacji

    • Zmiana cen (wcześniej znane jako pobieranie z podpowiedziami) z kontekstem

      Gdy wyślesz <Transaction>odpowiedź na wiadomość w zapytaniu dotyczącym zmienionych cen z kontekstem, Google potraktuje ją jako pełne zastąpienie informacji o cenach i dostępności w przypadku danego hotelu lub planu podróży. Wszystkie stawki zależne od kontekstu zostaną wykluczone z odpowiedzi i usunięte z pamięci podręcznej.

      Aby zapobiec nadpisaniu, w elemencie <Result> w wiadomości <Transaction> ustaw atrybut mergeable na "true". Google dołącza do odpowiedzi stawki z istniejących stawek zapisanych w pamięci podręcznej dla podanego kontekstu. Jeśli nie używasz atrybutu z możliwością łączenia, musisz przesłać w odpowiedzi wszystkie stawki we wszystkich odpowiednich kontekstach.

    • Zapytanie o rzeczywistą cenę z kontekstem

      Zapytanie o rzeczywiste ceny z kontekstem ma domyślnie atrybut z możliwością scalania, więc ustawianie tego atrybutu nie jest wymagane. Stawkę lub stawki musisz przesłać tylko w przypadku konkretnych kontekstów, o które poprosi Google, jeśli wszystkie pozostałe konteksty pozostają bez zmian. Jeśli zmieniły się inne konteksty, musisz wyraźnie przesłać zmiany dotyczące tych kontekstów. W przeciwnym razie nowe stawki nie zostaną zaktualizowane w pamięci podręcznej Google.

  • Metadane: Google wysyła prośby o aktualizacje metadanych pokoi i pakietów pokoi w przypadku określonych hoteli. Gdy otrzymasz wiadomość Metadata Query, musisz odpowiedzieć wiadomością <Transaction>, która zawiera dane o pokojach i pakietach pokoi w elementach <PropertyDataSet>. Więcej informacji znajdziesz w sekcji Metadane pakietu Room Bundle.

Składnia

Element <Query> ma tę składnię:

Zapytanie o cenę

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
  Check>inY<YYY-MM>-DD/Checkin
  Ni<ghtsnum>ber<_of_nights/N>ights<
  Prope>rtyList
<    Prope>rtyhotel_id</Property
   > <...
  >/PropertyList
/Query

Rzeczywiste ceny

<?xml version="1.0" encodin>g<="UTF-8"?
Query latencySensi>tiv<e=">;true_or_f<alse&quo>t;
<  Chec>kinYYYY-MM-DD/Ch<eckin
 > Ni<ghtsnumber_of_nights/Nights
  !-- Only for Check-in Date Range pricin>g q<ueries (C>hanged Pri<cing) --
 > Fi<rstDateY>YYY-MM-DD/<FirstDate>
  <LastDateYYYY-MM-DD/LastDate
  !-- Only for Ranged Stay pricin>g q<ueries (Change>d Pricing) --
  <AffectedNightsn>umb<er_of_nights>/Affe<ctedNigh>ts
  Pro<pertyList>
    Proper<tyhotel_id/Pr>ope<rty
    ...
  /PropertyList
  !-<- See d>ocu>men<tation >below for <Context >-<-
  Co>ntext
   ...
  /Context
/Query

Zapytanie z kontekstem

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
  Check>inY<YYY-MM>-DD/Checkin
  Ni<ghtsnum>ber<_of_nights/Nights
  !-- Only for Check-in Date Range pricing queries >(Ch<anged Pri>cing) --
 < Fi>rstDateYYY<Y-MM-DD/>FirstDate
<  LastDat>eYY<YY-MM-DD/LastDate
  !-- Only for Ranged Stay pricing queries >(Ch<anged Pricing)> --
  AffectedNi<ghtsnumber_of_n>igh<ts/AffectedNights
 > Prop<ertyContextList>
    Pr<opertyCo>ntext
  <    Propertyhotel_id/Prope<rty
      ...
      !-- See docu<mentati>on >below f<or Cont>ext --
      Cont<ext
    >  ...<
      /Context
>   < /PropertyContext
  >/<Proper>tyContextList
/Query

Metadane

<HotelInfoProperties>
  <Property>property_ID</Property>
  ...
</HotelInfoProperties>

Atrybuty

Element <Query> może zawierać 1 atrybut: latencySensitive.

Atrybut latencySensitive jest opcjonalny. Jeśli ten parametr jest podany i ma wartość true, oznacza to, że zapytanie jest Live Pricing Query. Aby Google wysyłało zapytania z atrybutem latencySensitive, skontaktuj się z Technicznym menedżerem konta.

Elementy potomne

Element <Query> ma te elementy podrzędne:

Element podrzędny Typ zapytania Typ Opis
<AffectedNights> Pricing integer Liczba nocy w przypadku pobytu w określonym przedziale czasu. Ten element jest używany tylko w przypadku zapytań o ceny za pobyt w określonym przedziale czasu, które są używane w przypadku zmiany cen.
<Checkin> Pricing Date Daty konkretnej zmiany ceny.
<Context> Pricing (Live Pricing Queries only) <Context> W przypadku zapytań o ceny na żywo określa parametry, w ramach których jest wysyłane zapytanie. Elementy podrzędne to:
  • <Occupancy>: łączna liczba gości
  • <OccupancyDetails>: rodzaj gości, np. dorośli lub dzieci;
  • <UserCountry>: kraj, w którym znajduje się użytkownik.
  • <UserDevice>: rodzaj urządzenia, którego gość użył do wyszukania hotelu, np. "mobile, „tablet” lub „desktop”.

Element <Context> może być powtarzany w jednym żądaniu, co umożliwia wysyłanie zapytań o różne obłożenie. Więcej informacji o elementach podrzędnych, składni i przykładach znajdziesz w <Context>.

<FirstDate> Pricing Date Data rozpoczęcia zakresu planów podróży, do których ma zastosowanie cena. Ten element jest używany tylko w przypadku zapytań dotyczących zakresu dat zameldowania w przypadku cen w ramach zmiany cen.
<HotelInfoProperties> Metadata string Co najmniej 1 usługa, w przypadku której Google chce zaktualizować metadane pokoju i pakietu pokoi w wiadomości z metadanymi Query. Ten element może zawierać co najmniej 1 element <Property>, który określa identyfikatory obiektów hotelowych.
<LastDate> Pricing Date Data zakończenia zakresu planów podróży, do których ma zastosowanie cena. Ten element jest używany tylko w przypadku zapytań dotyczących zakresu dat zameldowania, które są używane z funkcją Pull + Hints.
<Nights> Pricing integer Liczba nocy w przypadku konkretnego planu podróży (maksymalnie 30).
<PropertyList> Pricing Object

Co najmniej 1 identyfikator hotelu, który wymaga aktualizacji cen.

Określ każdy hotel w elemencie <Property>. Wartość to ciąg tekstowy, który pasuje do identyfikatora hotelu na liście hoteli. Na przykład:

<PropertyList>
  <Property>pid1</Property>
  <Property>pid2</Property>
</PropertyList>

Przykłady

Zapytanie o cenę

Ten przykład pokazuje wiadomość zapytania o cenę, która zawiera prośbę o aktualizacje cen dla zestawu hoteli dostępnych na 3 noce od 23 maja 2023 r.:

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
  Check>in2<023-05>-<23/Chec>kin<
  Nights3/N>ights<
  Prope>rtyL<ist
    P>roper<typid5/P>rope<rty
    P>roper<typid8/P>roper<ty
    Pr>opert<ypid13/P>roper<ty
    Pr>ope<rtypid21/Prop>e<rty
  >/PropertyList
/Query

Zapytanie o rzeczywistą cenę

Poniższy przykład pokazuje zapytanie o ceny na żywo z limitem czasu odpowiedzi wynoszącym 500 milisekund:

<?xml version="1.0" encodin>g<="UTF-8"?
Query lat>enc<ySensit>ive="<true&quo>t;
<  Chec>k<in2017->06-<07/Checkin>
  <Nights5/Nig>hts<
  DeadlineM>s500/<Deadline>Ms
  Pr<opertyLis>t
 <   Pro>perty86753<09/Prop>erty
<  /Proper>t<yList
  Co>ntext<
    Occupancy4/>Occupan<cy
    Oc>c<upancyDeta>ils
   <   NumAdults2/Num<Adults
      C>hildren
 <       Child a>ge=&quo<t;8">/
   <     Child age=&q>uot;5<"/
   >  < /Children
 >   /O<ccupancyDe>tails
<    UserCou>ntr<yUS/User>C<ountry>
    UserDevicemobile/UserDevice
  /Context
/Query

Z zapytaniem kontekstowym

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8&qu>ot;?
Query<
  Check>in2<023-05>-<23/Chec>kin<
  Nights2/Nights
 > Prop<ertyContextList>
    Pr<opertyCo>ntext
 <     Property867<5309/Property
      !-- In the future, device m>ight be< specif><ied --
    >  <ContextUserC><ountryUS>/UserCo<untry/C><ontext
    >  <ContextUserC><ountryGB>/User<Country/Context
>    /<PropertyContext>
    Pr<opertyCo>ntext
 <     Property867<5310/Pro>perty
 <     Property867<5311/Pr><operty
    >  <ContextUserC><ountryCA>/User<Country/Context
>   < /PropertyContext
  >/<Proper>tyContextList
/Query

Odpowiedź kontekstowa

Poniższy przykład pokazuje, jak ustawić stawkę podstawową na unavailable(-1) dla jednej osoby i zagnieździć stawki w elemencie <Occupancy>.

<?xml version="1.0" encodin<g="UTF-8"
Transaction id="Wtdj8QoQIWcAAbaTGlIAAAC4" ti>m<estamp>=&q<uot;2025>-11-19T<18:36:48Z>&qu<ot;
Res>ult
  Prop<erty6781>291</Prope>r<ty
  Ch>eck<in2026-01-15/Checkin
  Nights1/Nights
  !-- Base rate is set to -1 to indicate unavailability> fo<r the default (2-person>) <occupancy> --<
  Baserate curren>c<y=&q>uot<;USD"-1/Baserate
  >T<ax currenc>y=&<quot;>USD&q<uot;0/Tax
  OtherFees currency="US>D&quo<t;0/OtherFees
  Rates
    !->- Neste<d Rate fo>r< Single Oc>cupancy< --
    Rate rat>e_rule_id<="ru>l<e-951">;
     < Occupancy>1/Occupancy
  <    OccupancyDetails
  >      <NumAdults>1/NumAd<ults
      /Occupa>ncyDe<tail>s
     < Baserate currency=">;USD<"150.>00/Ba<serat>e
 <     Tax currency="USD"15.00/Tax
      OtherFees currency="USD"5.00/OtherFees
   > /R<ate
  >!<-- Othe>r< nested rate>s for different occupancies or room types could be included here if available --
  /Rates
/Result
/Transaction

Zapytanie o metadane

<?xml version="1.0" encodin>g<=&quo>t;U<TF-8"?
Query
 > Hote<lInfoPro>pert<ies
    P>roper<typid5/P>rope<rty
    P>roper<typid8/P>roper<ty
    Pr>opert<ypid13/P>roper<ty
    Pr>ope<rtypid21/Property
  >/<HotelI>nfoProperties
/Query

Więcej przykładów, w tym zapytań o ceny w przypadku pobytu w określonym przedziale czasu i przedziale dat zameldowania, znajdziesz w Queryprzykładach wiadomości.

<Context>

Element <Context> opisuje informacje dotyczące Live pricing query, w tym liczbę i rodzaj gości, kraj użytkownika i urządzenie użytkownika.

Wiele <Context> nigdy nie będzie używanych w przypadku różnych krajów użytkowników ani urządzeń użytkowników. Jeśli do wysyłania zapytań o wiele rodzajów zakwaterowania używasz wielu elementów <Context>, podaj cenę każdego rodzaju zakwaterowania jako dodatkowy pakiet pokoi dla odpowiedniego obiektu lub planu podróży. Każdy obiekt lub plan podróży powinien mieć jeden blok <Result> z cenami dla różnych liczb osób.

Szczegóły odpowiedzi na zapytanie <Context> znajdziesz w <OccupancyDetails>.

Składnia

Element <Context> ma tę składnię:

Składnia

<?xml version="1.0" encodin>g<="UTF-8"?
Query latencySensi>tiv<e=">;tru<e_or_fal>se&<quot;
>  Checkindate/Ch<eckin
 > Ni<ghtsnumber>_of_nights/Nights
  De<adlineMsnum>ber<_of_millisec>onds/<Deadline>Ms
  Proper<tyList
  >  P<ropertyproper>ty_<ID/Prop>erty
<  /Proper>tyList
  Context
    O<ccupancyto>tal_n<umber_of_guests/>Occupan<cy
    Oc>cupancyDetails
 <     NumAdultsnum<ber_of_a>dults/Num<Adults
      Children
        Chi>ld age=ag<e_of_one_child_guest/
        Chi>ld age=<age_of_on>e_chi<ld_guest/
      />Child<ren
    /Oc>cupancyDetails
 <   Us>erCountryend<_user_coun>try/UserCountry
<    UserDev>ice<user_dev>i<ce_typ>e/UserDevice
  /Context
/Query

Elementy potomne

Element <Context> ma te elementy podrzędne:

Element podrzędny Typ zapytania Typ Opis
<Occupancy> Pricing integer Określa łączną liczbę gości.

Zapytania z parametrem <Occupancy> powinny (choć nie jest to obowiązkowe) zwracać wiadomość o transakcji z odpowiednimi pakietami pokoi zdefiniowanymi dla każdego parametru <Occupancy>. Jeśli jednak pakiety pokoi są niedostępne, zalecamy określenie elementu <Occupancy>.

Uwaga:<Occupancy> może nie zawsze pojawiać się w zapytaniu. W takich przypadkach należy zwrócić ceny wszystkich wariantów.

<OccupancyDetails> Pricing Object Poprzedza go <Occupancy>. Określa gości według typu, w tym:
  • <NumAdults>: liczba dorosłych gości
  • <Children> i <Child="age">: Określa, którzy goście są dziećmi (zwykle w wieku 0–17 lat) i opcjonalnie zawiera wiek każdego dziecka.

Zapytania z parametrem <OccupancyDetails> powinny generować wiadomość o transakcji z odpowiednimi pakietami pokoi zdefiniowanymi dla każdego parametru <Occupancy>, ale jeśli pakiety pokoi są niedostępne, zalecamy określenie elementu <OccupancyDetails>.

Uwaga: znak <OccupancyDetails> może nie zawsze pojawiać się w zapytaniu. W takich przypadkach należy założyć, że wszyscy goście to osoby dorosłe.

<UserCountry> Pricing string

Filtruje stawki według kraju, w którym znajduje się użytkownik. Wartość to 2-literowy kod kraju, np. "US" w przypadku Stanów Zjednoczonych, lub kod regionu, np. "EU" w przypadku „Europy”.

Zapytania z określonym parametrem <UserCountry> powinny zwracać komunikat o transakcji z odpowiednim blokiem <Rates> zdefiniowanym dla kraju, którego dotyczy zapytanie.

<UserDevice> Pricing string

Filtruje stawki według typu urządzenia, z którego użytkownik prowadzi wyszukiwanie. Możliwe wartości:

  • mobile
  • desktop
  • tablet

Zapytania z określonym parametrem <UserDevice> powinny generować komunikat o transakcji z odpowiednim blokiem <Rates> zdefiniowanym dla typu urządzenia, którego dotyczy zapytanie.

Przykłady

Liczba osób

Poniższy przykład pokazuje zapytanie o ceny na żywo dla <Occupancy> w ramach <Context>. Zapytanie o ceny na żywo dotyczy 3 osób dorosłych.

<?xml version="1.0" encodin>g<="UTF-8"?
Query lat>enc<ySensit>ive="<true&quo>t;
<  Chec>k<in2017->06-<07/Checkin>
  <Nights4/Nig>hts<
  DeadlineM>s500/<Deadline>Ms
  <PropertyL>ist<
    Property>456<17/Prop>erty
<  /Proper>t<yList
  Co>ntext<
    Occupa>nc<y3/Occupancy>
    <UserCountr>yUS/Us<erCountry
 >   <UserDevi>c<emobil>e/UserDevice
  /Context
/Query

Szczegóły obłożenia

Poniższy przykład pokazuje zapytanie o ceny na żywo z parametrem <OccupancyDetails> w ramach parametru <Context>. Zapytanie o ceny na żywo dotyczy 4 gości, z których 2 to dzieci, i szuka ceny obowiązującej w przypadku rezerwacji dokonanej przez gościa ze Stanów Zjednoczonych na urządzeniu mobilnym:

<?xml version="1.0" encodin>g<="UTF-8"?
Query lat>enc<ySensit>ive="<true&quo>t;
<  Chec>k<in2017->06-<07/Checkin>
  <Nights5/Nig>hts<
  DeadlineM>s500/<Deadline>Ms
  Pr<opertyLis>t
 <   Pro>perty86753<09/Prop>erty
<  /Proper>t<yList
  Co>ntext<
    Occupancy4/>Occupan<cy
    Oc>c<upancyDeta>ils
   <   NumAdults2/Num<Adults
      C>hildren
 <       Child ag>e="<;4"/>
    <    Child age=&qu>ot;12<"/
   >  < /Children
 >   /O<ccupancyDe>tails
<    UserCou>ntr<yUS/User>C<ountry>
    UserDevicemobile/UserDevice
  /Context
/Query

Wiele kontekstów

W tym przykładzie pokazano użycie dodatkowego elementu <Context> w zapytaniu o ceny na żywo.

<?xml version="1.0" encodin>g<="UTF-8"?
Query lat>enc<ySensit>ive="<true&quo>t;
<  Chec>k<in2017->06-<07/Checkin>
  <Nights4/Nig>hts<
  DeadlineM>s500/<Deadline>Ms
  <PropertyL>ist<
    Property>456<17/Prop>erty
<  /Proper>t<yList
  Co>ntext<
    Occupa>nc<y3/Occupancy>
    <UserCountr>yUS/Us<erCountry
 >   <UserDevi>cem<obile/U>serDe<vice
  /C>o<ntext
  Co>ntext<
    Occupancy6/>Occupan<cy
    Oc>c<upancyDeta>ils
   <   NumAdults4/Num<Adults
      C>hildren
 <       Child ag>e="<;6"/>
    <    Child age=&qu>ot;10<"/
   >  < /Children
 >   /O<ccupancyDe>tails
<    UserCou>ntr<yUS/User>C<ountry>
    UserDevicemobile/UserDevice
  /Context
/Query