Demandes
Syntaxe
Le message OTA_HotelRateAmountNotifRQ
utilise la syntaxe suivante:
<?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>
Éléments et attributs
Le message OTA_HotelRateAmountNotifRQ
inclut les éléments et les attributs suivants:
Élément / @Attribut | Occurrences | Type | Description |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | Élément racine d'un message sur les tarifs. |
OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | string (URI) | Espace de noms XML. |
OTA_HotelRateAmountNotifRQ / @EchoToken | 1 | string | Identifiant unique pour ce message de demande. Cette valeur est renvoyée dans le message de réponse. Les caractères autorisés sont a-z , A-Z , 0-9 , _ (underscore) et - (dash) . |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | Date et heure de création de ce message. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | decimal | Version du message OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | enum | Type de notification à appliquer à chaque Les valeurs valides sont les suivantes : Pour comprendre le fonctionnement de ces attributs, consultez les exemples.
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | enum | Champ d'application de l'attribut Les valeurs valides sont les suivantes :
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Conteneur permettant de spécifier le compte partenaire pour ce message (généralement utilisé si votre backend fournit des flux de prix pour plusieurs comptes partenaires). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Obligatoire si <POS> est présent. Conteneur pour l'élément <RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Obligatoire si <POS> est présent. Définit le compte partenaire. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | string | Compte partenaire pour ce message. Cette valeur de chaîne correspond à la valeur "Partner key" (Clé partenaire) indiquée sur la page
Paramètres du compte dans Hotel Center.
Remarque:Si vous avez un backend qui fournit des flux pour plusieurs comptes, cette valeur doit correspondre à la valeur de l'attribut |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Ensemble d'éléments <RateAmountMessage> définissant des tarifs. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | string | Identifiant unique de l'établissement. Cette valeur doit correspondre à l'identifiant de l'hôtel spécifié à l'aide de <id> dans l'élément <listing> du flux Hotel List Feed. L'identifiant de l'hôtel est également répertorié dans Hotel Center. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Conteneur permettant de définir le prix d'une chambre (combinaison d'un type de chambre et d'un plan tarifaire sur une plage de dates). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Définit la plage de dates, ainsi que les identifiants du type de chambre (InvTypeCode ) et du plan tarifaire (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | Date de début (en fonction du fuseau horaire de l'établissement), incluse, de la plage de dates. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | Date de fin (en fonction du fuseau horaire de l'établissement), incluse, de la plage de dates. Doit être supérieure ou égale à la valeur start .
Si les valeurs start et end sont égales, la mise à jour s'applique à cette date. Notez que Google accepte jusqu'à trois ans de données. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Mon | 0..1 | boolean | Définissez cet attribut sur true ou 1 pour inclure explicitement les lundis.
S'il est défini sur |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Tue | 0..1 | boolean | Définissez cet attribut sur true ou 1 pour inclure explicitement les mardis.
S'il est défini sur |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Weds | 0..1 | boolean | Définissez cet attribut sur true ou 1 pour inclure explicitement les mercredis.
S'il est défini sur |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Thur | 0..1 | boolean | Définissez cet attribut sur true ou 1 pour inclure explicitement les jeudis.
S'il est défini sur |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Fri | 0..1 | boolean | Définissez cet attribut sur true ou 1 pour inclure explicitement les vendredis.
S'il est défini sur |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sat | 0..1 | boolean | Définissez cet attribut sur true ou 1 pour inclure explicitement les samedis.
S'il est défini sur |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Sun | 0..1 | boolean | Définissez cet attribut sur true ou 1 pour inclure explicitement les dimanches.
S'il est défini sur |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | string | Identifiant unique de l'inventaire (type de chambre). Cette valeur correspond à <RoomID> dans un message Transaction (Données sur un établissement). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | string | Identifiant unique du plan tarifaire. Cet identifiant correspond à l'élément <PackageID> dans un message Transaction (Données sur un établissement). Le plan tarifaire est également défini et référencé dans l'élément <StatusApplicationControl> des messages <OTA_HotelRateAmountNotifRQ> et <OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanType | 0..1 | string | Identifiant indiquant le type de modèle de tarification ARI qui s'applique à cette mise à jour des tarifs. Cette valeur ne doit être spécifiée, à l'aide d'une valeur de 26 , que lorsque vous utilisez le modèle de tarification basé sur la DDS. L'exclusion de cet attribut indique qu'il s'agit d'une mise à jour du prix par date. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Conteneur pour un ensemble d'éléments <Rate> . Si NotifType est "Remove" , cet élément ne doit pas être spécifié. Dans le cas contraire, il ne doit être spécifié qu'une seule fois. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Conteneur pour un ensemble d'éléments <BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @RateTimeUnit | 0..1 | String | Unité dans laquelle la durée du séjour est spécifiée. La seule valeur acceptée est "Day" , ce qui signifie que la durée du séjour sera spécifiée en jours.
Pour utiliser les tarifs basés sur la DDS, vous devez spécifier |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / @UnitMultiplier | 0..1 | Integer | Nombre de RateTimeUnits qui composent la durée du séjour pour ce tarif.
Par exemple, si la valeur Le ou les tarifs d'occupation spécifiés dans cet objet Pour utiliser les tarifs basés sur la DDS, vous devez spécifier |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts | 1 | BaseByGuestAmts | Conteneur pour un ensemble de frais de base. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Indique le prix des chambres dans une devise spécifiée. Le prix peut être appliqué par nombre de personnes en utilisant plusieurs éléments <BaseByGuestAmt> , chacun ayant une valeur différente pour NumberOfGuests .
Sinon, le prix est applicable pour un nombre maximal de personnes défini par NumberOfGuests . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | float |
Prix de la chambre à la journée, avant ajout des taxes et des frais. Les attributs Si vous utilisez des promotions, la remise est appliquée à |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | float | Prix de la chambre à la journée, après ajout des taxes et frais applicables. Si AmountAfterTax est spécifié, il n'est pas nécessaire d'envoyer des messages <TaxFeeInfo> distincts pour chaque établissement. Cet attribut peut être utilisé en association avec AmountBeforeTax pour fournir à la fois un tarif de base et un tarif total, qui peuvent être présentés aux utilisateurs de certaines régions.
Avertissement:Si vous utilisez des promotions, nous vous recommandons vivement de ne pas utiliser de montants Remarque:Si |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | enum | Code ISO 4217 à trois caractères alphabétiques pour une unité monétaire spécifique.
Consultez la liste des devises acceptées. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseByGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | integer | Nombre maximal de personnes pouvant être accueillies avec ce tarif.
Si aucune valeur n'est indiquée, cet attribut est défini par défaut sur 2.
Notez que si |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts | 0..1 | AdditionalGuestAmounts | Conteneur pour un ensemble de frais pour les clients supplémentaires.
Cette syntaxe est utile si les tarifs supplémentaires pour les adultes ou les enfants changent en fonction de la date. Envisagez d'utiliser le message
Par exemple, supposons que les tarifs de base soient spécifiés pour un et deux adultes.
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount | 0..n | AdditionalGuestAmount | Spécifie les prix en fonction du type de client, spécifié via AgeQualifyingCode et, le cas échéant, de l'âge du client, spécifié via MaxAge .
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @AgeQualifyingCode | 1 | enum | Définit le type de personne supplémentaire (adulte ou enfant). Les options valides sont les suivantes :
|
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @MaxAge | 0..1 | integer | MaxAge doit être spécifié lorsque AgeQualifyingCode est 8 . Il ne doit pas être spécifié lorsque AgeQualifyingCode est 10 .
Définir une valeur de Les valeurs supérieures à Vous pouvez spécifier plusieurs tranches d'âge pour les enfants à l'aide d'éléments |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / AdditionalGuestAmounts / AdditionalGuestAmount / @Amount | 1 | float | Montant avant taxes et frais ajoutés au tarif de base pour chaque personne supplémentaire.
Les taxes et les frais qui dépendent de l'âge des occupants doivent être spécifiés via l'élément |
Exemples
Cette section fournit des exemples de code qui expliquent comment effectuer les opérations suivantes:
- Configurer des tarifs de base et des tarifs totaux
- Ajouter, superposer et supprimer des tarifs
- Ajouter, superposer et supprimer des tarifs pour des invités supplémentaires
- Configurer des tarifs basés sur la DDS
- Ajouter, superposer et supprimer des tarifs basés sur la DDS
Lorsque vous définissez les valeurs add
, overlay
ou remove
, les plages de dates peuvent être identiques ou différentes en fonction de vos objectifs. Par exemple, vous pouvez utiliser overlay
pour ne définir que quelques semaines pour les fêtes de fin d'année plutôt que la plage entière définie pour le message "Ajouter un tarif". Les tarifs d'occupation seront remplacés uniquement pour cette période.
Tarification par date
Pour un type de chambre et un plan tarifaire donnés, vous pouvez indiquer jusqu'à 50 taux d'occupation par établissement. Si les tarifs sont les mêmes pour tous les nombres de personnes, vous devez simplement envoyer le nombre maximal de personnes avec le prix requis. Google en déduit que les taux de remplissage inférieurs bénéficient également du même tarif de base.
Configurer des tarifs de base et des tarifs totaux
Exemple 1
Tarif de base (hors taxes ou frais) pour le nombre de personnes par défaut (deux). Dans ce modèle, les taxes et les frais liés à l'établissement doivent être définis à l'aide d'un message <TaxFeeInfo>
. Le tarif de base sera plus important pour les utilisateurs effectuant des recherches dans certaines régions.
<?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>
Exemple 2
Tarif de base et tarif total pour le nombre de personnes par défaut (deux). Dans ce modèle, les taxes et les frais ne doivent pas être définis séparément à l'aide de messages <TaxFeeInfo>
. Le tarif de base sera plus important pour les utilisateurs effectuant des recherches dans certaines régions.
<?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>
Exemple 3
Tarif total (taxes et frais compris) pour plusieurs nombres de personnes. Dans ce modèle, les taxes et les frais ne doivent pas être définis séparément à l'aide de messages <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>
Exemple 4
Tarif de base et tarif total pour plusieurs types de chambres et plans tarifaires sur différentes plages de dates.
<?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>
Ajouter, superposer et supprimer des tarifs
Vous pouvez indiquer jusqu'à 5 000 produits (combinaisons type de chambre et séjour organisé) par établissement. Utilisez les types de notification Overlay
ou Remove
pour supprimer les produits précédemment définis.
Ajouter des tarifs
Définissez NotifType
sur Delta
pour ajouter des tarifs par nombre de personnes pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021. Notez que Google accepte jusqu'à trois ans de données.
<?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>
Superposer des tarifs
Définissez NotifType
sur Overlay
pour supprimer tous les tarifs par nombre de personnes pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021, et les remplacer par les nouveaux tarifs par nombre de personnes.
Par exemple, si ce message a été envoyé après le message "Ajouter des tarifs", les tarifs par nombre de personnes 1, 2 et 3 sont supprimés, et seul le nouveau tarif par nombre de personnes 1 est stocké. Vous pouvez également définir une plage de dates plus courte (par exemple : 2021-12-20 et 2021-12-31) pour ne remplacer que certains des tarifs d'occupation à certaines dates, comme pour les jours fériés.
<?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>
Supprimer des tarifs
Définissez NotifType
sur Remove
pour supprimer tous les tarifs par nombre de personnes pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021.
Par exemple, si ce message a été envoyé après l'un des autres exemples de messages, aucun tarif par nombre de personnes n'est stocké.
<?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>
Ajouter, superposer et supprimer des tarifs pour des invités supplémentaires
Ajouter des montants
Définissez NotifType
sur Delta
pour ajouter les tarifs de base pour les personnes 1 et 2, ainsi que les montants supplémentaires pour les personnes supplémentaires, pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021.
Les tarifs supplémentaires pour les personnes supplémentaires s'appliquent en plus d'un tarif de base qui sera déterminé par le nombre de personnes dans la recherche de l'utilisateur. Le nombre de personnes spécifié par l'utilisateur doit être inférieur à la capacité de RoomID_1.
Dans cet exemple, les montants supplémentaires seront appliqués comme suit:
- 5 $ pour les enfants âgés de 0 à 10 ans (inclus).
- 10 $ pour les enfants âgés de 11 à 17 ans (inclus).
- 20 $ pour les adultes.
<?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>
Montants des superpositions
Définissez NotifType
sur Overlay
pour supprimer tous les tarifs par nombre de personnes et tous les montants supplémentaires pour les personnes supplémentaires pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021, et les remplacer par les nouveaux tarifs par nombre de personnes et les nouveaux montants supplémentaires.
Par exemple, si ce message a été envoyé après le message "Ajouter des tarifs", les tarifs de base par nombre de personnes 1 et 2 sont supprimés, et seul le nouveau tarif de base par nombre de personnes 1 est stocké. L'ensemble précédent des montants pour les personnes supplémentaires est supprimé, et seul le nouvel ensemble de montants est stocké. Le nouveau tarif pour une personne sera désormais utilisé comme tarif de base pour les personnes supplémentaires. Notez qu'après cette mise à jour, aucuns frais supplémentaires ne sont définis pour les enfants.
<?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>
Supprimer les montants
Définissez NotifType
sur Delete
pour supprimer tous les tarifs de base par nombre de personnes et tous les montants supplémentaires pour les personnes supplémentaires pour RoomID_1 et PackageID_1 entre le 20/10/2021 et le 31/12/2021.
Par exemple, si ce message a été envoyé après l'un des autres exemples de messages, aucun tarif de base par nombre de personnes ni aucun montant supplémentaire pour les personnes supplémentaires ne sera stocké.
<?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>
Supprimer uniquement les montants supplémentaires pour les invités
Définissez NotifType
sur Delta
avec un élément <AdditionalGuestAmounts>
vide pour supprimer tous les montants supplémentaires pour les personnes supplémentaires pour RoomID_1 et PackageID_1 sans affecter les tarifs de base entre le 20/10/2021 et le 31/12/2021.
Par exemple, si ce message a été envoyé après l'un des autres exemples de messages, seuls les montants de base sont stockés.
<?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>
Tarification basée sur le LOS
Configurer des tarifs basés sur la DDS
Exemple 1
Définissez des tarifs pour les séjours de 1, 2 et 3 nuits à partir du 18/05/2020. Dans cet exemple, le tarif total pour les séjours de 1, 2 et 3 nuits serait respectivement de 100 $, 180 $ et 240 $.
<?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>
Ajouter, superposer et supprimer des tarifs basés sur la visibilité
Ajouter une ou plusieurs durées de séjour
Avec la tarification basée sur la durée du séjour, une opération Delta
permet de mettre à jour les tarifs de manière incrémentielle pour les périodes d'arrivée indiquées dans <StatusApplicationControl>
et pour toutes les durées de séjour indiquées par l'UnitMultiplier
de chaque élément enfant Rate
.
Pour chaque date d'arrivée et durée de séjour applicables, tous les tarifs en fonction du nombre de personnes doivent être spécifiés.
<?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>
Superposer des durées de séjour
Avec la tarification basée sur la durée du séjour, une opération Overlay
remplace les tarifs pour toutes les durées de séjour du produit et la plage de dates d'arrivée indiquée dans <StatusApplicationControl>
.
Avec ce message, les tarifs par nombre de personnes pour toutes les durées de séjour aux dates d'arrivée spécifiées seront supprimés et remplacés par un tarif pour deux personnes qui n'est défini que pour la durée de séjour 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>
Supprimer la ou les durées de séjour
Avec la tarification basée sur la durée du séjour, une opération Remove
supprime les tarifs pour toutes les durées de séjour du produit et la plage de dates d'arrivée indiquée dans <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>
Réponses
Syntaxe
Le message OTA_HotelRateAmountNotifRS
utilise la syntaxe suivante:
<?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>
Éléments et attributs
Le message OTA_HotelRateAmountNotifRS
inclut les éléments et les attributs suivants:
Élément / @Attribut | Occurrences | Type | Description |
---|---|---|---|
OTA_HotelRateAmountNotifRS | 1 | Complex element | Élément racine d'une réponse à un message de disponibilité. |
OTA_HotelRateAmountNotifRS / @TimeStamp | 1 | DateTime | Date et heure de création de ce message. |
OTA_HotelRateAmountNotifRS / @EchoToken | 1 | string | Identifiant unique du message OTA_HotelRateAmountNotifRQ associé. |
OTA_HotelRateAmountNotifRS / Success | 0..1 | Success | Indique que le message OTA_HotelRateAmountNotifRQ a bien été traité.
Chaque message contient soit |
OTA_HotelRateAmountNotifRS / Errors | 0..1 | Errors | Conteneur pour un ou plusieurs problèmes rencontrés lors du traitement du message OTA_HotelRateAmountNotifRQ .
Chaque message contient soit |
OTA_HotelRateAmountNotifRS / Errors / Error | 1..n | Error | Description d'une erreur rencontrée lors du traitement du message OTA_HotelRateAmountNotifRQ . Pour en savoir plus sur ces erreurs, consultez Messages d'erreur concernant l'état du flux. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Type | 1 | integer | Type d'avertissement d'erreur (EWT) OpenTravel Alliance associé à l'erreur. Seule la valeur 12 (Processing exception) est utilisée. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | integer | Code d'erreur (ERR) OpenTravel Alliance associé à l'erreur.
Seule la valeur 450 (Unable to process) est utilisée. |
OTA_HotelRateAmountNotifRS / Errors / Error / @Code | 1 | enum | État de la requête d'origine. Seule la valeur NotProcessed est utilisée. |
OTA_HotelRateAmountNotifRS / Errors / Error / @ShortText | 1 | string | Identifiant Google du problème. Pour en savoir plus sur ces erreurs, consultez Messages d'erreur concernant l'état du flux. |
Exemples
Opération réussie
Vous trouverez ci-dessous une réponse à un message OTA_HotelRateAmountNotifRQ traité avec succès.
<?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>
Erreurs
Voici une réponse à un message OTA_HotelRateAmountNotifRQ non traité en raison d'erreurs :
<?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>