Mensaje de transacción (datos de propiedad)

Descripción general

El mensaje de transacción de ARI (datos de propiedad) define la información sobre los tipos de habitaciones y los paquetes (o planes de tarifas) de cada propiedad. Cada dato de tipo de habitación incluye un identificador único (RoomID), un nombre localizado, una descripción y las URLs de las fotos de las habitaciones. Cada dato de paquete incluye un identificador único (PackageID), un nombre localizado, una descripción, una ocupación y valores agregados.

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 de cada propiedad.
  • Controlar las ofertas de productos

Además, puedes configurar acciones para que realicen 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.

Para ver ejemplos de mensajes de transacción, consulta Ejemplos de transacciones (datos de 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 Elementos y atributos de transacción (datos de propiedad).

Sintaxis y esquemas

Usa el ejemplo de la sintaxis de transacción (datos de propiedad) como referencia cuando crees el mensaje de transacción para asegurarte de seguir 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

Sigue estos lineamientos para los mensajes de transacción:

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 habitaciones y paquetes de una propiedad con un conjunto nuevo. Debes incluir información de todos los tipos de habitación y los planes de tarifas que aún quieras vender.

Idiomas admitidos:

Especifica uno o dos idiomas (inglés y, si es necesario, un idioma local para la propiedad) en los campos Nombre, Descripción y Subtítulos. Puedes agregar más de dos idiomas si es necesario.

Tipos de habitaciones y paquetes:

Cuando actualizas 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 los estableces, se puede combinar el tipo de habitación y el plan de tarifas. De todos modos, debes enviar la disponibilidad y las tarifas con los IDs de tipo de habitación y plan de tarifas. Estos elementos te permiten controlar productos y desactivar combinaciones que tu sistema ya no admite.

Envía a Google una actualización del mensaje de transacción cuando se produzca un cambio en los tipos de habitaciones o paquetes, o cuando se deban agregar detalles importantes sobre los tipos de habitaciones o los paquetes que deban agregarse.

Ejemplo

En esta sección, se proporciona un ejemplo básico de un mensaje de transacción de ARI con elementos obligatorios y opcionales. Si quieres agregar o actualizar paquetes y tipos de habitación, usa una acción para delta a fin de agregar o actualizar tipos de habitaciones y paquetes, o bien para overlay para reemplazar todas las definiciones de tipos de habitación y paquetes (borra las entradas antiguas).

Debes especificar uno o dos idiomas (inglés y un idioma local para la propiedad si es necesario) en los campos Nombre, Descripción y Subtítulos. Luego, agrega la información de los datos de propiedades, incluidos los vínculos a las fotos.

En <PropertyID> y <RoomID>, usa los mismos ID 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 hayas preparado tu 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 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 ver más ejemplos, como cómo usar la acción overlay, agregar un tipo de habitación y un paquete a los datos de las propiedades existentes, y quitar los tipos de habitaciones y los paquetes existentes, consulta Ejemplos de transacciones (datos de propiedad).

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 quito los datos de paquetes o el tipo de habitación existentes?

Descripción

Envió varios tipos de habitaciones de la propiedad, incluidas habitaciones king y matrimoniales. Ningún tipo de habitación matrimonial está disponible durante una remodelación y, por el momento, solo están disponibles los tipos de habitación con cama King.

Solución

  • No es necesario que actualices la disponibilidad, las tarifas ni el inventario por noche del tipo de habitación ni los IDs de paquete que se quitaron o desactivaron.
  • Si se quitó o desactivó el tipo de habitación o 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 excluya el tipo de habitación o paquete que se quitó.

Ejemplo

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 original delta, 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 configurar overlay para quitar el tipo de habitación matrimonial y mantener 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 AllowablePackageID

¿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 determinados tipos de habitación. Por ejemplo, si tu propiedad tiene cuatro tipos de habitación (incluida la suite presidencial) y seis paquetes diferentes, pero solo unos pocos 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 mediante <AllowablePackageIDs>.

Ejemplo

En este fragmento XML, se muestra cómo usar <AllowablePackageIDs> para especificar los paquetes que se usan con un tipo de habitación determinado. En este caso, el tipo de habitación tipo suite Penthouse permite solo el paquete todo incluido Penthouse o el paquete de desayuno incluido, mientras que el tipo de habitación suite King solo admite el paquete 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>

Situación 3: Cómo controlar productos con AllowableRoomID

¿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 un producto, o quieres controlar lo que se incluye en un paquete nuevo. Por ejemplo, con un paquete, solo quieres especificar algunos tipos de habitaciones, como habitaciones king o reina con vista al mar.

Solución

Envía un mensaje de transacción actualizado que especifique los productos exactos incluidos en el paquete mediante el elemento <AllowableRoomIDs>.

Ejemplo

En este fragmento 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>