Solicitudes
Sintaxis
El mensaje Transaction (Property Data) usa la siguiente sintaxis:
<?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>
Elementos y atributos
El mensaje Transaction (Property Data) tiene los siguientes elementos y atributos:
| Elemento o @Attribute | Casos | Tipo | Descripción |
|---|---|---|---|
| Transaction | 1 | Complex element | En una implementación del ARI, este es el elemento raíz de un mensaje que define los tipos de habitación y los paquetes para una sola propiedad. |
| Transaction / @timestamp | 1 | DateTime | Fecha y hora de creación de este mensaje. |
| Transaction / @id | 1 | string | Es un identificador único para este mensaje de solicitud. Este valor se muestra en el mensaje de respuesta. Los caracteres permitidos son a-z, A-Z, 0-9, _ (guion bajo) y - (guion). |
| Transaction / @partner | 1 | string | Es la cuenta de socio de este mensaje. Este valor de cadena es el valor de "Clave de socio" que se indica en la
página Configuración de la cuenta de Hotel Center.
Nota: Si tienes un backend que proporciona feeds para varias cuentas, este valor debe coincidir con el valor del atributo |
| Transaction / PropertyDataSet | 1.. | PropertyDataSet | Es un contenedor para definir los tipos de habitación y los paquetes de una sola propiedad.
Se recomienda que envíes |
| Transaction / PropertyDataSet / @action | 0..1 | enum | Es el tipo de actualización que se aplicará a las definiciones de tarifas de habitaciones. Estos son los valores válidos:
Este atributo es opcional y su valor predeterminado es |
| Transaction / PropertyDataSet / Property | 1 | string | Es el identificador único de la propiedad. Este valor debe coincidir con el ID del hotel especificado con
<id> en el elemento <listing> del feed de lista de hoteles. El ID del hotel también se indica en Hotel Center. |
| Transaction / PropertyDataSet / RoomData | 0..n | RoomData | Describe una habitación. Nota: Se requiere al menos uno de los valores |
| Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | Es un identificador único para un tipo de habitación. Se hace referencia a este valor con el atributo InvTypeCode en el elemento <StatusApplicationControl> de los mensajes <OTA_HotelAvailNotifRQ>, <OTA_HotelRateAmountNotifRQ> y <OTA_HotelInvCountNotifRQ>. |
| Transaction / PropertyDataSet / RoomData / Name | 1 | Name | Es un contenedor para el nombre de la categoría de la habitación en uno o más idiomas. |
| Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | Especifica el nombre de la categoría de la habitación en un idioma. |
| Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | Nombre de la categoría de habitación en el idioma especificado por el atributo language. |
| Transaction / PropertyDataSet / RoomData / Description | 1 | Name | Es un contenedor para la descripción de la categoría de habitación en uno o más idiomas. |
| Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | Especifica la descripción de la categoría de la habitación en un idioma. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | Es la descripción de la categoría de habitación en el idioma especificado por el atributo language. |
| Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | Un código de idioma de dos letras. |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | Es un contenedor para elementos <AllowablePackageID>.
Si se especifica Si no se especifica Usa |
| Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | Especifica el PackageID de un plan de tarifas que se puede combinar con este
tipo de habitación. Un plan de tarifas se define por una combinación de paquete, tarifas y disponibilidad. El PackageID corresponde al RatePlanCode en los mensajes OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ.
|
| Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | Es la cantidad máxima de adultos y niños que una habitación puede albergar físicamente. Este valor debe ser mayor o igual que cualquier valor de NumberOfGuests que envíes con las tarifas.
El valor de Nota: Si no se establece |
| Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | Es la cantidad máxima de adultos que una habitación puede alojar físicamente. Este valor debe ser mayor o igual que cualquier valor de NumberOfGuests que envíes con las tarifas.
El valor de |
| Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | Es la cantidad máxima de niños que una habitación puede alojar físicamente.
El valor de |
| Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | Es la configuración que puede restringir o modificar los requisitos de ocupación de una habitación.
El elemento
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> No es necesario incluir todos los elementos secundarios. |
| Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | Es una URL y un título opcional para una foto de la habitación o el paquete de habitaciones determinado. Puedes especificar más de un <PhotoURL> para una habitación o un paquete de habitaciones.
Este elemento toma los siguientes elementos secundarios:
<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 información sobre las características de la habitación. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | Indica el estilo de una habitación de hotel japonesa. Estos son los valores válidos:
|
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | Contiene tantos <Bed> como tiene la habitación. Ten en cuenta que aquí no se deben incluir los futones japoneses.
Cada
<Bed> tiene los siguientes elementos secundarios:
<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 | Proporciona este elemento cuando la habitación sea una suite. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | Proporciona este elemento cuando la habitación sea una cápsula. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | Indica si esta habitación se comparte con otros ocupantes, como propietarios o huéspedes. Los valores válidos son shared y private. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | Proporciona este elemento cuando la habitación sea un alojamiento al aire libre que no tenga paredes fijas, plomería ni control de clima. Por ejemplo, las habitaciones de hotel no son alojamientos al aire libre, mientras que los campamentos donde los huéspedes se alojan en carpas y los parques para autocaravanas donde los huéspedes traen sus propias autocaravanas sí lo son. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | Proporciona este elemento cuando la habitación sea accesible para personas con movilidad reducida. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | Indica si la habitación es para fumadores o no fumadores. Los valores válidos son non_smoking y smoking. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | Contiene información sobre el baño y el inodoro de la habitación.
El atributo es el siguiente:
De manera opcional, el elemento toma los siguientes elementos secundarios:
Ejemplo: <BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet
electronic_bidet="1"
mobility_accessible="1"/>
</BathAndToilet> |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | Proporciona este elemento cuando la habitación tenga un baño privado al aire libre. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | Proporciona este elemento cuando la habitación tenga aire acondicionado. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | Proporciona este elemento cuando la habitación tenga balcón o terraza. |
| Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | Las opciones válidas incluyen las siguientes:
|
| Transaction / PropertyDataSet / PackageData | 0..n | PackageData | Es un contenedor para los elementos que describen las características y las condiciones de las tarifas que no forman parte de la descripción física de la habitación. Nota: Se requiere al menos uno de los valores |
| Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | PackageID en estos mensajes corresponde a RatePlanCode en los mensajes OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ. |
| Transaction / PropertyDataSet / PackageData / Name | 1 | Name | Es un contenedor para el nombre del paquete en uno o más idiomas. |
| Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | Especifica el nombre del paquete en un idioma. |
| Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | Nombre del paquete en el idioma especificado por el atributo language. |
| Transaction / PropertyDataSet / PackageData / Description | 1 | Description | Contenedor para la descripción del paquete en uno o más idiomas. |
| Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | Especifica la descripción del paquete en un idioma. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | Es la descripción del paquete en el idioma especificado por el atributo language. |
| Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | Un código de idioma de dos letras. |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | Es un contenedor para elementos <AllowableRoomID>.
Si se especifica Si no se especifica Usa |
| Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | Especifica el RoomID de un tipo de habitación que se puede combinar con este plan de tarifas. Un tipo de habitación se define en un elemento <RoomData>.
|
| Transaction / PropertyDataSet / PackageData / MilesIncluded | 0..1 | MilesIncluded | Agrega información de puntos de lealtad a los paquetes según cómo se definan los planes de tarifas o los paquetes. Especifica el elemento <MilesIncluded> dentro del elemento <PackageData> que define el plan de tarifas.
<MilesIncluded> tiene el siguiente elemento secundario:
|
| Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | Permite indicar que una tarifa es totalmente reembolsable o cancelable. Si no se proporciona, no se muestra información sobre el reembolso.
Nota: Te recomendamos que establezcas todos los atributos. Se genera un mensaje de advertencia sobre el estado del feed cuando no se configuran uno o más atributos. Si no configuras ningún atributo, la tarifa no se mostrará como reembolsable. Cuando establezcas los atributos, ten en cuenta lo siguiente:
|
| Transaction / PropertyDataSet / PackageData / Refundable / @available | 1 | boolean | (Obligatorio) Se debe establecer en 1 o true para indicar si la tarifa permite un reembolso completo; de lo contrario, se debe establecer en 0 o false. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Obligatorio si available es true) Especifica la cantidad de días de anticipación al check-in con los que se puede solicitar un reembolso total. El valor de refundable_until_days debe ser un número entero entre 0 y 330, inclusive. |
| Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (Muy recomendable si available es true) Especifica la hora del día más reciente, en la hora local del hotel, en la que se aceptará una solicitud de reembolso total. Se puede combinar con refundable_until_days para especificar, por ejemplo, que "los reembolsos están disponibles hasta las 4 p.m. dos días antes del registro de entrada". Si no se establece refundable_until_time, el valor predeterminado es la medianoche. |
| Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | Especifica si este tipo de habitación incluye desayuno.
Los valores válidos son 0 (o false) y 1 (o true).
Se recomienda usar |
| Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | Es la hora de entrada más temprana posible en la hora local del hotel. La hora debe ser anterior a las 24:00. |
| Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | Es la hora de salida más tardía posible en la hora local del hotel. |
| Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | Especifica si la habitación incluye acceso a Internet de cortesía, mientras que otras habitaciones no incluyen este servicio. No establezcas este elemento en un hotel que proporcione Internet sin costo adicional en todas las habitaciones. Este elemento no se aplica a Internet con cable en la habitación ni a Internet inalámbrico que no esté disponible en las habitaciones de huéspedes. Los valores válidos son 0 (o false) y 1 (o true).
|
| Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | Contiene información sobre las comidas de este paquete.
El elemento
Los atributos opcionales solo se usan cuando Para que funcionen los filtros de comida ( |
| Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | Indica si una habitación incluye estacionamiento sin cargo, en el caso de que, de lo contrario, el estacionamiento sería un servicio pagado en este hotel. No especifiques un valor para este elemento en el caso de un hotel que ofrece estacionamiento gratuito.
Los valores válidos son 0 (o false) y 1 (o true). El valor predeterminado es false.
|
| Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (Igual que <PhotoURL> en <RoomData>, pero para el paquete [p.ej., fotos de comidas]).
|
Ejemplos
Datos de la habitación y el paquete
A continuación, se muestra un ejemplo básico de cómo definir los datos de la habitación y el paquete de una propiedad en un mensaje de Transaction (Property Data). El atributo overlay se usa para garantizar que, si ya existen datos de forma inesperada, se borren todos los datos existentes y se reemplacen por los datos de este mensaje:
<?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>
Cómo agregar un tipo de habitación
A continuación, se muestra un ejemplo de cómo agregar un tipo de habitación y un paquete a los datos de <Transaction> existentes:
<?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>
Cómo quitar tipos de habitaciones
A continuación, se muestra un ejemplo de cómo quitar los tipos de habitaciones y los paquetes existentes. En este caso, si los mensajes de "Datos de habitación y paquete" y "Agregar un tipo de habitación" se hubieran enviado a Google anteriormente, los tipos de habitación King y Double ya no existirían una vez que Google recibiera el mensaje que se muestra. Ten en cuenta que quitar los datos del paquete afecta el plan de tarifas general, tal como se define en los mensajes de Transaction (datos de la propiedad), OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ (haciendo referencia al mismo valor de PackageID), por lo que es posible que se requieran las actualizaciones correspondientes con los otros tipos de mensajes para reflejar que PackageID_2 y PackageID_3 ya no se definen aquí.
<?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>
Restringe planes de tarifas
A continuación, se muestra un ejemplo de cómo usar el elemento <AllowablePackageIDs> para restringir los planes de tarifas permitidos para un tipo de habitación. En este ejemplo, el tipo de habitación Queen (RoomID_2) solo se puede combinar con el paquete y el plan de tarifas identificados como 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>
Cómo restringir la capacidad de la sala
A continuación, se muestra un ejemplo de cómo usar los elementos <Capacity>, <AdultCapacity> y <ChildCapacity> para establecer restricciones en la capacidad de las habitaciones.
<?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>
El tipo de habitación Doble (RoomID_1) puede tener hasta 4 huéspedes en total. Además, puede tener hasta 4 adultos y hasta 3 niños. Se deben cumplir los tres requisitos de capacidad para que se pueda reservar esta sala. Esta configuración representa una habitación típica con dos camas en las que caben dos personas en cada una. La capacidad de niños es una menos que la capacidad total, ya que la habitación debe tener al menos un adulto presente.
Ejemplos extendidos con <RoomFeatures> y comidas
JapaneseHotelRoomStyle no tiene un valor predeterminado.
Omitir un valor no genera un error de XML, pero tu ficha no se muestra en los resultados de la búsqueda cuando el usuario filtra por estilo de habitación o camas.
Dos camas individuales
En el siguiente ejemplo, se muestra cómo usar <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>
Dos camas dobles
A continuación, se muestra un ejemplo de una habitación de estilo western con dos camas 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>
Estilo japonés sin cama
A continuación, se muestra un ejemplo de una habitación de estilo japonés sin cama. No se requiere información sobre la cama para la habitación de estilo 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>
Japonesa occidental con cama
A continuación, se muestra un ejemplo de una habitación de estilo japanese_western con una cama de tamaño 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>
Si el socio no tiene la información sobre la cantidad de camas en las habitaciones de japanese_western, consulta el siguiente ejemplo:
<?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>
Comidas
En el siguiente ejemplo, se definen los metadatos de la habitación y el paquete para las comidas, las fotos y los horarios de entrada y salida:
<?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 desayuno
<?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>
Respuestas
Sintaxis
El mensaje TransactionResponse (Property Data) usa la siguiente sintaxis:
<?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>
Elementos y atributos
El mensaje TransactionResponse (Property Data) tiene los siguientes elementos y atributos:
| Elemento o @Attribute | Casos | Tipo | Descripción |
|---|---|---|---|
| TransactionResponse | 1 | Complex element | Es el elemento raíz que indica el éxito o los problemas de un mensaje de solicitud de transacción recibido. |
| TransactionResponse / @timestamp | 1 | DateTime | Fecha y hora de creación de este mensaje. |
| TransactionResponse / @id | 1 | string | Es el identificador único del mensaje Transaction asociado. |
| TransactionResponse / @partner | 1 | string | Es la cuenta de socio de este mensaje. |
| TransactionResponse / Success | 0..1 | Success | Indica que el mensaje de transacción se procesó correctamente sin advertencias, errores ni fallas.
|
| TransactionResponse / Issues | 0..1 | Issues | Es un contenedor para uno o más problemas que se encontraron durante el procesamiento del mensaje de transacción.
|
| TransactionResponse / Issues / Issue | 1..n | Issue | Es la descripción de una advertencia, un error o una falla que se produjo durante el procesamiento del mensaje de Transaction. Puedes encontrar detalles sobre estos problemas en Mensajes de error sobre el estado del feed. |
| TransactionResponse / Issues / Issue / @code | 1 | integer | Es el identificador del problema. |
| TransactionResponse / Issues / Issue / @status | 1 | enum | Es el tipo de problema que se encontró. Los valores válidos son |
Ejemplos
Listo
A continuación, se muestra una respuesta a un mensaje de Transaction que se procesó correctamente.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
Problemas
A continuación, se muestra una respuesta a un mensaje de Transaction que no se procesó debido a errores.
<?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>