Solicitudes
Sintaxis
El mensaje OTA_HotelRateAmountNotifRQ
usa la siguiente sintaxis:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
EchoToken="message_ID"
TimeStamp="timestamp"
Version="3.0"
NotifType="[Overlay|Delta|Remove]"
NotifScopeType="[ProductRate]">
<POS>
<Source>
<RequestorID ID="partner_key"/>
</Source>
</POS>
<RateAmountMessages HotelCode="HotelID">
<RateAmountMessage>
<StatusApplicationControl Start="YYYY-MM-DD"
End="YYYY-MM-DD"
Mon="boolean_value"
Tue="boolean_value"
Weds="boolean_value"
Thur="boolean_value"
Fri="boolean_value"
Sat="boolean_value"
Sun="boolean_value"
InvTypeCode="RoomID"
RatePlanCode="PackageID"
RatePlanType="[26]" />
<Rates>
<Rate>
<BaseByGuestAmts>
<BaseByGuestAmt AmountBeforeTax="float"
AmountAfterTax="float"
CurrencyCode="currency"
NumberOfGuests="integer"/>
</BaseByGuestAmts>
<AdditionalGuestAmounts>
<AdditionalGuestAmount Amount="float"
AgeQualifyingCode="[10|8]"
MaxAge="integer"/>
</AdditionalGuestAmounts>
</Rate>
</Rates>
</RateAmountMessage>
</RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
Elementos y atributos
El mensaje OTA_HotelRateAmountNotifRQ
tiene los siguientes elementos y atributos:
Elemento / @Attribute | Occurrences | Tipo | Descripción |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Es el elemento raíz de un mensaje de tarifas. |
OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | Espacio de nombres XML. |
OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | 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 , _ (underscore) y - (dash) . |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | La fecha y hora de creación de este mensaje. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | La versión del mensaje de OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Es el tipo de notificación que se aplica a cada Estos son los valores válidos: Para comprender cómo funcionan estos atributos, consulta los ejemplos.
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | Es el alcance de Estos son los valores válidos:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Un contenedor para especificar la cuenta de socio de este mensaje (por lo general, se usa si el backend proporciona feeds de precios para varias cuentas de socios). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Es obligatorio si <POS> está presente. Es un contenedor para <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Es obligatorio si <POS> está presente. Define la cuenta de socio. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | La cuenta de socio para este mensaje. El valor de string es el valor de “Clave de socio” que aparece 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 |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Es una colección de elementos <RateAmountMessage> que definen las tarifas. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Es el identificador único de la propiedad. Este valor debe coincidir con el ID de hotel especificado mediante <id> en el elemento <listing> del feed de lista de hoteles. El ID del hotel también aparece en Hotel Center. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Un contenedor para establecer los precios de una tarifa de habitación (una combinación de tipo de habitación y plan de tarifas en un período determinado). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Define el período y los identificadores del tipo de habitación (InvTypeCode ) y el plan de tarifas (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | La fecha de inicio (según la zona horaria de la propiedad), inclusive del período. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | La fecha de finalización (según la zona horaria de la propiedad), incluida la fecha del período. Debe ser igual o mayor que el valor de start .
Si start y end son iguales, la actualización se aplicará a esa fecha. Ten en cuenta que Google admite hasta tres años de datos. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Configúralo en true o 1 para incluir los lunes de forma explícita.
Si se configura como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Configúralo en true o 1 para incluir los martes de manera explícita.
Si se configura como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Configúralo en true o 1 para incluir los miércoles de manera explícita.
Si se configura como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Configúralo en true o 1 para incluir los jueves de forma explícita.
Si se configura como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Configúralo en true o 1 para incluir los viernes de forma explícita.
Si se configura como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Configúralo en true o 1 para incluir los sábados de manera explícita.
Si se configura como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Configúralo en true o 1 para incluir los domingos de forma explícita.
Si se configura como |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Es el identificador único del inventario (tipo de habitación). Este valor se asigna a <RoomID> en un mensaje de transacción (datos de propiedad). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Un identificador único para el plan de tarifas. Este identificador se asigna a los <PackageID> en un mensaje de transacción (datos de propiedad). El plan de tarifas se define con más detalle en <StatusApplicationControl> , tanto en los mensajes <OTA_HotelRateAmountNotifRQ> como en los <OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Es un identificador que indica el tipo de modelo de precios de ARI que
se aplica a esta actualización de precios. Esto solo debe especificarse con un valor de 26 cuando se usa el modelo de precios basado en la LOS. La exclusión de este atributo indica que se trata de una actualización de precios actualizados. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Contenedor de una colección de elementos <Rate> . Si NotifType es "Remove" , no se debe especificar este elemento. De lo contrario, este elemento debe especificarse exactamente una vez. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Contenedor de una colección de elementos <BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Es la unidad por la que se especifica la duración de la estadía. El único valor admitido es "Day" , lo que significa que la duración de la estadía se especificará en días.
Para usar los precios basados en la LOS, se deben especificar |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Es la cantidad de RateTimeUnits que componen la duración de la estadía de esta tasa.
Por ejemplo, si el valor de Se multiplicarán las tasas de ocupación especificadas en este objeto Para usar los precios basados en la LOS, se deben especificar |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Contenedor para una colección de cargos base. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Especifica los precios de las habitaciones en una moneda determinada. El precio puede ser por ocupación mediante varios elementos <BaseByGuestAmt> , cada uno con un valor diferente para NumberOfGuests .
De lo contrario, el precio es aplicable para una cantidad máxima de ocupantes definida por NumberOfGuests . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
Es el precio diario de la tarifa de la habitación sin impuestos ni tarifas. Se pueden especificar Si usas promociones, el descuento se aplica a |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Precio diario de la tarifa de la habitación después de incluir los impuestos y las tarifas aplicables. Si se especifica un valor de AmountAfterTax , no es necesario enviar mensajes de <TaxFeeInfo> independientes por propiedad. Este atributo se puede usar junto con AmountBeforeTax para proporcionar las tarifas base y totales que se pueden mostrar a los usuarios de ciertas regiones.
Advertencia: Si usas promociones, te recomendamos que no uses importes de Nota: Si no se especifica |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Es el código de caracteres alfa ISO 4217 (3) para una unidad monetaria específica.
Consulta la lista de monedas admitidas. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Cantidad máxima de huéspedes que se pueden alojar con esta tarifa.
Si no se proporciona, el valor predeterminado es 2 huéspedes.
Ten en cuenta que si |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Contenedor para una colección de cargos por invitados adicionales.
Esta sintaxis es útil si las tarifas adicionales por huésped o secundarias cambian según la fecha. Considera usar el mensaje
Por ejemplo, supongamos que las tarifas base se especifican para 1 y 2 adultos.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Especifica los precios según el tipo de huésped, especificado a través de AgeQualifyingCode y, si corresponde, la edad del huésped especificada mediante MaxAge .
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Define el tipo de invitado adicional, ya sea adulto o niño. Las opciones válidas son las siguientes:
Se debe especificar |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | Se debe especificar MaxAge cuando AgeQualifyingCode es 8 . No se debe especificar cuando AgeQualifyingCode es 10 .
Varios rangos de edad secundarios se pueden especificar a través de elementos |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | El importe antes de impuestos y tarifas se suma a la tarifa base por cada
huésped adicional.
Los impuestos y las tarifas que dependen de las edades de los ocupantes deben especificarse mediante el elemento |
Ejemplos
En esta sección, se proporcionan ejemplos de código que destacan cómo hacer lo siguiente:
- Cómo configurar las tarifas base y totales
- Cómo agregar, superponer y quitar tarifas
- Cómo agregar, superponer y quitar importes adicionales de invitados
- Cómo configurar las tarifas basadas en la duración de la estadía
- Cómo agregar, superponer y quitar las tarifas basadas en la duración de la estadía
Cuando estableces los valores add
, overlay
o remove
, los períodos pueden ser iguales o diferentes según tus objetivos. Por ejemplo, puedes usar overlay
si quieres establecer solo unas pocas semanas para las festividades de diciembre, en lugar de todo el período establecido para el mensaje "Agregar tarifa". Esto reemplazará las tarifas de ocupación solo para este período.
Precios por fecha
Cómo configurar las tarifas base y las tarifas totales
Ejemplo 1
Tarifa base (sin impuestos ni tarifas) para la ocupación predeterminada (doble). En este modelo, los impuestos y las tarifas de la propiedad deben definirse con un mensaje <TaxFeeInfo>
. La tarifa base se destacará más para los usuarios que realicen búsquedas desde regiones determinadas.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ejemplo 2
Tarifa base y total para la ocupación predeterminada (doble). En este modelo, los impuestos y las tarifas no deben definirse por separado con mensajes <TaxFeeInfo>
. La tarifa base se destacará más para los usuarios que realicen búsquedas desde determinadas regiones.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ejemplo 3
Tarifa total (con impuestos y tarifas) para varias ocupaciones. En este modelo, los impuestos y las tarifas no deben definirse por separado con mensajes <TaxFeeInfo>
.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountAfterTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountAfterTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Ejemplo 4
Tarifa base y total para varios tipos de habitaciones y planes de tarifas de diferentes períodos.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" AmountAfterTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> <RateAmountMessage> <StatusApplicationControl Start="2020-05-01" End="2020-05-31" InvTypeCode="RoomID_2" RatePlanCode="PackageID_2"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" AmountAfterTax="220.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Cómo agregar, superponer y quitar tarifas
Agregar tarifas
Configura NotifType
como Delta
para agregar tarifas por ocupación de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021. Ten en cuenta que Google admite hasta tres años de datos.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> <BaseByGuestAmt AmountBeforeTax="120.00" CurrencyCode="USD" NumberOfGuests="3"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Tarifas de superposición
Configura NotifType
como Overlay
para borrar todas las tarifas por ocupación de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021 y reemplázalas por las tarifas por ocupación especificadas recientemente.
Por ejemplo, si este mensaje se enviara después del mensaje “Agregar tarifas”, se borrarían las tarifas de ocupación 1, 2 y 3, y solo se almacenaría la nueva tarifa de ocupación 1. También puedes establecer un período más corto (p.ej.: 20-12-2021 y 31-12-2021) para reemplazar solo algunas de las tarifas de ocupación en ciertas fechas, como los días feriados.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Quitar tarifas
Configura NotifType
como Remove
para borrar todas las tarifas por ocupación de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021.
Por ejemplo, si este mensaje se envió después de cualquiera de los demás, no se almacenarán las tarifas por ocupación.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Agregar, superponer y quitar importes adicionales de invitados
Agregar importes
Configura NotifType
como Delta
para agregar las tarifas base de
la ocupación 1 y 2, y los importes adicionales de los huéspedes para RoomID_1 y
PackageID_1 entre el 20/10/2021 y el 31/12/2021.
Se aplicarán importes de huéspedes adicionales sobre la tarifa base que se determinará en función de la ocupación en la búsqueda de un usuario. La ocupación especificada por el usuario debe estar dentro de la capacidad de RoomID_1.
En este ejemplo, los importes adicionales por huésped se aplicarán de la siguiente manera:
- USD 5 para niños de 0 a 10 años (inclusive).
- USD 10 para niños de entre 11 y 17 años (inclusive).
- USD 20 para adultos.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="1"/> <BaseByGuestAmt AmountBeforeTax="110.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="5.00" AgeQualifyingCode="8" MaxAge="10" /> <AdditionalGuestAmount Amount="10.00" AgeQualifyingCode="8" MaxAge="17" /> <AdditionalGuestAmount Amount="20.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Cantidades superpuestas
Configura NotifType
como Overlay
para borrar todas las tarifas por ocupación y todos los importes adicionales de los huéspedes de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021, y reemplázalos por las tarifas por ocupación especificadas recientemente y los importes adicionales.
Por ejemplo, si este mensaje se enviara después del mensaje “Agregar tarifas”, se borrarían las tarifas de ocupación base 1 y 2, y solo se almacenaría la nueva tarifa de ocupación base 1. Se borrará el conjunto anterior de cantidades adicionales de invitados y solo se almacenará el nuevo conjunto de importes. Los importes adicionales por huéspedes ahora usarán la nueva tarifa de ocupación 1 como tarifa base. Ten en cuenta que, después de esta actualización, no se definieron cargos adicionales por invitado para niños.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> <AdditionalGuestAmounts> <AdditionalGuestAmount Amount="30.00" AgeQualifyingCode="10" /> </AdditionalGuestAmounts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Quitar importes
Configura NotifType
como Delete
para borrar todas las tarifas base por ocupación y todos los importes adicionales de los huéspedes de RoomID_1 y PackageID_1 entre el 20/10/2021 y el 31/12/2021.
Por ejemplo, si este mensaje se envió después de cualquiera de los otros mensajes de ejemplo, no se almacenarán las tarifas base por ocupación ni los importes adicionales de los huéspedes.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Quitar solo los importes adicionales de los huéspedes
Configura NotifType
como Delta
con un elemento <AdditionalGuestAmounts>
vacío para borrar todos los importes de huéspedes adicionales de RoomID_1 y PackageID_1 sin afectar las tarifas base entre el 20/10/2021 y el 31/12/2021.
Por ejemplo, si este mensaje se envió después de cualquiera de los otros mensajes de ejemplo, solo se almacenarán los importes base.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <AdditionalGuestAmounts/> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Precios basados en la duración de la estadía
Cómo configurar las tarifas basadas en la duración de la estadía
Ejemplo 1
Establecer tarifas para estadías de 1, 2 y 3 noches a partir del 18 de mayo de 2020. En este ejemplo, la tarifa total por estadías de 1, 2 y 3 noches sería de USD 100, USD 180 y USD 240, respectivamente.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="1" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="100.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="2" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="90.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2" /> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Cómo agregar, superponer y quitar las tarifas basadas en la duración de la estadía
Agregar duración de la estadía
Con los precios basados en la duración de la estadía, una operación Delta
permite que las tarifas se actualicen de forma incremental para los períodos de entrada que se indican en <StatusApplicationControl>
y para todas las duraciones de la estadía que se indican en el UnitMultiplier
de cada elemento Rate
secundario.
Se deben especificar todas las tarifas de ocupación para cada fecha de entrada y duración de la estadía aplicables.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Delta" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Duración de la estadía superpuesta
Con los precios basados en la duración de la estadía, una operación Overlay
reemplaza las tarifas para todas las duraciones de estadía del producto y el período de fecha de entrada que se indica en <StatusApplicationControl>
.
Con este mensaje, se quitarán las tarifas por ocupación para todas las duraciones de la estadía en las fechas de llegada especificadas y se reemplazarán por una tarifa de ocupación doble que solo se define para la duración de la estadía 3.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Overlay" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-18" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> <Rates> <Rate UnitMultiplier="3" RateTimeUnit="Day"> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="80.00" CurrencyCode="USD" NumberOfGuests="2"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Quitar la duración de la estadía
Con los precios basados en la duración de la estadía, una operación Remove
quita las tarifas para todas las duraciones de la estadía del producto y el período de fecha de entrada que se indica en <StatusApplicationControl>
.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate"> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2021-10-20" End="2021-12-31" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1" RatePlanType="26"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Respuestas
Sintaxis
El mensaje OTA_HotelRateAmountNotifRS
usa la siguiente sintaxis:
<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05"
TimeStamp="timestamp"
EchoToken="echo_token"
Version="3.0">
<!-- Either Success or Errors will be populated. -->
<Success/>
<Errors>
<Error Type="12" Status="NotProcessed" ShortText="issue_code">issue_description</Error>
</Errors>
</OTA_HotelRateAmountNotifRS>
Elementos y atributos
El mensaje OTA_HotelRateAmountNotifRS
tiene los siguientes elementos y atributos:
Elemento / @Attribute | Occurrences | Tipo | Descripción |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Es el elemento raíz de una respuesta a un mensaje de disponibilidad. |
OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | La fecha y hora de creación de este mensaje. |
OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Es el identificador único del mensaje OTA_HotelRateAmountNotifRQ asociado. |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Indica que el mensaje OTA_HotelRateAmountNotifRQ se procesó correctamente.
Cada mensaje contiene |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Es un contenedor para uno o más problemas que se encontraron durante el procesamiento del mensaje OTA_HotelRateAmountNotifRQ .
Cada mensaje contiene |
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | La descripción de un error que se encontró durante el procesamiento del mensaje OTA_HotelRateAmountNotifRQ . Puedes encontrar detalles sobre estos errores en Mensajes de error sobre el estado del feed. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | El EWT (tipo de advertencia de error) de OpenTravel Alliance asociado con el error Solo se usa el valor 12 (Processing exception) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | Es la ERR (código de error) de OpenTravel Alliance asociado con el error.
Solo se usa el valor 450 (Unable to process) . |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | Es el estado de la solicitud original. Solo se usa el valor NotProcessed . |
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | Es el identificador de Google del problema. Puedes encontrar detalles sobre estos errores en Mensajes de error sobre el estado del feed. |
Ejemplos
Completado correctamente
La siguiente es una respuesta a un mensaje OTA_HotelRateAmountNotifRQ procesado correctamente.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Success/> </OTA_HotelRateAmountNotifRS>
Errores
La siguiente es una respuesta a un mensaje de OTA_HotelRateAmountNotifRQ que no se procesó debido a errores.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRS xmlns="http://www.opentravel.org/OTA/2003/05" EchoToken="12345678" TimeStamp="2021-10-20T20:50:37-05:00" Version="3.0"> <Errors> <Error Type="12" Code="450" Status="NotProcessed" ShortText="8001">Example</Error> </Errors> </OTA_HotelRateAmountNotifRS>