Sintassi
La sintassi del messaggioOTA_HotelRateAmountNotifRQ
è la seguente:
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="timestamp" Version="3.0" NotifType="[Overlay|Delta|Remove]" NotifScopeType="[ProductRate]"> <POS> <Source> <RequestorID ID="partner_account_name"/> </Source> </POS> <RateAmountMessages HotelCode="HotelID"> <RateAmountMessage> <StatusApplicationControl Start="YYYY-MM-DD" End="YYYY-MM-DD" InvTypeCode="RoomID" RatePlanCode="PackageID"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="float" AmountAfterTax="float" CurrencyCode="currency" NumberOfGuests="integer"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Elementi e attributi
Il messaggio OTA_HotelRateAmountNotifRQ contiene i seguenti elementi e attributi:Elemento / @attributo | Occorrenze | Tipo | Descrizione |
---|---|---|---|
OTA_HotelRateAmountNotifRQ | 1 | Complex element | L'elemento principale di un messaggio relativo alle tariffe. |
OTA_HotelRateAmountNotifRQ / @xmlns | 0..1 | String (URI) | Lo spazio dei nomi XML. |
OTA_HotelRateAmountNotifRQ / @TimeStamp | 1 | DateTime | La data e l'ora di creazione di questo messaggio. |
OTA_HotelRateAmountNotifRQ / @Version | 1 | Decimal | La versione del messaggio OpenTravel. |
OTA_HotelRateAmountNotifRQ / @NotifType | 0..1 | Enum | Il tipo di notifica da applicare a ogni
I valori validi sono:
|
OTA_HotelRateAmountNotifRQ / @NotifScopeType | 0..1 | Enum | L'ambito di I valori validi sono:
|
OTA_HotelRateAmountNotifRQ / POS | 0..1 | POS | Un container per specificare l'account partner di questo messaggio (in genere è utilizzato se il backend fornisce feed dei prezzi per più account partner). |
OTA_HotelRateAmountNotifRQ / POS / Source | 1 | Source | Obbligatorio se è presente <POS> . Un container per
<RequestorID> . |
OTA_HotelRateAmountNotifRQ / POS / RequestorID | 1 | RequestorID | Obbligatorio se è presente <POS> . Definisce l'account
partner. |
OTA_HotelRateAmountNotifRQ / POS / RequestorID / @ID | 1 | String | L'account partner di questo messaggio. Il valore della stringa è
il valore "Chiave del partner" presente
nella
pagina Impostazioni account in Hotel Center.
Nota: se hai un backend che fornisce feed per più
account, questo valore deve corrispondere al valore dell'attributo |
OTA_HotelRateAmountNotifRQ / RateAmountMessages | 1 | RateAmountMessages | Una raccolta di elementi <RateAmountMessage> che
definiscono le tariffe. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / @HotelCode | 1 | String | L'identificatore univoco della proprietà. Questo valore deve corrispondere all'ID hotel specificato utilizzando <id> nell'elemento <listing> nel feed elenco hotel. L'ID hotel è indicato anche in Hotel Center. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage | 1..n | RateAmountMessage | Un container per l'impostazione dei prezzi di una tariffa della camera (una combinazione composta da tipo di camera e piano tariffario in un intervallo di date). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl | 1 | StatusApplicationControl | Definisce l'intervallo di date, oltre agli identificatori per tipo di camera
(InvTypeCode ) e piano tariffario (RatePlanCode ). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @Start | 1 | Date | La data di inizio dell'intervallo di date. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @End | 1 | Date | La data di fine dell'intervallo di date. Deve essere maggiore o uguale al
valore di start . Se start e
end sono uguali, l'aggiornamento verrà applicato a tale data. |
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Mon | 0..1 | Boolean | Imposta su true o 1 per includere esplicitamente i lunedì.
Se è impostato su |
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Tue | 0..1 | Boolean | Imposta su true o 1 per includere esplicitamente i martedì.
Se è impostato su |
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Weds | 0..1 | Boolean | Imposta su true o 1 per includere esplicitamente i mercoledì.
Se è impostato su |
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Thur | 0..1 | Boolean | Imposta su true o 1 per includere esplicitamente i giovedì.
Se è impostato su |
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Fri | 0..1 | Boolean | Imposta su true o 1 per includere esplicitamente i venerdì.
Se è impostato su |
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Sat | 0..1 | Boolean | Imposta su true o 1 per includere esplicitamente i sabati.
Se è impostato su |
OTA_HotelAvailNotifRQ / AvailStatusMessages / AvailStatusMessage / StatusApplicationControl / @Sun | 0..1 | Boolean | Imposta su true o 1 per includere esplicitamente le domeniche.
Se è impostato su |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @InvTypeCode | 1 | String | L'identificatore univoco dell'inventario (tipo di camera). Questo valore è mappato
a <RoomID> in un messaggio Transaction (Property Data). |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / StatusApplicationControl / @RatePlanCode | 1 | String | Un identificatore univoco per il piano tariffario. Questo identificatore è mappato
a <PackageID> in un messaggio Transaction (Property Data). Il piano tariffario è ulteriormente definito e vi viene fatto riferimento
in <StatusApplicationControl> nei
messaggi <OTA_HotelRateAmountNotifRQ> e
<OTA_HotelAvailNotifRQ> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates | 0..1 | Rates | Container di una raccolta di elementi <Rate> . Se
NotifType è "Remove", questo elemento non deve essere specificato.
In caso contrario, questo elemento deve essere specificato solo una volta. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate | 1 | Rate | Container di una raccolta di elementi
<BaseByGuestAmts> . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts | 1 | BaseByGuestAmts | Container di una raccolta dei costi di base. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt | 1..n | BaseByGuestAmt | Specifica i prezzi delle camere in una determinata valuta. Il prezzo può essere
in base al numero di persone utilizzando più elementi
<BaseByGuestAmt> , ognuno dei quali con un valore diverso per NumberOfGuests .
In caso contrario, il prezzo è applicabile a un numero massimo di persone
definito da NumberOfGuests . |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @AmountBeforeTax | 0..1 | Float |
Il prezzo giornaliero della tariffa della camera prima dell'applicazione di tasse e commissioni. Se utilizzi le promozioni, lo
sconto viene applicato a |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @AmountAfterTax | 0..1 | Float | Il prezzo giornaliero della tariffa della camera dopo l'inclusione di tasse e
commissioni applicabili. Se AmountAfterTax è specificato, non devono essere inviati separatamente messaggi
<TaxFeeInfo> per ogni proprietà. Questo
attributo può essere utilizzato in combinazione con AmountBeforeTax
per fornire tariffe di base e totali che possono essere mostrate agli utenti in
alcune aree geografiche.
Avviso: se utilizzi le promozioni, sconsigliamo
vivamente di utilizzare importi
Nota: se |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @CurrencyCode | 1 | Enum | Il codice alpha-3 ISO 4217 di una specifica unità monetaria. |
OTA_HotelRateAmountNotifRQ / RateAmountMessages / RateAmountMessage / Rates / Rate / BaseGuestAmts / BaseByGuestAmt / @NumberOfGuests | 0..1 | Integer | Numero massimo di ospiti previsto per una camera. Se non viene fornito, il valore predefinito è 2. |
Esempi
Questa sezione fornisce esempi di codice che evidenziano come:
Configurare tariffe di base e tariffe totali
Esempio 1
Tariffa di base (senza tasse o commissioni) per il numero di persone predefinito (camera doppia). In questo modello, tasse e commissioni della proprietà devono essere definite utilizzando un messaggio TaxFeeInfo. La tariffa di base sarà maggiormente in evidenza per gli utenti che effettuano ricerche da determinate aree geografiche.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 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>
Esempio 2
Tariffa di base e totale per il numero di persone predefinito (camera doppia). In questo modello, tasse e commissioni non devono essere definite separatamente utilizzando messaggi TaxFeeInfo. La tariffa di base sarà maggiormente in evidenza per gli utenti che effettuano ricerche da determinate aree geografiche.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 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>
Esempio 3
Tariffa totale (con tasse e commissioni) per un numero di persone maggiore rispetto a quello predefinito. In questo modello, tasse e commissioni non devono essere definite separatamente utilizzando messaggi TaxFeeInfo.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 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>
Esempio 4
Tariffa di base e totale per più tipi di camera e piani tariffari in intervalli di date diversi.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 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>
Aggiungere, sovrapporre e rimuovere tariffe
Aggiungere tariffe
Imposta NotifType
su Delta per aggiungere tariffe in base al numero di persone per
RoomID_1 e PackageID_1 tra il 18-05-2020 e il 23-05-2020.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 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-23" 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>
Sovrapporre tariffe
Imposta NotifType
su Overlay per eliminare tutte le tariffe
in base al numero di persone per RoomID_1 e PackageID_1 tra il 18-05-2020 e il 23-05-2020,
quindi sostituiscilo con le nuove tariffe specificate in base al numero di persone.
Ad esempio, se questo messaggio è stato inviato dopo il messaggio per l'aggiunta di tariffe, le tariffe per 1, 2 e 3 persone verranno eliminate e verrà archiviata solo la nuova tariffa per 1 persona.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" 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-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> <Rates> <Rate> <BaseByGuestAmts> <BaseByGuestAmt AmountBeforeTax="200.00" CurrencyCode="USD" NumberOfGuests="1"/> </BaseByGuestAmts> </Rate> </Rates> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>
Rimuovere tariffe
Imposta NotifType
su Delete per eliminare tutte le tariffe
in base al numero di persone per RoomID_1 e PackageID_1 tra il 18-05-2020 e il 23-05-2020.
Ad esempio, se questo messaggio è stato inviato dopo uno degli altri messaggi di esempio, non verrà archiviata nessuna tariffa in base al numero di persone.
<?xml version="1.0" encoding="UTF-8"?> <OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05" TimeStamp="2020-05-19T20:50:37-05:00" Version="3.0" NotifType="Remove" NotifScopeType="ProductRate">> <RateAmountMessages HotelCode="Property_1"> <RateAmountMessage> <StatusApplicationControl Start="2020-05-18" End="2020-05-23" InvTypeCode="RoomID_1" RatePlanCode="PackageID_1"/> </RateAmountMessage> </RateAmountMessages> </OTA_HotelRateAmountNotifRQ>