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>
<!-- Add Loyalty point information -->
<MilesIncluded>
<LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
<!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
<NumberOfMiles>integer</NumberOfMiles>
</MilesIncluded>
<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 |
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | Un contenitore per la definizione di pacchetti e tipi di camera di una singola
proprietà.
Ti consigliamo di inviare
|
| Transaction / PropertyDataSet / @action | 0..1 | enum | Il tipo di aggiornamento da applicare alle definizioni della tariffa della camera. I valori validi sono:
Questo attributo è facoltativo e viene impostato su |
| Transaction / PropertyDataSet / Property | 1 | string | L'identificatore univoco della proprietà. 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 stanza. Nota: è obbligatorio almeno uno tra |
| 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 Se Utilizza |
| 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 Nota: se |
| 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 |
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Il numero massimo di bambini che una camera può ospitare
fisicamente.
Il valore di |
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Impostazioni che possono limitare o modificare i requisiti di occupazione di una stanza.
L'elemento
<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:
<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 stanza. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | Indica lo stile di una camera d'hotel giapponese. I valori validi sono:
|
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Contiene tanti <Bed> quanti ne ha la stanza. Tieni presente
che i futon giapponesi non devono essere conteggiati qui.
Ogni
<Bed> ha i seguenti elementi secondari:
<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 quando la camera è una capsula. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | Indica se la stanza è condivisa con altri occupanti, come proprietari
o altri ospiti. I valori validi sono shared e private. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | Fornisci questo elemento quando la camera è una sistemazione all'aperto che non dispone di pareti fisse, impianti idraulici e climatizzazione. Ad esempio, le camere d'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 il proprio camper sono strutture ricettive all'aperto. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | Fornisci questo elemento quando la stanza è accessibile alle persone con mobilità ridotta. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | Indica se questa camera è per non fumatori o per fumatori. I valori
validi sono non_smoking e smoking. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | Contiene informazioni su bagno e toilette in camera.
L'attributo è:
L'elemento prevede facoltativamente i seguenti elementi secondari:
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 quando la camera dispone di una vasca privata all'aperto. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | Fornisci questo elemento quando la camera è dotata di aria condizionata. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | Fornisci questo elemento quando la camera ha un balcone o una veranda. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | Le opzioni valide includono:
|
| 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 |
| 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 Se Utilizza |
| 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 / MilesIncluded | 0..1 | MilesIncluded | Aggiungi informazioni sui punti fedeltà ai pacchetti in base a come sono definiti i piani tariffari
o i pacchetti. Specifica l'elemento <MilesIncluded>
all'interno dell'elemento <PackageData> che definisce il piano tariffario.
<MilesIncluded> ha il seguente elemento secondario:
|
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Consente di indicare una tariffa come totalmente rimborsabile o cancellabile. 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:
|
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Obbligatorio) Deve essere impostato su 1 o
true per indicare se 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 |
| Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | Orario di check-in più anticipato possibile nell'ora locale dell'hotel. L'ora deve essere inferiore alle 24:00. |
| Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | L'ora di check-out più recente possibile nell'ora locale dell'hotel. |
| Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | Specifica se la camera include l'accesso a internet gratuito,
mentre le altre camere non includono questo servizio. Non impostare questo elemento in
un hotel che fornisce senza costi la connessione 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
Gli attributi facoltativi vengono utilizzati solo quando Affinché i filtri per pasto ( |
| 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 del pasto).)
|
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>
<MilesIncluded>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
<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 camera
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 camere
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 (tramite riferimento allo stesso valore PackageID),
pertanto potrebbero essere necessari aggiornamenti corrispondenti utilizzando gli altri tipi di messaggio
per riflettere il fatto 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 stanza
Di seguito è riportato un esempio di come utilizzare gli elementi <Capacity>, <AdultCapacity> e
<ChildCapacity> per impostare limitazioni alle 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 3 bambini. Tutti e tre i requisiti di capacità devono essere soddisfatti affinché questa stanza possa essere prenotata. Questa configurazione è rappresentativa di una camera tipica con due letti che possono ospitare due persone ciascuno. La capacità di 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 comporta un errore XML, ma la tua scheda non viene
mostrata nei risultati di ricerca quando l'utente filtra per stile della camera o 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 letti double.
<?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
sul letto non sono necessarie per la camera in 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 delle informazioni sul numero di letti nelle camere japanese_western, fai riferimento all'esempio seguente:
<?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 pasti, foto e 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 |
| TransactionResponse / Issues | 0..1 | Issues | Un contenitore per uno o più problemi riscontrati durante l'elaborazione del
messaggio Transaction.
In ogni messaggio è
presente |
| 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 |
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>