Descripción general
El mensaje 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 las fotos de la habitación. Cada paquete de datos incluye un identificador único (PackageID
), un nombre, una descripción, una ocupación y elementos de valor agregado localizados.
Puedes usar un mensaje de transacción para hacer lo siguiente:
- Define los datos de una o más propiedades.
- Define la información del tipo de habitación y el paquete para cada propiedad.
- Controla 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.
Agrega puntos de lealtad, un programa de recompensas, a un paquete o una propiedad.
Para ver ejemplos de mensajes de transacción, consulta Ejemplos de transacciones (datos de propiedad).
Elementos obligatorios y opcionales
En la Referencia de XML, se proporcionan descripciones de los elementos obligatorios y opcionales. Para obtener detalles sobre los atributos y los elementos secundarios, consulta Elementos y atributos de transacción (datos de propiedad).
Sintaxis y esquemas
Usa el ejemplo de sintaxis de transacciones (datos de propiedades) como referencia cuando crees el mensaje de transacción para asegurarte de que estás siguiendo 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 obtener el esquema de mensajes de transacción, consulta Esquemas de Anuncios de hoteles.
Lineamientos
Usa los siguientes lineamientos para un mensaje de transacción:
- Acciones:
delta
: Úsalo para agregar o actualizar nuevos tipos de habitaciones y paquetes (planes de tarifas).overlay
: Úsalo para reemplazar todos los tipos de habitaciones y paquetes de una propiedad por un conjunto nuevo. Debe incluir información sobre todos los tipos de habitaciones y planes de tarifas que aún deseas vender.- Compatibilidad con idiomas:
Especifica uno o dos idiomas (inglés y un idioma local para la propiedad, si es necesario) para los campos Nombre, Descripción y Subtítulo. Si es necesario, puedes agregar más de dos idiomas.
- Tipos de habitaciones y paquetes:
Cuando actualices un tipo de habitación o un paquete, debes enviar toda la información relacionada con ese tipo de habitación o paquete. Por ejemplo, cuando agregues una foto, también debes incluir el nombre y la descripción.
<AllowablePackageIDs>
y<AllowableRoomIDs>
son opcionales y, si no se establecen, se puede realizar cualquier combinación de tipo de habitación y plan de tarifas. Aún debes enviar la disponibilidad y las tarifas con los IDs de los tipos de habitación y los planes 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 se deben agregar.
- 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 que están asociados con 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 Transacción(datos de 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 transacción de ARI 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 uno o 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 información de los datos de la propiedad, incluidos vínculos a fotos.
Para <PropertyID>
y <RoomID>
, usa los mismos IDs que usas en tu sistema para los planes de tarifas y los tipos de habitaciones (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 o publicar el mensaje, consulta Cómo enviar mensajes.
En el siguiente ejemplo, se muestra cómo configurar el mensaje de transacción 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 propiedad existentes, y quitar tipos de habitaciones y paquetes existentes, consulta Ejemplos de Transaction (Property Data).
Instructivos
En esta sección, se proporcionan soluciones para situaciones que puedes encontrar cuando envías mensajes de transacción.
Situación 1: Cómo quitar datos de tipo de habitación
¿Cómo puedo quitar los datos existentes de tipos de habitaciones o paquetes?
Descripción
Enviaste varios tipos de habitaciones, incluidas las matrimoniales y las king, para la propiedad. Todos los tipos de habitaciones Queen no están disponibles durante una remodelación y, por el momento, solo están disponibles los tipos de habitaciones King.
Solución
- No es necesario que actualices la disponibilidad, las tarifas ni el inventario de las noches para el tipo de habitación y los IDs de paquetes que se quitaron o desactivaron.
- Si se quitó o desactivó el tipo de habitación o el paquete, envía un nuevo mensaje de transacción con
action="overlay"
que solo incluya los tipos de habitación y los paquetes que aún estén activos y que excluya el tipo de habitación o el paquete quitado.
Muestra
En este fragmento XML, se muestra cómo usar la acción overlay
para quitar un tipo de habitación.
Esta es la acción delta
original que incluye los tipos de habitaciones 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 configurar 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 los productos con AllowablePackageIDs
¿Cómo controlo los productos (combinaciones de tipos de habitaciones y paquetes) cuando los paquetes están agrupados 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 son aptos para la suite presidencial, puedes especificar la elegibilidad.
Solución
Envía un mensaje de transacción actualizado que especifique qué productos se incluyen en el paquete con <AllowablePackageIDs>
.
Muestra
En este fragmento XML, se muestra cómo usar <AllowablePackageIDs>
para especificar los paquetes que se usan con un tipo de habitación determinado. Aquí, el tipo de habitación Penthouse Suite solo permite el paquete Todo incluido Penthouse o el paquete Desayuno gratis, mientras que el tipo de habitación King Suite solo permite el paquete Todo incluido King o el paquete Admite 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 de éxito 3: Cómo controlar productos con AllowableRoomIDs
¿Cómo controlo los productos (combinaciones de tipos de habitaciones y paquetes) cuando los tipos de habitaciones están agrupados por paquete?
Descripción
Ya no se vende una combinación de tipo de habitación y paquete como producto, o bien quieres controlar lo que se incluye en un paquete nuevo. Por ejemplo, quieres 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 con el paquete mediante el elemento <AllowableRoomIDs>
.
Muestra
En este fragmento de XML, se muestra cómo usar <AllowableRoomID>
para especificar los tipos de habitaciones King y Queen con vista al mar en el paquete.
<PackageID>RO</PackageID>
<AllowableRoomIDs>
<AllowableRoomID>king_oceanview</AllowableRoomID>
<AllowableRoomID>queen_oceanview</AllowableRoomID>
</AllowableRoomIDs>