Panoramica
Questa API consente di definire modi per applicare dinamicamente azioni a una tariffa ogni volta che vengono soddisfatte le condizioni, come l'aggiustamento del prezzo o l'abilitazione della possibilità di rimborso. A differenza dell'API Promotions, che può applicare solo le promozioni idonee con gli sconti più elevati, questa API applica qualsiasi azione quando vengono soddisfatte determinate condizioni, inclusi gli aggiustamenti dei prezzi che potrebbero aumentare il prezzo finale.
Richieste
Sintassi
Il messaggio RateModifications
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
id="message_ID"
timestamp="timestamp">
<HotelRateModifications hotel_id="HotelID" action="[overlay]">
<ItineraryRateModification id="ModificationID" action="[delete]">
<BookingDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</BookingDates>
<BookingWindow min="integer" max="integer"/>
<CheckinDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</CheckinDates>
<CheckoutDates>
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</CheckoutDates>
<Devices>
<Device type="[desktop|tablet|mobile]"/>
</Devices>
<LengthOfStay min="integer" max="integer"/>
<MinimumAmount before_discount="integer"/>
<RatePlans>
<RatePlan id="PackageID_1"/>
<RatePlan id="PackageID_2"/>
</RatePlans>
<RoomTypes>
<RoomType id="RoomID_1"/>
<RoomType id="RoomID_2"/>
</RoomTypes>
<StayDates application="[all|any]">
<DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
</StayDates>
<UserCountries type="[include|exclude]">
<Country code="country_code"/>
</UserCountries>
<ModificationActions>
<PriceAdjustment multiplier="float"/>
<RateRule id="RateRuleID"/>
<Refundable available="[false|true]"
refundable_until_days="number_of_days"
refundable_until_time="time"/>
<Availability status="[unavailable]"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Elementi e attributi
Il messaggio RateModifications
contiene i seguenti elementi e attributi:
Elemento / @Attributo | Occorrenze | Tipo | Descrizione |
---|---|---|---|
RateModifications | 1 | Complex element | L'elemento principale di un messaggio di modifica delle tariffe. |
RateModifications / @partner | 1 | string | L'account partner per questo messaggio. Questo valore di stringa è il
valore "Chiave 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 |
RateModifications / @id | 1 | string | Un identificatore univoco per questo messaggio di richiesta. Questo valore viene restituito nel messaggio di risposta. I caratteri consentiti sono a-z, A-Z, 0-9, _ (trattino basso) e - (trattino). |
RateModifications / @timestamp | 1 | DateTime | La data e l'ora di creazione di questo messaggio. |
RateModifications / HotelRateModifications | 0..n | HotelRateModifications | Modifiche alle tariffe di una struttura. Ogni modifica della tariffa si applica a una singola proprietà. Nota:se più modifiche alla tariffa possono essere applicate alla stessa tariffa, verranno applicate tutte le modifiche. Non è garantito alcun ordine specifico. |
RateModifications / HotelRateModifications / @hotel_id | 1 | string | L'identificatore univoco della struttura. Questo valore deve corrispondere all'ID hotel specificato utilizzando
<id> nell'elemento <listing>
del feed elenco hotel. L'ID hotel è indicato anche in Hotel Center. |
RateModifications / HotelRateModifications / @action | 0..1 | enum | Se |
RateModifications / HotelRateModifications / ItineraryRateModification | 0..200 | ItineraryRateModification | Una singola modifica di tariffa per una proprietà. Nota: è difficile eseguire il debug delle modifiche alle tariffe e ti consigliamo di utilizzarle con parsimonia. Contatta il tuo Technical Account Manager (TAM) per i casi d'uso che richiedono più di 200 modifiche alla tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / @id | 1 | string | Un identificatore univoco della modifica della tariffa. Il numero massimo di caratteri consentiti è 40. I caratteri consentiti sono a-z, A-Z, 0-9, _ (trattino basso), - (trattino) e . (punto). |
RateModifications / HotelRateModifications / ItineraryRateModification / @action | 0..1 | enum | Se non specificata e una modifica della tariffa con lo stesso
Se specificato, il valore deve essere |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates | 0..1 | BookingDates | Un contenitore di uno o più intervalli di date che definiscono il periodo in cui deve essere effettuata la prenotazione affinché venga applicata la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange | 1..99 | DateRange | Un intervallo di date che specifica il periodo in cui deve essere effettuata la prenotazione affinché venga applicata la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start | 0..1 | Date | La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla
data di end . Se start non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di inizio. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end | 0..1 | Date | La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start . Se end non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di fine. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week | 0..1 | string | I giorni della settimana consentiti nell'intervallo di date. Se non specificato, sono consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che i giorni della settimana sono consentiti nell'intervallo di date. I caratteri validi sono:
È valida qualsiasi combinazione di caratteri. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow | 0..1 | BookingWindow | Specifica il periodo di tempo in cui deve avvenire la prenotazione in base alla data di check-in (in base al fuso orario della proprietà). Ad esempio, la finestra di prenotazione può essere impostata su un valore minimo di 7 giorni, ma non superiore a 180 giorni, prima del check-in. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min | 0..1 | integer | Il numero minimo di giorni prima del check-in in cui deve essere effettuata la prenotazione affinché venga applicata la modifica della tariffa. Se non specificato, non è previsto un limite minimo. |
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max | 0..1 | integer | Il numero massimo di giorni prima del check-in in cui deve essere effettuata la prenotazione affinché venga applicata la modifica della tariffa. Se non specificato, non è previsto un limite massimo. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates | 0..1 | CheckinDates | Un contenitore di uno o più intervalli di date che definiscono il periodo in cui deve essere effettuato il check-in affinché venga applicata la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange | 1..99 | DateRange | Un intervallo di date che specifica il periodo in cui deve essere effettuato il check-in affinché venga applicata la modifica della tariffa. Questo elemento non è obbligatorio se stai eliminando una o più modifiche alle tariffe. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start | 0..1 | Date | La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla
data di end . Se start non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di inizio. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end | 0..1 | Date | La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start . Se end non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di fine. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week | 0..1 | string | I giorni della settimana consentiti nell'intervallo di date. Se non specificato, sono consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che i giorni della settimana sono consentiti nell'intervallo di date. I caratteri validi sono:
È valida qualsiasi combinazione di caratteri. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates | 0..1 | CheckoutDates | Un contenitore di uno o più intervalli di date che definiscono il periodo in cui deve essere effettuato il check-out affinché venga applicata la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange | 1..99 | DateRange | Un intervallo di date che specifica il periodo in cui deve essere effettuato il check-out affinché venga applicata la modifica della tariffa. Questo elemento non è obbligatorio se stai eliminando una o più modifiche alle tariffe. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start | 0..1 | Date | La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla
data di end . Se start non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di inizio. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end | 0..1 | Date | La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start . Se end non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di fine. |
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week | 0..1 | string | I giorni della settimana consentiti nell'intervallo di date. Se non specificato, sono consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che i giorni della settimana sono consentiti nell'intervallo di date. I caratteri validi sono:
È valida qualsiasi combinazione di caratteri. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices | 0..1 | Devices | Contenitore dell'elenco dei dispositivi utente idonei per la modifica della tariffa. Se specificata, la modifica della tariffa viene applicata solo se l'utente corrisponde a uno dei dispositivi elencati. Se non specificata, ciò non limita l'applicazione della modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device | 1..3 | Device | Definisce un tipo di dispositivo dell'utente idoneo per la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type | 1 | enum | Un tipo di dispositivo. Il valore deve essere desktop ,
tablet o mobile . |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions | 1 | ModificationActions | Azioni applicate alla tariffa se tutte le condizioni specificate sono soddisfatte. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment | 0..1 | PriceAdjustment | Modifica la percentuale moltiplicando AmountBeforeTax e
AmountAfterTax per il moltiplicatore specificato |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | Sia AmountBeforeTax che AmountAfterTax vengono moltiplicati per questo valore. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule | 0..1 | RateRule | Modifica la tariffa applicando l'ID della regola tariffaria specificato. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id | 1 | string | Questo ID associa una tariffa a una definizione nel file di definizione delle regole tariffarie.
Nota:
|
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | Sovrascrive la possibilità di rimborso del tasso nel valore specificato.
Quando imposti gli attributi, tieni presente quanto segue:
|
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available | 1 | boolean | (Obbligatorio) Imposta il valore 1 o true per indicare se la tariffa prevede un rimborso totale; in caso contrario, impostalo su 0 o false . |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (Obbligatorio se
available è true ) Specifica
il numero di giorni prima del check-in entro cui è possibile richiedere
un rimborso totale. Il valore di refundable_until_days
deve essere un numero intero compreso tra 0 e 330 inclusi. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time | 0..1 | Time | (Consigliato se available è true ) Specifica
l'ora più recente, nell'ora locale dell'hotel, entro cui
viene soddisfatta una richiesta di rimborso totale. Questo valore può essere combinato con
refundable_until_days per specificare, ad esempio, che "i rimborsi sono disponibili fino alle 16:00 di due giorni prima del
check-in". Se refundable_until_time non è impostato, il valore
predefinito è mezzanotte. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability | 0..1 | Availability | Sovrascrive la disponibilità della tariffa nel valore specificato.
Supportiamo solo l'impostazione della tariffa su unavailable . |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status | 1 | enum | Se status="unavailable" , la tariffa viene trattata
come se non fosse disponibile, indipendentemente dall'esistenza o meno di un prezzo
valido. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay | 0..1 | LengthOfStay | Definisce i limiti di durata del soggiorno entro i quali è possibile applicare la modifica della tariffa. La modifica della tariffa non viene applicata quando la durata del soggiorno non rientra nei limiti minimo e massimo. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min | 0..1 | integer | Il numero minimo di notti consentito per il soggiorno affinché venga applicata la modifica della tariffa. Se non specificato, non è previsto un limite minimo. |
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max | 0..1 | integer | Il numero massimo di notti consentito per il soggiorno affinché venga applicata la modifica della tariffa. Se non specificato, non è previsto un limite massimo. |
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount | 0..1 | MinimumAmount | Specifica la somma minima delle tariffe giornaliere della camera (utilizzando la somma più grande tra
AmountBeforeTax o AmountAfterTax ) che deve
essere superata per applicare la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount | 1 | integer | Il valore che deve essere superato per applicare la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans | 0..1 | RatePlans | Contenitore di un elenco di piani tariffari a cui si applica la modifica
della tariffa. Se <RatePlans> non è specificato, la modifica
della tariffa si applica a tutti i piani tariffari. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan | 1..n | RatePlan | Specifica un piano tariffario. Un piano tariffario è definito da una combinazione di pacchetti, tariffe e disponibilità, come definito nei messaggi Transaction (Property Data), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ e come identificato dal valore PackageID. |
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id | 1 | string | L'identificatore univoco del piano tariffario. Questo valore è mappato al
valore PackageID in <PackageData>
in un messaggio Transaction (Property Data) e nell'attributo
RatePlanCode in
<StatusApplicationControl> in entrambi i messaggi
<OTA_HotelRateAmountNotifRQ> e
<OTA_HotelAvailNotifRQ> .
Il numero massimo di caratteri consentiti è 50. |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes | 0..1 | RoomTypes | Contenitore di un elenco dei tipi di camera a cui si applica la modifica della tariffa.
La modifica della tariffa viene applicata a ogni <RoomType>
specificato. Se <RoomTypes> non è specificato, la
modifica della tariffa si applica a tutte le camere. |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType | 1..n | RoomType | Specifica un tipo di camera. Un tipo di camera viene definito in un
elemento <RoomData> di un
messaggio Transaction (Property Data) e viene
utilizzato il relativo valore <RoomID> . (al
valore <RoomID> viene fatto riferimento anche dall'attributo
InvTypeCode nei messaggi OTA_HotelRateAmountNotifRQ). |
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id | 1 | string | L'identificatore univoco dell'inventario (tipo di camera). Questo valore è mappato
a <RoomID> in un messaggio Transaction (Property Data).
Il numero massimo di caratteri consentiti è 50. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates | 0..1 | StayDates | Un contenitore per uno o più intervalli di date che determinano la modalità di applicazione della modifica della tariffa, ad esempio per adeguarsi ai prezzi stagionali. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application | 1 | enum | Descrive come deve essere applicata la modifica della tariffa. I valori validi sono:
Questo attributo deve essere sempre specificato. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange | 1..99 | DateRange | Un intervallo di date che specifica le date in cui deve essere applicata la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start | 0..1 | Date | La data di inizio (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere precedente o uguale alla
data di end . Se start non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di inizio. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end | 0..1 | Date | La data di fine (inclusa) dell'intervallo di date (in base al fuso orario della proprietà). Questa data deve essere uguale o successiva alla data di start . Se end non è specificato, l'intervallo di
date è a tutti gli effetti illimitato in termini di data di fine. |
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week | 0..1 | string | I giorni della settimana consentiti nell'intervallo di date. Se non specificato, sono consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che i giorni della settimana sono consentiti nell'intervallo di date. I caratteri validi sono:
È valida qualsiasi combinazione di caratteri. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | Se specificato, la modifica della tariffa viene applicata solo se l'utente si trova in uno dei paesi specificati. Se non specificata, la modifica della tariffa viene applicata indipendentemente dalla località dell'utente. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | Il tipo di specifica UserCountries.
I valori validi sono Se il valore Paese-Utente Se il valore Se il valore |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country | 1..300 | Country | Specifica il paese dell'utente consentito per la modifica della tariffa. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code | 1 | string | Un codice paese CLDR,
ad esempio DE o FR . Tieni presente che, per alcuni paesi, il codice paese CLDR non corrisponde al codice paese ISO a due lettere. Inoltre, i codici regione CLDR non sono supportati. |
Esempi
Messaggio di base
L'esempio seguente mostra un messaggio di base RateModifications
:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
<DateRange start="2023-09-01" end="2023-09-30"/>
</BookingDates>
<BookingWindow min="7" max="330"/>
<CheckinDates>
<DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
</CheckinDates>
<CheckoutDates>
<DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
</CheckoutDates>
<Devices>
<Device type="mobile"/>
<Device type="tablet"/>
</Devices>
<LengthOfStay min="2" max="14"/>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<UserCountries>
<Country code="US"/>
<Country code="GB"/>
</UserCountries>
<ModificationActions>
<PriceAdjustment multiplier="1.2"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Elimina una modifica della tariffa
L'esempio seguente mostra come eliminare una modifica della tariffa per una proprietà:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1" action="delete"/>
</HotelRateModifications>
</RateModifications>
Elimina tutte le modifiche alle tariffe
L'esempio seguente mostra come eliminare tutte le modifiche alle tariffe per una proprietà:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>
Overlay di tutte le modifiche alle tariffe
L'esempio seguente mostra come sovrapporre <HotelRateModifications>
per
la proprietà con una o più nuove modifiche alle tariffe. Quando
action="overlay"
, tutte le modifiche alle tariffe archiviate vengono eliminate prima
di memorizzare le modifiche alle tariffe specificate nel messaggio attuale:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1" action="overlay"/>
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-09-01" end="2023-09-30"/>
</BookingDates>
<ModificationActions>
<PriceAdjustment multiplier="1.2"/>
</ModificationActions>
<RoomTypes>
<RoomType id="123"/>
<RoomType id="456"/>
</RoomTypes>
<RatePlans>
<RatePlan id="234"/>
<RatePlan id="567"/>
</RatePlans>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Più azioni di modifica
L'esempio seguente mostra come eseguire più azioni di modifica contemporaneamente:
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<BookingDates>
<DateRange start="2023-01-01" end="2023-02-28"/>
</BookingDates>
<ModificationActions>
<PriceAdjustment multiplier=".95"/>
<Refundable available="true"
refundable_until_days="1"
refundable_until_time="12:00:00"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Disattivare un piano tariffario per i paesi degli utenti
L'esempio seguente mostra come limitare un piano tariffario solo agli utenti
giapponesi (JP
):
<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
id="123_abc"
timestamp="2023-05-22T16:20:00-04:00">
<HotelRateModifications hotel_id="Property_1">
<ItineraryRateModification id="1">
<RatePlans>
<RatePlan id="jp_only"/>
</RatePlans>
<UserCountries type="exclude">
<Country code="JP"/>
</UserCountries>
<ModificationActions>
<Availability status="unavailable"/>
</ModificationActions>
</ItineraryRateModification>
</HotelRateModifications>
</RateModifications>
Risposte
Sintassi
Il messaggio RateModificationsResponse
utilizza la seguente sintassi:
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type"><var>issue_description</var></Issue>
</Issues>
</RateModificationsResponse>
Elementi e attributi
Il messaggio RateModificationsResponse
contiene i seguenti elementi e attributi:
Elemento / @Attributo | Occorrenze | Tipo | Descrizione |
---|---|---|---|
RateModifications | 1 | Complex element | L'elemento principale che indica l'esito positivo o i problemi per un messaggio di richiesta RateModifications ricevuto. |
RateModificationsResponse / @timestamp | 1 | DateTime | La data e l'ora di creazione di questo messaggio. |
RateModificationsResponse / @id | 1 | string | L'identificatore univoco del messaggio RateModifications associato. |
RateModificationsResponse / @partner | 1 | string | L'account partner per questo messaggio. |
RateModificationsResponse / Success | 0..1 | Success | Indica che il messaggio RateModifications è stato elaborato correttamente
senza avvisi, errori o errori.
In ogni messaggio è presente |
RateModificationsResponse / Issues | 0..1 | Issues | Un contenitore per uno o più problemi riscontrati durante l'elaborazione del messaggio RateModifications.
In ogni messaggio è presente |
RateModificationsResponse / Issues / Issue | 1..n | Issue | La descrizione di un avviso, un errore o un errore riscontrato durante l'elaborazione del messaggio RateModifications. Per informazioni dettagliate su questi problemi, consulta la sezione sui messaggi di errore relativi allo stato dei feed. |
RateModificationsResponse / Issues / Issue / @code | 1 | integer | L'identificatore del problema. |
RateModificationsResponse / Issues / Issue / @status | 1 | enum | Il tipo di problema riscontrato. I valori validi sono |
Esempi
Operazione riuscita
Di seguito è riportata una risposta a un messaggio RateModifications elaborato correttamente.
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</RateModificationsResponse>
Problemi
Di seguito è riportata una risposta a un messaggio RateModifications non elaborato a causa di errori.
<?xml version="1.0" encoding="UTF-8"?>
<RateModificationsResponse timestamp="2023-05-22T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</RateModificationsResponse>