Transacción (datos de propiedad)

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>
      <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 de transacción (datos de propiedad) tiene los siguientes elementos y atributos:

Elemento / @Attribute Casos Tipo Descripción
Transaction 1 Complex element En una implementación de ARI, este es el elemento raíz de un mensaje definir los tipos de habitaciones y paquetes de una sola propiedad.
Transaction / @timestamp 1 DateTime La fecha y hora de creación de este mensaje.
Transaction / @id 1 string Un identificador único para este mensaje de solicitud. Se muestra este valor en el mensaje de respuesta. Los caracteres permitidos son a-z, A-Z, 0-9, _ (guion bajo) y - (guion).
Transaction / @partner 1 string La cuenta de socio de este mensaje. Este valor de cadena es el "Clave de socio" valor que aparece en el Página Configuración de la cuenta en Hotel Center.

Nota: Si tienes un backend que proporciona feeds para varias cuentas, este valor debe coincidir con el ID valor del atributo especificado en el archivo <RequestorID> de tu <OTA_HotelRateAmountNotifRQ> y <OTA_HotelAvailNotifRQ> mensajes para la misma cuenta.

Transaction / PropertyDataSet 1.. PropertyDataSet Un contenedor para definir los tipos de habitaciones y paquetes de una sola propiedad.
Transaction / PropertyDataSet / @action 0..1 enum

Es el tipo de actualización que se aplicará a las definiciones de tarifas de las habitaciones.

Estos son los valores válidos:

  • overlay : Reemplaza todos los valores definidos anteriormente. <RoomData> y <PackageData> para la propiedad. Solo los operadores <RoomData> y Las <PackageData> del mensaje actual son válidas.
  • delta : Añadidas que antes no estaban definidas <RoomData> y <PackageData> o modifica los existentes.

Este atributo es opcional y, si no lo es, se establece de forma predeterminada en delta especificada.

Transaction / PropertyDataSet / Property 1 string Es el identificador único de la propiedad. Este valor debe coincidir con el ID de hotel especificado con <id> en el elemento <listing> en el feed de lista de hoteles. El ID de hotel también aparece en Hotel Center.
Transaction / PropertyDataSet / RoomData 0..n RoomData

Describe una habitación.

Nota: Al menos uno de estos valores: <RoomData> o <PackageData> es obligatorio.

Transaction / PropertyDataSet / RoomData / RoomID 1 RoomID Es un identificador único para un tipo de habitación. Se hace referencia a este valor mediante el atributo InvTypeCode en la <StatusApplicationControl> elemento en <OTA_HotelAvailNotifRQ> y <OTA_HotelRateAmountNotifRQ> mensajes.
Transaction / PropertyDataSet / RoomData / Name 1 Name Contenedor del nombre de la categoría de sala en una o más idiomas.
Transaction / PropertyDataSet / RoomData / Name / Text 1..n Text Especifica el nombre de la categoría de habitación en un idioma.
Transaction / PropertyDataSet / RoomData / Name / Text / @text 1..n string El nombre de la categoría de habitación en el idioma especificado por el atributo language.
Transaction / PropertyDataSet / RoomData / Description 1 Name Contenedor de la descripción de la categoría de sala en una o más idiomas.
Transaction / PropertyDataSet / RoomData / Description / Text 1..n Text Especifica la descripción de la categoría de habitación en un idioma.
Transaction / PropertyDataSet / RoomData / Description / Text / @text 1..n string 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 Una letra de dos letras código de idioma.
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs 0..1 AllowablePackageIDs Un contenedor para elementos <AllowablePackageID>.

Si se especifica <AllowablePackageIDs>, la habitación tipo identificado por el <RoomID> en el elemento superior <RoomData> solo se pueden combinados con los planes de tarifas definidos por el <AllowablePackageID>.

Si no se especifica <AllowablePackageIDs>, la habitación tipo identificado por el <RoomID> en el elemento superior El elemento <RoomData> se puede combinar con cualquier el plan de tarifas.

Usa <AllowablePackageIDs> o <AllowableRoomIDs>, pero no ambos.

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 mediante una combinación de paquetes, tarifas y disponibilidad. El PackageID corresponde a la RatePlanCode de las Mensajes OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer La cantidad máxima de adultos y niños que puede haber en una habitación acomodarse físicamente. Debe ser mayor o igual que cualquier valor de NumberOfGuests que envíes con tarifas.

El valor de <Capacity> debe ser un número entero positivo entre 1 y 99 inclusive. Consulta aquí para ver un ejemplo.

Nota: Si no se establece <Capacity>, el número de ocupantes permitidos se considera ilimitado. Si este campo no está establecido y ExtraGuestCharges o Las AdditionalGuestAmounts están definidas, los precios se puede generar para cualquier cantidad de ocupantes. Recomendaciones que establezcas el <Capacity> si ExtraGuestCharges o AdditionalGuestAmounts se definen para garantizar que los precios no se muestran para las opciones de ocupación que no son válidas.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer La cantidad máxima de adultos que puede tener una habitación físicamente adaptar. El valor debe ser mayor o igual que cualquiera Valores NumberOfGuests que envías con tarifas.

El valor de <AdultCapacity> debe ser positivo Es un número entero entre 1 y 99, ambos incluidos. Consulta aquí para ver un ejemplo.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer Cantidad máxima de niños que se admiten en una habitación físicamente adaptar.

El valor de <ChildCapacity> debe ser positivo Es un número entero entre 1 y 99, ambos incluidos. Consulta aquí para ver un ejemplo.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings Parámetros de configuración que pueden restringir o modificar los requisitos de ocupación de un en la sala de espera.

El elemento <OccupancySettings> toma lo siguiente: los siguientes elementos secundarios:

  • <MinOccupancy>: Es la cantidad mínima de huéspedes. que pueden permanecer en una habitación. Por ejemplo, si se establece en 2, no se puede reservar esta sala para un solo huésped.

    El valor de <MinOccupancy> debe ser positivo Es un número entero entre 1 y 99, ambos incluidos.

  • <MinAge>: La edad mínima de todos los invitados se queden en una habitación. Por ejemplo, si se establece en 18, esta habitación solo se puede reservar para grupos que tengan más de 18 años de edad o una superior.

    El valor de <MinAge> debe ser un número entero positivo entre 0 y 99, inclusive.

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

No es necesario incluir todos los elementos secundarios.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL Una URL y una leyenda opcional para una foto de la habitación en cuestión o Paquete de habitación. Puedes especificar más de un <PhotoURL> por una habitación o un paquete de habitación.

Este elemento toma los siguientes elementos secundarios:

  • <URL>: Especifica la ubicación de la foto. El ubicación debe ser pública (no detrás de un firewall) y debe incluir el protocolo (http://)
  • <Caption>: Define el subtítulo de la foto. Este elemento toma un solo elemento secundario, <Text>, que tiene dos atributos obligatorios, Text y language El atributo Text es la leyenda, y el atributo language especifica un símbolo código de idioma, como en.
<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:

  • western: Una habitación de estilo occidental con camas.
  • japanese: Una habitación de estilo japonés con camas tipo futón.
  • japanese_western: Una habitación de estilo japonés occidental con camas de estilo occidental y futones de estilo japonés.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object Contiene la cantidad de <Bed> que tenga la habitación. Ten en cuenta lo siguiente: que los futones japoneses no deberían contarse aquí.

Cada <Bed> tiene los siguientes atributos:

  • size (opcional): Los valores válidos son single, semi_double, double, queen y king
Cada <Bed> tiene los siguientes elementos secundarios:
  • <Width> (opcional): Especifica el ancho de la cama. Debe tener el atributo unit con el valor cm y el atributo number con el ancho de la cama en centímetros enteros.
  • <Length> (opcional): Especifica la longitud de la cama. Debe tener el atributo unit con el valor cm y el atributo number con la longitud de la cama en centímetros enteros.
Ejemplo:
<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 esta habitación sea una suite.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule 0..1 enum Proporciona este elemento cuando esta sala sea una cápsula.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing 0..1 enum Si esta habitación se comparte con otros ocupantes, como los propietarios y otros invitados. Los valores válidos son shared y private.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor 0..1 enum Proporciona este elemento cuando esta habitación sea de un alojamiento al aire libre que no tenga tener paredes fijas, tuberías y control de clima. Por ejemplo, habitaciones de hoteles no son alojamientos al aire libre, mientras que los campamentos donde los huéspedes se hospedan en carpas y Los parques para autocaravanas, donde los huéspedes traen su propia casa rodante, son alojamientos al aire libre.
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible 0..1 enum Proporciona este elemento cuando la sala sea accesible para personas con movilidad reducida.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking 0..1 enum Indica si esta habitación es para no fumadores o para fumadores. Válida los valores son non_smoking y smoking.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object Contiene información sobre un baño y un inodoro en la habitación.

El atributo es:

  • relation (opcional): Indica cómo el baño y inodoro se colocan una en relación con la otra. Los valores válidos son together, por ejemplo, un baño donde ambos baños y el inodoro estén juntos en la misma habitación; y separate, donde el baño y el inodoro tienen y espacios. Este atributo no se debe establecer si la habitación no tiene una bañera y un inodoro.

De manera opcional, el elemento toma los siguientes elementos secundarios:

  • <Bath> (opcional): La existencia de este elemento indica que la habitación tiene un baño.

    Los atributos son los siguientes:

    • bathtub (opcional): Indica que el baño tiene una una bañera con hidromasaje en el baño. Los valores válidos son 0 (o false) y 1 (o true).
    • shower (opcional): Indica que el baño tiene una ducha. Los valores válidos son 0 (o false) y 1 (o true).
  • <Toilet> (opcional): La existencia de este elemento indica que esta habitación tiene inodoro.

    Los atributos son los siguientes:

    • electronic_bidet (opcional): Indica que el elemento inodoro tiene un bidet electrónico. Los valores válidos son 0 (o false) y 1 (o true).
    • mobility_accessible (opcional): Indica que el elemento inodoro sea accesible para personas con movilidad reducida. Los valores válidos son 0 (o false) y 1 (o true).

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 esta habitación tenga baño privado al aire libre.
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning 0..1 enum Proporciona este elemento cuando esta habitación tenga aire acondicionado.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony 0..1 enum Proporciona este elemento cuando esta habitación tenga balcón o terraza.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views 0..1 Object Entre las opciones válidas, se incluyen las siguientes:

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

Transaction / PropertyDataSet / PackageData 0..n PackageData

Contenedor de elementos que describen las características de las tarifas y los términos que no forman parte de la descripción del espacio físico.

Nota: Al menos uno de estos valores: <RoomData> o <PackageData> es obligatorio.

Transaction / PropertyDataSet / PackageData / PackageID 1 string PackageID en estos mensajes corresponde a la RatePlanCode en OTA_HotelRateAmountNotifRQ y OTA_HotelAvailNotifRQ.
Transaction / PropertyDataSet / PackageData / Name 1 Name Contenedor del 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 Es el nombre del paquete en el idioma especificado en el atributo language.
Transaction / PropertyDataSet / PackageData / Description 1 Description Contenedor de 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 La descripción del paquete en el idioma especificado en el atributo language.
Transaction / PropertyDataSet / PackageData / Description / Text / @language 1..n string Una letra de dos letras código de idioma.
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs 0..1 AllowableRoomIDs Un contenedor para elementos <AllowableRoomID>.

Si se especifica <AllowableRoomIDs>, el plan de tarifas identificados por el <PackageID> en el elemento superior <PackageData> solo se pueden junto con los tipos de habitaciones definidos por el <AllowableRoomID>.

Si no se especifica <AllowableRoomIDs>, la tarifa plan identificado por el <PackageID> en la red superior El elemento <PackageData> se puede combinar con cualquier tipo de habitación.

Usa <AllowablePackageIDs> o <AllowableRoomIDs>, pero no ambos.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID Especifica el RoomID de un tipo de habitación que se puede combinar con este el plan de tarifas. El tipo de habitación se define en una <RoomData> .
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable Permite publicar una tarifa como completamente reembolsable o cancelable. De lo contrario, no se mostrará información sobre el reembolso.

Nota: Te recomendamos configurar todos los atributos. Un feed se genera un mensaje de advertencia de estado cuando uno o más atributos sin establecer.

Si no establece ningún atributo, la tarifa no se mostrará como reembolsable.

Cuando configures los atributos, ten en cuenta lo siguiente:

  • Si es available o refundable_until_days no se establece, la tarifa no se muestra como reembolsable.
  • Si available es 0 o false, se ignoran los demás atributos. La tarifa no se muestra como reembolsable incluso si se configuran uno o ambos de los otros atributos.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (Obligatorio) Configúralo en 1 o true para indicar si la tarifa permite una refund; De lo contrario, se establecería 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 antes del registro de entrada en los que se puede obtener un reembolso total solicitado. El valor de refundable_until_days debe ser un número entero entre 0 y 330, ambos incluidos.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (muy recomendada si available es true). Especifica la última hora del día, en la hora local del hotel, que se requiere de reembolso se respetará. Esto se puede combinar con refundable_until_days para especificar, por ejemplo, "los reembolsos están disponibles hasta las 4:00 p.m. dos días antes check-in". Si no se establece refundable_until_time, el valor se establece de forma predeterminada en 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).

Es preferible que utilices <Meals> en lugar de <BreakfastIncluded>.

Transaction / PropertyDataSet / PackageData / CheckinTime 0..1 Time Hora local del hotel para el registro de entrada más temprano posible. La hora debe ser menor que 24:00.
Transaction / PropertyDataSet / PackageData / CheckoutTime 0..1 Time Es la hora de salida más reciente posible en la hora local del hotel.
Transaction / PropertyDataSet / PackageData / InternetIncluded 0..1 boolean Especifica si la habitación incluye acceso a Internet sin costo adicional mientras que otras habitaciones no incluyen este servicio. No establecer este elemento en un hotel que ofrece Internet sin costo adicional en todas las habitaciones. Este elemento no se aplica al servicio de Internet con cable o inalámbrico en la habitación que se 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 en este paquete.

El elemento <Meals> toma dos elementos secundarios opcionales elementos, <Breakfast> y <Dinner>, que tienen los siguientes atributos:

  • included (obligatorio): Establecer en 1 (o true) si la tarifa incluye desayuno o cena. de lo contrario Se establece en 0 o false.
  • in_room (opcional): Establece el valor en 1 (o true) si los huéspedes tienen la opción de desayunar o cenar en la habitación en la que se quedan; de lo contrario, se establecería en 0 (o false).
  • in_private_space (opcional): Establecer en 1 (o true) si los huéspedes tienen la opción de desayunar/ cenar en un espacio (excepto en la habitación en la que se quedan) en el que puedan evitar contacto con otros invitados; de lo contrario, se establecería en 0 (o false).
  • buffet (opcional): Establece el valor en 1 (o true) si el desayuno o la cena se sirven como buffet. De lo contrario, se establecerá en 0 (o false).

Los atributos opcionales se usan solo cuando included es true.

Para los filtros de comida (no meals, breakfast only, dinner only y breakfast and dinner) al trabajo, tanto <Breakfast> como <Dinner> necesitan que se proporcionará con el atributo included.

Transaction / PropertyDataSet / PackageData / ParkingIncluded 0..1 boolean Si una habitación incluye estacionamiento sin cargo, ¿dónde el estacionamiento sería un servicio pagado en este hotel. No especificar un valor de este elemento para 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 (Al igual que <PhotoURL> en <RoomData>, pero para el paquete (por ejemplo, fotos de comidas).

Ejemplos

Datos de habitaciones y paquetes

El siguiente es un ejemplo básico de cómo definir la habitación de una propiedad y datos del paquete en un mensaje de transacción (datos de propiedad). El overlay se usa para garantizar que, si ya existe algún dato inesperadamente, Se borran todos los datos existentes y se reemplazan 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>
      <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>

Agregar un tipo de habitación

El siguiente es un ejemplo de cómo agregar un tipo de habitación y un paquete a Datos existentes de <Transaction>:

<?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

El siguiente es un ejemplo de cómo quitar tipos de habitaciones existentes y paquetes. En este caso, si los mensajes en la lista de mensajes de "Datos de paquetes y habitaciones" y "Agrega un tipo de habitación" se enviaron a Google anteriormente, los King y Double tipos de sala dejarán de existir una vez que Google reciba el mensaje que se muestra. Ten en cuenta que quitar los datos de paquetes afecta el plan de tarifas general según lo definido en Transaction (Property Data), OTA_HotelRateAmountNotifRQ, y OTA_HotelAvailNotifRQ (mediante la referencia a los mismos PackageID) valor) y, por lo tanto, las actualizaciones correspondientes que usen los otros tipos de mensajes se requiere para reflejar que PackageID_2 y PackageID_3 ya no son que 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>


Restringir planes de tarifas

El siguiente es un ejemplo de cómo usar <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. plan de tarifas identificado 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>

Restringir la capacidad de la sala de reuniones

El siguiente es un ejemplo de cómo usar <Capacity>, <AdultCapacity> Elementos <ChildCapacity> para establecer restricciones en las capacidades de la habitación.

<?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. Las tres capacidades se deben cumplir para que se pueda reservar esta sala. Esta es representativa de una habitación típica con dos camas que cada una para dos personas. La capacidad secundaria es una menos que la capacidad total. porque la habitación debe tener al menos un adulto presente.

Ejemplos extendidos con <RoomFeatures> y comidas

JapaneseHotelRoomStyle no tiene un valor predeterminado. Si omites un valor, no se producirá un error de XML, pero la 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

El siguiente es un ejemplo de una habitación de estilo western con dos double camas.

<?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

El siguiente es un ejemplo de una habitación de estilo japonés sin cama. Cama no se requiere información 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>

Oeste japonés con cama

El siguiente es un ejemplo de una habitación de estilo japanese_western con king de un tamaño de cama.

<?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 la pareja no tiene la información sobre la cantidad de camas en japanese_western salas, 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 habitaciones y paquetes de comidas, fotos, y horas 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 lo siguiente y atributos:

Elemento / @Attribute Casos Tipo Descripción
TransactionResponse 1 Complex element El elemento raíz que indica el éxito o los problemas de una solicitud Mensaje de solicitud de transacción.
TransactionResponse / @timestamp 1 DateTime La fecha y hora de creación de este mensaje.
TransactionResponse / @id 1 string Es el identificador único del mensaje de transacción asociado.
TransactionResponse / @partner 1 string 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.

<Success> o <Issues> es presente en cada mensaje.

TransactionResponse / Issues 0..1 Issues Un contenedor para uno o más problemas encontrados durante el procesamiento del Mensaje de transacción.

<Success> o <Issues> es presente en cada mensaje.

TransactionResponse / Issues / Issue 1..n Issue La descripción de una advertencia, un error o una falla que se encontró mientras procesar el mensaje de transacción. Puedes encontrar detalles sobre estos problemas en Mensajes de error del estado del feed.
TransactionResponse / Issues / Issue / @code 1 integer Es el identificador del problema.
TransactionResponse / Issues / Issue / @status 1 enum

El tipo de problema encontrado.

Los valores válidos son warning, error, y failure.

Ejemplos

Listo

La siguiente es una respuesta a un mensaje de transacción procesado 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

La siguiente es una respuesta a un mensaje de transacción no procesado 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>