Descripción general
El mensaje de ARI Transaction (Property Data) define la información sobre los tipos de habitaciones y los paquetes (o planes de tarifas) de cada propiedad. Los datos de cada tipo de habitación incluyen un identificador único (RoomID), un nombre localizado, una descripción y URLs a fotos de la habitación. Los datos de cada paquete incluyen un identificador único (PackageID), un nombre localizado, una descripción, la ocupación y los beneficios adicionales.
Puedes usar un mensaje de transacción para hacer lo siguiente:
- Define datos para una o más propiedades.
- Define el tipo de habitación y la información del paquete para cada propiedad.
- Controlar las ofertas de productos
Además, puedes configurar acciones para hacer lo siguiente:
Agrega un tipo de habitación y un paquete a una propiedad.
Quita un tipo de habitación y un paquete de una propiedad.
Agregar puntos de lealtad, un programa de recompensas a un paquete o propiedad
Para ver ejemplos de mensajes de transacción, consulta Ejemplos de transacciones (datos de la propiedad).
Elementos obligatorios y opcionales
La referencia de XML proporciona descripciones de los elementos obligatorios y opcionales. Para obtener detalles sobre los atributos y los elementos secundarios, consulta Transaction (Property Data) Elements & Attributes.
Sintaxis y esquemas
Usa el ejemplo de sintaxis de la transacción (datos de la propiedad) como referencia cuando crees el mensaje de transacción para asegurarte de que sigues el formato correcto.
Puedes usar una herramienta XML de terceros, como xmllint, para validar tus feeds con los esquemas publicados antes de enviarlos a Google. Para ver el esquema del mensaje de transacción, consulta Esquemas de Anuncios de hoteles.
Lineamientos
Usa los siguientes lineamientos para un mensaje de Transaction:
- Acciones:
delta: Se usa para agregar o actualizar nuevos tipos de habitaciones y paquetes (planes de tarifas).overlay: Se usa para reemplazar todos los tipos de habitación y paquetes de una propiedad por un conjunto nuevo. Debe incluir información sobre todos los tipos de habitación y planes de tarifas que aún quieras vender.- Idiomas admitidos:
Especifica de uno a dos idiomas (inglés y un idioma local para la propiedad, si es necesario) para los campos Nombre, Descripción y Subtítulo. Puedes agregar más de dos idiomas si es necesario.
- Tipos de habitaciones y paquetes:
Cuando actualices un tipo de habitación o paquete, debes enviar toda la información relacionada con ese tipo de habitación o paquete. Por ejemplo, cuando agregas una foto, también debes incluir el nombre y la descripción.
<AllowablePackageIDs>y<AllowableRoomIDs>son opcionales y, si no se configuran, se puede realizar cualquier combinación de tipo de habitación y plan de tarifas. De todos modos, debes enviar la disponibilidad y las tarifas con los IDs del tipo de habitación y del plan de tarifas. Estos elementos te permiten controlar los productos y desactivar las combinaciones que tu sistema ya no admite.Envía a Google una actualización del mensaje de transacción cada vez que haya un cambio en los tipos de habitación o paquetes, o detalles importantes sobre los tipos de habitación o paquetes que deban agregarse.
- Puntos de lealtad:
Para incluir o excluir el programa de recompensas en tu paquete, configura una configuración de puntos de lealtad con Google. Se mostrarán los puntos obtenidos asociados a ese paquete. Obtén más información sobre los puntos de lealtad.
Usa el elemento
<MilesIncluded>para definir o actualizar tu campaña de lealtad. Consulta Transaction(datos de la propiedad) para obtener más información. Los puntos de lealtad se pueden incluir con<PackageData>.
Ejemplo
En esta sección, se proporciona un ejemplo básico de un mensaje de ARI Transaction con elementos obligatorios y opcionales. Para agregar o actualizar tipos de habitaciones y paquetes, usa una acción para delta para agregar o actualizar tipos de habitaciones y paquetes, o overlay para reemplazar todas las definiciones de tipos de habitaciones y paquetes (borra las entradas anteriores).
Debes especificar de uno a dos idiomas (inglés y un idioma local para la propiedad, si es necesario) para los campos Nombre, Descripción y Subtítulo. Luego, agrega la información de los datos de la propiedad, incluidos los vínculos a las fotos.
Para <PropertyID> y <RoomID>, usa los mismos IDs que usas en tu sistema para los planes de tarifas y los tipos de habitación (respectivamente). La coherencia con tu sistema es fundamental para garantizar que Google muestre correctamente tus precios y datos.
Una vez que prepares el archivo, debes enviarlo a Google a través de un mensaje POST al siguiente extremo: https://www.google.com/travel/hotels/uploads/property_data
Para obtener más información sobre cómo enviar el mensaje con POST, consulta Envío de mensajes.
En el siguiente ejemplo, se muestra cómo configurar el mensaje de Transaction con una acción delta:
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="202X-XX-XXT00:00:00-0X:00" id="12345678" partner="partner_key">
<PropertyDataSet action="delta">
<Property>PROPERTYID</Property>
<RoomData>
<RoomID>ROOMID</RoomID>
<Name><Text text="ROOM NAME" language="en"/></Name>
<Description>
<Text text="ROOM DESCRIPTION TEXT" language="en"/>
</Description>
<Capacity>4</Capacity>
<PhotoURL>
<Caption><Text text="ROOM PHOTO CAPTION TEXT" language="en"/></Caption>
<URL>https://LINK TO PHOTO</URL>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>BASE</PackageID>
<Name><Text text="Internet Special" language="en"/></Name>
<Description><Text text="Direct Booking through Hotel Website" language="en"/></Description>
<Refundable available="true" refundable_until_days="2" refundable_until_time="12:00"/>
</PackageData>
</PropertyDataSet>
</Transaction>
Para obtener más ejemplos, como cómo usar la acción overlay, agregar un tipo de habitación y un paquete a los datos de la propiedad existentes, y quitar los tipos de habitación y los paquetes existentes, consulta Ejemplos de Transaction (Property Data).
Instructivos
En esta sección, se proporcionan soluciones para las situaciones que puedes encontrar cuando envías mensajes de transacciones.
Situación 1: Cómo quitar los datos del tipo de habitación
¿Cómo quito los datos existentes del tipo de habitación o paquete?
Descripción
Enviaste varios tipos de habitaciones, incluidas las habitaciones King y Queen, para la propiedad. Todos los tipos de habitaciones con cama Queen no están disponibles durante la remodelación, y solo están disponibles los tipos de habitaciones con cama King.
Solución
- No es necesario que actualices la disponibilidad, las tarifas ni el inventario nocturnos de los IDs de tipo de habitación y paquete que se quitaron o desactivaron.
- Si se quitó o desactivó el tipo de habitación o el paquete, envía un nuevo mensaje de Transaction con
action="overlay"que solo incluya los tipos de habitación y los paquetes que aún estén activos, y excluya el tipo de habitación o el paquete quitado.
Muestra
En este fragmento de XML, se muestra cómo usar la acción overlay para quitar un tipo de habitación.
Esta es la acción de delta original que incluye los tipos de habitación King y Queen:
<PropertyDataSet action="delta">
<Property>Property_1</Property>
<RoomData>
<RoomID>King</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Capacity>2</Capacity>
</RoomData>
<PackageData>
<PackageID>Standard</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>
<RoomData>
<RoomID>Queen</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<Capacity>2</Capacity>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
</PropertyDataSet>
Luego, puedes establecer overlay para quitar el tipo de habitación Queen y conservar el tipo de habitación King:
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>King</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Capacity>2</Capacity>
</RoomData>
<PackageData>
<PackageID>Standard</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>
</PropertyDataSet>
Situación 2: Cómo controlar productos con AllowablePackageIDs
¿Cómo controlo los productos (combinaciones de tipos de habitación y paquetes) cuando los paquetes se agrupan por tipo de habitación?
Descripción
Tienes ciertos paquetes que solo están disponibles para ciertos tipos de habitaciones. Por ejemplo, si tu propiedad tiene cuatro tipos de habitaciones (incluida la suite presidencial) y seis paquetes diferentes, pero solo algunos paquetes son aptos para la suite presidencial, puedes especificar la elegibilidad.
Solución
Envía un mensaje de Transaction actualizado que especifique qué productos se incluyen en el paquete con <AllowablePackageIDs>.
Muestra
En este fragmento de XML, se muestra cómo usar <AllowablePackageIDs> para especificar los paquetes que se usan con un determinado tipo de habitación. Aquí, el tipo de habitación suite Penthouse solo permite el paquete con todo incluido Penthouse o el paquete con desayuno incluido, mientras que el tipo de habitación suite King solo permite el paquete con todo incluido King o el paquete apto para mascotas.
<RoomData>
<RoomID>penthouse_suite</RoomID>
<AllowablePackageIDs>
<AllowablePackageID>penthouse_all_inclusive</AllowablePackageID>
<AllowablePackageID>free_breakfast</AllowablePackageID>
</AllowablePackageIDs>
<!-- Additional child elements omitted. -->
</RoomData>
<RoomData>
<RoomID>king_suite</RoomID>
<AllowablePackageIDs>
<AllowablePackageID>king_all_inclusive</AllowablePackageID>
<AllowablePackageID>pet_friendly</AllowablePackageID>
</AllowablePackageIDs>
<!-- Additional child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>penthouse_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
<PackageID>free_breakfast</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
<PackageID>king_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
<PackageID>pet_friendly</PackageID>
</PackageData>
Caso 3: Cómo controlar productos con AllowableRoomIDs
¿Cómo controlo los productos (combinaciones de tipos de habitación y paquetes) cuando los tipos de habitación se agrupan por paquete?
Descripción
Una combinación de tipo de habitación y paquete ya no se vende como producto, o bien quieres controlar lo que se incluye en un paquete nuevo. Por ejemplo, si deseas especificar solo ciertos tipos de habitaciones, como habitaciones King y Queen con vista al mar, con un paquete.
Solución
Envía un mensaje de transacción actualizado que especifique los productos exactos incluidos en el paquete con el elemento <AllowableRoomIDs>.
Muestra
En este fragmento de XML, se muestra cómo usar <AllowableRoomID> para especificar los tipos de habitación King y Queen con vista al mar en el paquete.
<PackageID>RO</PackageID>
<AllowableRoomIDs>
<AllowableRoomID>king_oceanview</AllowableRoomID>
<AllowableRoomID>queen_oceanview</AllowableRoomID>
</AllowableRoomIDs>