Transaction (Property Data)

Richieste

Sintassi

La sintassi del messaggio Transaction (Property Data) è la seguente:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
             id="message_ID"
             partner="partner_key">
  <PropertyDataSet action="[overlay|delta]">
    <!-- (Required) ID that matches the Hotel List Feed -->
    <Property>HotelID</Property>
    <RoomData>
      <!-- (Required) One room ID per RoomData element -->
      <RoomID>RoomID</RoomID>
      <Name>
        <Text text="room_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="room_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the rate plans allowed for this room type to
        those listed here. If specified, don't specify AllowableRoomIDs. -->
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID</AllowablePackageID>
      </AllowablePackageIDs>
      <Capacity>max_number_of_occupants</Capacity>
      <AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
      <ChildCapacity>max_number_of_child_occupants</ChildCapacity>
      <OccupancySettings>
        <MinOccupancy>min_number_of_occupants</MinOccupancy>
        <MinAge>min_age_of_occupants</MinAge>
      </OccupancySettings>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
        <Beds>
           <Bed size="[single|semi_double|double|queen|king]">
             <Width unit="cm" number="bed_width"/>
             <Length unit="cm" number="bed_length"/>
           </Bed>
           <!-- Include with any additional beds. -->
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>[shared|private]</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>[smoking|non_smoking]</Smoking>
        <BathAndToilet relation="[together|separate]">
          <Bath bathtub="[false|true]" shower="[false|true]"/>
          <Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <!-- (Optional) Defines the type of views from the room. -->
          <!-- Example: <OceanView/> -->
        </Views>
      </RoomFeatures>
    </RoomData>
    <PackageData>
      <!-- (Required) One package ID per PackageData element -->
      <PackageID>PackageID</PackageID>
      <Name>
        <Text text="package_name" language="language_code"/>
      </Name>
      <Description>
        <Text text="package_description" language="language_code"/>
      </Description>
      <!-- (Optional) Restricts the room types allowed for this rate plan to
        those listed here. If specified, don't specify AllowablePackageIDs. -->
      <AllowableRoomIDs>
        <AllowableRoomID>RoomID</AllowableRoomID>
      </AllowableRoomIDs>
      <Refundable available="[false|true]" refundable_until_days="number_of_days"
        refundable_until_time="time"/>
      <!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
      <BreakfastIncluded>boolean_value</BreakfastIncluded>
      <InternetIncluded>boolean_value</InternetIncluded>
      <ParkingIncluded>boolean_value</ParkingIncluded>
      <PhotoURL>
        <Caption>
          <Text text="photo_description" language="language_code"/>
          ...
        </Caption>
        <URL>photo_location</URL>
      </PhotoURL>
      ...
      <Meals>
        <Breakfast
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
        <Dinner
          included="[true|false]" buffet="[true|false]"
          in_room="[true|false]" in_private_space="[true|false]"/>
      </Meals>
      <CheckinTime>checkin_time</CheckinTime>
      <CheckoutTime>checkout_time</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Elementi e attributi

Il messaggio Transaction (Property Data) contiene i seguenti elementi e attributi:

Elemento / @attributo Occorrenze Tipo Descrizione
Transaction 1 Complex element In un'implementazione ARI, questo è l'elemento principale di un messaggio che definisce pacchetti e tipi di camera di una singola proprietà.
Transaction / @timestamp 1 DateTime La data e l'ora di creazione di questo messaggio.
Transaction / @id 1 string Un identificatore univoco per questo messaggio di richiesta. Questo valore viene restituito nel messaggio di risposta. I caratteri consentiti sono a-z, A-Z, 0-9, _ (trattino basso) e - (trattino).
Transaction / @partner 1 string L'account partner di questo messaggio. Il valore della stringa è il valore "Chiave del partner" presente nella pagina Impostazioni account in Hotel Center.

Nota: se hai un backend che fornisce feed per più account, questo valore deve corrispondere al valore dell'attributo ID specificato nell'elemento <RequestorID> dei messaggi <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> per lo stesso account.

Transaction / PropertyDataSet 1.. PropertyDataSet Un contenitore per la definizione di pacchetti e tipi di camera di una singola proprietà.
Transaction / PropertyDataSet / @action 0..1 enum

Il tipo di aggiornamento da applicare alle definizioni della tariffa della camera.

I valori validi sono:

  • overlay : sostituisce tutti gli elementi <RoomData> e <PackageData> definiti in precedenza per la proprietà. Nel messaggio corrente sono validi solo <RoomData> e <PackageData>.
  • delta : Aggiunge gli elementi <RoomData> e <PackageData> non definiti in precedenza o modifica quelli esistenti.

Questo attributo è facoltativo e viene impostato su delta come valore predefinito se non specificato.

Transaction / PropertyDataSet / Property 1 string L'identificatore univoco della struttura. Questo valore deve corrispondere all'ID hotel specificato utilizzando <id> nell'elemento <listing> nel feed elenco hotel. L'ID hotel è indicato anche in Hotel Center.
Transaction / PropertyDataSet / RoomData 0..n RoomData

Descrive una camera.

Nota: è obbligatorio almeno uno tra <RoomData> e <PackageData>.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Un identificatore univoco per un tipo di camera. A questo valore viene fatto riferimento tramite l'attributo InvTypeCode nell'elemento <StatusApplicationControl> nei messaggi <OTA_HotelAvailNotifRQ>, <OTA_HotelRateAmountNotifRQ> e <OTA_HotelInvCountNotifRQ>.
Transaction / PropertyDataSet / RoomData / Name 1 Name Contenitore per il nome della categoria della camera in una o più lingue.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Specifica il nome della categoria della camera in una lingua.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string Il nome della categoria della camera nella lingua specificata dall'attributo language.
Transaction / PropertyDataSet / RoomData / Description 1 Name Contenitore per la descrizione della categoria della camera in una o più lingue.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Specifica la descrizione della categoria della camera in una lingua.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string La descrizione della categoria della camera nella lingua specificata dall'attributo language.
Transaction / PropertyDataSet / RoomData / Description / Text / @language 1..n string Un codice lingua di due lettere.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Un contenitore per gli elementi <AllowablePackageID>.

Se <AllowablePackageIDs> è specificato, il tipo di camera identificato da <RoomID> nell'elemento <RoomData> principale può essere solo combinato con i piani tariffari definiti dagli elementi <AllowablePackageID>.

Se <AllowablePackageIDs> non è specificato, il tipo di camera identificato da <RoomID> nell'elemento <RoomData> principale può essere combinato con qualsiasi piano tariffario.

Utilizza <AllowablePackageIDs> o <AllowableRoomIDs>, ma non entrambi.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID Specifica l'elemento PackageID di un piano tariffario che può essere combinato con questo tipo di camera. Il piano tariffario viene definito da una combinazione di pacchetti, tariffe e disponibilità. PackageID corrisponde a RatePlanCode nei messaggi OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer Il numero massimo di adulti e bambini che una camera può ospitare fisicamente. Deve essere maggiore o uguale ai valori NumberOfGuests inviati con le tariffe.

Il valore di <Capacity> deve essere un numero intero positivo compreso tra 1 e 99 inclusi. Per un esempio, consulta questa pagina.

Nota: se <Capacity> non è impostato, il numero di persone consentite è considerato illimitato. Se questo campo non è impostato e sono definiti ExtraGuestCharges o AdditionalGuestAmounts, i prezzi possono essere generati per qualsiasi numero di persone. Ti consigliamo di impostare <Capacity> se sono definiti ExtraGuestCharges o AdditionalGuestAmounts per assicurarti che i prezzi non vengano visualizzati per le opzioni di numero di persone non valide.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer Il numero massimo di adulti che una camera può ospitare fisicamente. Deve essere maggiore o uguale ai valori NumberOfGuests inviati con le tariffe.

Il valore di <AdultCapacity> deve essere un numero intero positivo compreso tra 1 e 99, inclusi. Per un esempio, consulta questa pagina.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer Il numero massimo di bambini che una camera può ospitare fisicamente.

Il valore di <ChildCapacity> deve essere un numero intero positivo compreso tra 1 e 99 inclusi. Per un esempio, consulta questa pagina.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings Impostazioni che possono limitare o modificare i requisiti di numero di persone di una stanza.

L'elemento <OccupancySettings> prevede i seguenti elementi secondari:

  • <MinOccupancy>: il numero minimo di ospiti che possono soggiornare in una camera. Ad esempio, se questo valore è impostato su 2, la camera non può essere prenotata per un solo ospite.

    Il valore di <MinOccupancy> deve essere un numero intero positivo compreso tra 1 e 99 inclusi.

  • <MinAge>: l'età minima per tutti gli ospiti che soggiornano in una camera. Ad esempio, se questo valore è impostato su 18, la camera può essere prenotata solo per gruppi di ospiti di età minima 18 anni.

    Il valore di <MinAge> deve essere un numero intero positivo compreso tra 0 e 99 inclusi.

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

Non è necessario includere tutti gli elementi secondari.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL Un URL e una didascalia facoltativa per una foto di una determinata camera o di un pacchetto camera. Puoi specificare più di un <PhotoURL> per una camera o un pacchetto camera.

Questo elemento prevede i seguenti elementi secondari:

  • <URL>: specifica la posizione della foto. La posizione deve essere pubblica (non protetta da un firewall) e deve includere il protocollo (http://).
  • <Caption>: definisce la didascalia della foto. Questo elemento prevede un singolo elemento secondario, <Text>, che ha due attributi obbligatori, Text e language. L'attributo Text è la didascalia, mentre l'attributo language specifica un codice lingua di due lettere, ad esempio en.
<PhotoURL>
 <URL>http://www.example.com/image1.jpg</URL>
 <Caption>
  <Text text="A bright way to enjoy your
   mornin' cuppa tea." language="en"/>
  <Text text="Une façon lumineuse pour profiter
   de votre tasse de thé." language="fr"/>
 </Caption>
</PhotoURL>
Transaction / PropertyDataSet / RoomData / RoomFeatures 0..1 <RoomFeatures> Contiene informazioni sulle funzionalità della camera.
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle 0..1 enum

Indica lo stile di una camera di hotel giapponese.

I valori validi sono:

  • western: una camera in stile occidentale con letti.
  • japanese: una camera in stile giapponese con letti futon.
  • japanese_western: una camera in stile giapponese-occidentale con sia letti in stile occidentale che futon in stile giapponese.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Contiene il numero di <Bed> presenti nella stanza. Tieni presente che i futon giapponesi non devono essere conteggiati qui.

Ogni <Bed> ha i seguenti attributi:

  • size (facoltativo): i valori validi sono single, semi_double, double, queen e king.
Ogni <Bed> ha i seguenti elementi secondari:
  • <Width> (facoltativo): specifica la larghezza del letto. Deve avere l'attributo unit con il valore cm e l'attributo number con la larghezza del letto in centimetri interi.
  • <Length> (facoltativo): specifica la lunghezza del letto. Deve avere l'attributo unit con il valore cm e l'attributo number con la lunghezza del letto in centimetri interi.
Esempio:
<Beds>
  <Bed size="double">
    <Width unit="cm" number="140"/>
    <Length unit="cm" number="195"/>
  </Bed>
  <Bed/> <!-- Size unknown -->
</Beds>
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite 0.. enum Fornisci questo elemento quando la camera è una suite.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Fornisci questo elemento se la camera è una camera a capsule.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Indica se la camera è condivisa con altri occupanti, ad esempio i proprietari o altri ospiti. I valori validi sono shared e private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Fornisci questo elemento se la camera è un alloggio all'aperto che non ha pareti fisse, impianti idraulici e climatizzazione. Ad esempio, le camere degli hotel non sono strutture ricettive all'aperto, mentre i campeggi in cui gli ospiti soggiornano in tende e le aree di sosta per camper in cui gli ospiti portano i propri camper sono strutture ricettive all'aperto.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Fornisci questo elemento se la camera è accessibile ai disabili.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Indica se la camera è per non fumatori o fumatori. I valori validi sono non_smoking e smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Contiene informazioni su una vasca e un WC nella stanza.

L'attributo è:

  • relation (facoltativo): indica la posizione della vasca e del WC rispetto l'una all'altra. I valori validi sono together, ad esempio un bagno in cui la vasca e il WC si trovano insieme nella stessa stanza; e separate, dove la vasca e il WC hanno ciascuno spazi dedicati. Questo attributo non deve essere impostato se la camera non ha sia una vasca da bagno sia un WC.

L'elemento può includere facoltativamente i seguenti elementi secondari:

  • <Bath> (facoltativo): l'esistenza di questo elemento indica che la camera ha un bagno.

    Gli attributi sono:

    • bathtub (facoltativo): indica che il bagno ha una vasca. I valori validi sono 0 (o false) e 1 (o true).
    • shower (facoltativo): indica che il bagno ha una doccia. I valori validi sono 0 (o false) e 1 (o true).
  • <Toilet> (facoltativo): l'esistenza di questo elemento indica che la stanza ha un bagno.

    Gli attributi sono:

    • electronic_bidet (facoltativo): indica che il bagno è dotato di un bidet elettronico. I valori validi sono 0 (o false) e 1 (o true).
    • mobility_accessible (facoltativo): indica che i bagni sono accessibili alle persone con mobilità ridotta. I valori validi sono 0 (o false) e 1 (o true).

Esempio:

<BathAndToilet relation="separate">
  <Bath bathtub="1" shower="1"/>
  <Toilet
    electronic_bidet="1"
    mobility_accessible="1"/>
</BathAndToilet>
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath 0..1 enum Fornisci questo elemento se la camera dispone di un bagno privato all'aperto.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Fornisci questo elemento se la camera è dotata di aria condizionata.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Fornisci questo elemento se la camera ha un balcone o una veranda.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object Le opzioni valide includono:

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

Transaction / PropertyDataSet / PackageData 0..n PackageData

Contenitore di elementi che descrivono le caratteristiche e i termini delle tariffe che non fanno parte della descrizione fisica della camera.

Nota: è obbligatorio almeno uno tra <RoomData> e <PackageData>.

Transaction / PropertyDataSet / PackageData / PackageID 1 string In questi messaggi, PackageID corrisponde a RatePlanCode nei messaggi OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name Contenitore per il nome del pacchetto in una o più lingue.
Transaction / PropertyDataSet / PackageData / Name / Text 1..n Text Specifica il nome del pacchetto in una lingua.
Transaction / PropertyDataSet / PackageData / Name / Text / @text 1..n string Il nome del pacchetto nella lingua specificata dall'attributo language.
Transaction / PropertyDataSet / PackageData / Description 1 Description Contenitore per la descrizione del pacchetto in una o più lingue.
Transaction / PropertyDataSet / PackageData / Description / Text 1..n Text Specifica la descrizione del pacchetto in una lingua.
Transaction / PropertyDataSet / PackageData / Description / Text / @text 1..n string La descrizione del pacchetto nella lingua specificata dall'attributo language.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string Un codice lingua di due lettere.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Un contenitore per gli elementi <AllowableRoomID>.

Se <AllowableRoomIDs> è specificato, il piano tariffario identificato da <PackageID> nell'elemento <PackageData> principale può essere solo combinato con i tipi di camera definiti dagli elementi <AllowableRoomID>.

Se <AllowableRoomIDs> non è specificato, il piano tariffario identificato da <PackageID> nell'elemento <PackageData> principale può essere combinato con qualsiasi tipo di camera.

Utilizza <AllowablePackageIDs> o <AllowableRoomIDs>, ma non entrambi.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Specifica l'elemento RoomID di un tipo di camera che può essere combinato con questo piano tariffario. Il tipo di camera viene definito in un elemento <RoomData>.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Consente di indicare una tariffa come totalmente rimborsabile o annullabile. Se non viene specificato un valore, le informazioni sul rimborso non verranno visualizzate.

Nota: consigliamo di impostare tutti gli attributi. Quando non vengono impostati uno o più attributi, viene generato un messaggio di avviso relativo allo stato dei feed.

Se non imposti alcun attributo, la tariffa non viene mostrata come rimborsabile.

Quando imposti gli attributi, tieni presente quanto segue:

  • Se available o refundable_until_days non sono impostati, la tariffa non viene mostrata come rimborsabile.
  • Se available è 0 o false, gli altri attributi vengono ignorati. La tariffa non viene mostrata come rimborsabile anche se sono impostati uno o entrambi gli altri attributi.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (Obbligatorio) Deve essere impostato su 1 o true per indicare che la tariffa prevede il rimborso totale; in caso contrario, deve essere impostato su 0 o false.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (Obbligatorio se available è true) Specifica il numero di giorni prima del check-in in cui è possibile richiedere un rimborso totale. Il valore di refundable_until_days deve essere un numero intero compreso tra 0 e 330 inclusi.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (Fortemente consigliato se available è true) Specifica l'ora precisa del giorno, in base al fuso orario dell'hotel, entro cui la richiesta di rimborso totale verrà accettata. Puoi associare questo valore a refundable_until_days per specificare, ad esempio, che "i rimborsi sono disponibili fino a due giorni prima del check-in entro le ore 16:00". Se refundable_until_time non è impostato, il valore predefinito è mezzanotte.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean Specifica se il tipo di camera comprende la colazione. I valori validi sono 0 (o false) e 1 (o true).

È preferibile utilizzare <Meals> anziché <BreakfastIncluded>.

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time Orario di check-in più presto possibile nell'ora locale dell'hotel. L'ora deve essere inferiore a 24:00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time L'ora di check-out più tardi possibile nell'ora locale dell'hotel.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Specifica se la camera include l'accesso a internet gratuito, mentre nelle altre camere questo servizio non è incluso. Non impostare questo elemento in un hotel che fornisce senza costi la connessione a internet in tutte le camere. Questo elemento non si applica all'accesso cablato all'interno delle camere o all'accesso wireless che non è disponibile nelle camere degli ospiti. I valori validi sono 0 (o false) e 1 (o true).
Transaction / PropertyDataSet / PackageData / Meals 0..1 Object Contiene informazioni sui pasti inclusi in questo pacchetto.

L'elemento <Meals> prevede due elementi secondari facoltativi, <Breakfast> e <Dinner>, che hanno i seguenti attributi:

  • included (obbligatorio): impostalo su 1 (o true) se la tariffa include la colazione/la cena; in caso contrario, impostalo su 0 o false.
  • in_room (facoltativo): imposta su 1 (o true) se gli ospiti hanno la possibilità di consumare la prima colazione/la cena nella camera in cui soggiornano; in caso contrario, imposta su 0 (o false).
  • in_private_space (facoltativo): imposta su 1 (o true) se gli ospiti hanno la possibilità di fare colazione/ cena in uno spazio (tranne nella camera in cui soggiornano) dove possono evitare il contatto con altri ospiti; in caso contrario, imposta su 0 (o false).
  • buffet (facoltativo): imposta su 1 (o true) se la colazione/la cena viene servita a buffet; in caso contrario, imposta su 0 (o false).

Gli attributi facoltativi vengono utilizzati solo quando included è true.

Affinché i filtri dei pasti (no meals, breakfast only, dinner only e breakfast and dinner) funzionino, sia <Breakfast> che <Dinner> devono essere forniti con l'attributo included.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Indica se una camera include il parcheggio senza costi aggiuntivi, laddove questo servizio è a pagamento nell'hotel. Non specificare un valore per questo elemento per un hotel che offre il parcheggio gratuito. I valori validi sono 0 (o false) e 1 (o true). Il valore predefinito è false.
Transaction / PropertyDataSet / PackageData / PhotoURL 0..1 Object (come <PhotoURL> in <RoomData>, ma per il pacchetto (ad es. foto dei pasti).)

Esempi

Dati di camere e pacchetti

Di seguito è riportato un esempio di base che mostra come definire i dati del pacchetto e delle camere di una proprietà in un messaggio Transaction (Property Data). L'attributo overlay viene utilizzato per garantire che tutti i dati esistenti, se inaspettatamente esistono già, vengano eliminati e sostituiti con quelli di questo messaggio:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Description>
        <Text text="Room with a king bed" language="en"/>
      </Description>
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a king bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <Description>
        <Text text="Standard rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <Description>
        <Text text="Free breakfast rate" language="en"/>
      </Description>
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Aggiungere un tipo di stanza

Di seguito è riportato un esempio che mostra come aggiungere un pacchetto e un tipo di camera ai dati <Transaction> esistenti:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_3</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_3</PackageID>
      <Name>
        <Text text="Non-Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="false"/>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Rimuovere i tipi di camera

Di seguito è riportato un esempio che mostra come rimuovere pacchetti e tipi di camera esistenti. In questo scenario, se i messaggi in "Dati di camere e pacchetti" e "Aggiungi un tipo di camera" fossero stati inviati a Google in precedenza, i tipi di camera King e Double non esisterebbero più dopo la ricezione del messaggio mostrato da parte di Google. Tieni presente che la rimozione dei dati del pacchetto influisce sul piano tariffario complessivo come definito nei messaggi Transaction (Property Data), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ (facendo riferimento allo stesso valore PackageID) e, di conseguenza, potrebbero essere necessari aggiornamenti corrispondenti che utilizzino gli altri tipi di messaggi per indicare che PackageID_2 e PackageID_3 non sono più definiti qui.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
      <Capacity>2</Capacity>
      <PhotoURL>
        <URL>http://www.foo.com/static/bar/image.jpg</URL>
        <Caption>
          <Text text="Room with a queen bed" language="en"/>
        </Caption>
      </PhotoURL>
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Refundable" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>


Limitare i piani tariffari

Di seguito è riportato un esempio che mostra come utilizzare l'elemento <AllowablePackageIDs> per limitare i piani tariffari consentiti per un tipo di camera. In questo esempio, il tipo di camera Queen (RoomID_2) può essere combinato solo con il pacchetto e il piano tariffario identificati come PackageID_1.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <RoomData>
      <RoomID>RoomID_2</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <AllowablePackageIDs>
        <AllowablePackageID>PackageID_1</AllowablePackageID>
      </AllowablePackageIDs>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Standard" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>0</BreakfastIncluded>
    </PackageData>
    <PackageData>
      <PackageID>PackageID_2</PackageID>
      <Name>
        <Text text="Free Breakfast" language="en"/>
      </Name>
      <!-- Additional PackageData child elements omitted. -->
      <Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
      <BreakfastIncluded>1</BreakfastIncluded>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Limitare la capienza della sala

Di seguito è riportato un esempio di come utilizzare gli elementi <Capacity>, <AdultCapacity>, <ChildCapacity> per impostare limitazioni sulle capacità delle camere.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
             id="12345678"
             partner="partner_key">
  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <Name>
        <Text text="Double" language="en"/>
      </Name>
      <Capacity>4</Capacity>
      <AdultCapacity>4</AdultCapacity>
      <ChildCapacity>3</ChildCapacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>
</Transaction>

Il tipo di camera doppia (RoomID_1) può ospitare fino a 4 persone in totale. Inoltre, può ospitare fino a 4 adulti e fino a 3 bambini. Affinché questa camera sia prenotabile, devono essere soddisfatti tutti e tre i requisiti relativi alla capienza. Questa configurazione è rappresentativa di una camera tipica con due letti ciascuno per due persone. La capacità per bambini è inferiore di uno rispetto alla capacità totale perché nella camera deve essere presente almeno un adulto.

Esempi estesi con <RoomFeatures> e pasti

JapaneseHotelRoomStyle non ha un valore predefinito. L'omissione di un valore non genera un errore XML, ma la tua scheda non viene visualizzata nei risultati di ricerca quando l'utente filtra in base allo stile della camera o al numero di letti.

Due letti singoli

L'esempio seguente mostra come utilizzare <RoomFeatures>:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two single beds -->
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
          <Bed size="single">
            <Width unit="cm" number="97"/>
            <Length unit="cm" number="195"/>
          </Bed>
        </Beds>
        <Suite/>
        <Capsule/>
        <Roomsharing>private</Roomsharing>
        <Outdoor/>
        <MobilityAccessible/>
        <Smoking>non_smoking</Smoking>
        <BathAndToilet relation="separate">
          <Bath bathtub="1" shower="1"/>
          <Toilet electronic_bidet="1" mobility_accessible="1"/>
        </BathAndToilet>
        <OpenAirBath/>
        <AirConditioning/>
        <Balcony/>
        <Views>
          <LakeView/>
          <MarinaView/>
          <BeachView/>
          <ForestView/>
          <MountainView/>
          <NatureView/>
        </Views>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Due letti matrimoniali

Di seguito è riportato un esempio di camera in stile western con due double letti.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
        <Beds> <!-- Two double beds-->
          <Bed size="double"></Bed>
          <Bed size="double"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Stile giapponese senza letto

Di seguito è riportato un esempio di camera in stile giapponese senza letto. Le informazioni sui letti non sono richieste per la camera di stile japanese.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Giapponese occidentale con letto

Di seguito è riportato un esempio di camera in stile japanese_western con letto di dimensioni king.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
        <Beds>
          <Bed size="king"></Bed>
        </Beds>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>

Se il partner non dispone di informazioni sul numero di letti nelle japanese_western stanze, fai riferimento al seguente esempio:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <RoomData>
      <RoomID>RoomID_1</RoomID>
      <RoomFeatures>
        <JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
      </RoomFeatures>
    </RoomData>
  </PropertyDataSet>
</Transaction>


Pasti

L'esempio seguente definisce i metadati di camera e pacchetto per i pasti, le foto e gli orari di check-in e check-out:

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Meals Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <!-- Guests can choose to have breakfast in their room or in another
        space to avoid contact with other guests. -->
        <Breakfast included="1" in_room="1" in_private_space="1"/>
        <Dinner included="1" buffet="1"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Solo colazione

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
  <PropertyDataSet>
    <Property>1234</Property>
    <PackageData>
      <PackageID>PackageID_1</PackageID>
      <Name>
        <Text text="Breakfast Included" language="en"/>
      </Name>
      <PhotoURL>
        <Caption>
          <Text text="Breakfast" language="en"/>
          <Text text="朝食" language="ja"/>
        </Caption>
        <URL>http://example.com/static/bar/image1234.jpg</URL>
      </PhotoURL>
      <Meals>
        <Breakfast included="true"/>
        <!-- Dinner not included needs to be explicitly specified -->
        <Dinner included="false"/>
      </Meals>
      <CheckinTime>15:00</CheckinTime>
      <CheckoutTime>11:00</CheckoutTime>
    </PackageData>
  </PropertyDataSet>
</Transaction>

Risposte

Sintassi

La sintassi del messaggio TransactionResponse (Property Data) è la seguente:

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
                     id="message_ID"
                     partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</TransactionResponse>

Elementi e attributi

Il messaggio TransactionResponse (Property Data) contiene i seguenti elementi e attributi:

Elemento / @attributo Occorrenze Tipo Descrizione
TransactionResponse 1 Complex element L'elemento principale che indica se l'esito è positivo o negativo per un messaggio di richiesta Transaction ricevuto.
TransactionResponse / @timestamp 1 DateTime La data e l'ora di creazione di questo messaggio.
TransactionResponse / @id 1 string L'identificatore univoco del messaggio Transaction associato.
TransactionResponse / @partner 1 string L'account partner di questo messaggio.
TransactionResponse / Success 0..1 Success Indica che il messaggio Transaction è stato elaborato correttamente senza avvisi, errori o problemi.

In ogni messaggio è presente <Success> o <Issues>.

TransactionResponse / Issues 0..1 Issues Un contenitore per uno o più problemi riscontrati durante l'elaborazione del messaggio Transaction.

In ogni messaggio è presente <Success> o <Issues>.

TransactionResponse / Issues / Issue 1..n Issue La descrizione di un avviso, un errore o un problema riscontrato durante l'elaborazione del messaggio Transaction. Per informazioni dettagliate su questi problemi, consulta la sezione Messaggi di errore relativi allo stato dei feed.
TransactionResponse / Issues / Issue / @code 1 integer L'identificatore del problema.
TransactionResponse / Issues / Issue / @status 1 enum

Il tipo di problema riscontrato.

I valori validi sono warning, error e failure.

Esempi

Operazione riuscita

Di seguito è riportata una risposta a un messaggio Transaction elaborato correttamente.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Success/>
</TransactionResponse>

Problemi

Di seguito è riportata una risposta a un messaggio Transaction non elaborato a causa di errori.

<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
                     id="12345678"
                     partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</TransactionResponse>