Modifiche tariffe

Panoramica

Questa API consente di definire modalità per applicare dinamicamente azioni a una tariffa ogni volta vengano soddisfatte determinate condizioni, ad esempio l'adeguamento del prezzo o l'attivazione del rimborso. A differenza dell'API Promotions, che può essere applicata le promozioni idonee con gli sconti più alti, questa API applica qualsiasi azione quando vengono soddisfatte determinate condizioni, tra cui 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 modifiche alle tariffe.
RateModifications / @partner 1 string L'account partner per questo messaggio. Questo valore di stringa corrisponde alla "Chiave del partner" valore indicato il Impostazioni account in Hotel Center.

Nota: se hai un backend che fornisce feed per più account, questo valore deve corrispondere a ID specificato nel campo <RequestorID> elemento di <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> messaggi per lo stesso .

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 proprietà. Viene applicata ogni modifica alla tariffa a una singola proprietà.

Nota: se è possibile apportare più modifiche alle tariffe con la stessa tariffa, vengono applicate tutte le modifiche. Nessun ordine specifico è garantito.

RateModifications / HotelRateModifications / @hotel_id 1 string L'identificatore univoco della struttura. Questo valore deve corrispondere alla ID hotel specificato utilizzando <id> nell'elemento <listing> nel feed elenco hotel. L'ID hotel è indicato anche in Hotel Center.
RateModifications / HotelRateModifications / @action 0..1 enum

Se action non è specificato, le modifiche all'interno di questo elemento vengono aggiunti o aggiornati per questo hotel. Se action="overlay" è specificato, quindi tutti i valori definiti in precedenza le modifiche apportate a questo hotel vengono prima eliminate. Quindi, le modifiche qui specificati. Se viene utilizzato action="overlay" e non vengono specificate modifiche all'interno di questo elemento, le modifiche apportate a questo hotel sono state eliminate.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

Una singola modifica alla tariffa per una proprietà.

Nota. È difficile eseguire il debug delle modifiche alle tariffe e consigliano di usarli con parsimonia. Contatta il tuo Technical Account Manager (TAM) per i casi d'uso che richiedono più di 200 modifiche alle tariffe.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string Un identificatore univoco per la modifica della tariffa. Il numero massimo di è pari a 40 caratteri. I caratteri consentiti sono a-z, A-Z, 0-9, _ (trattino basso), - (trattino) e . (punto).
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

Se non specificato e una modifica della tariffa con lo stesso id non viene memorizzato, poi viene memorizzata la modifica della tariffa. In caso contrario, se non specificato e una modifica della tariffa con lo stesso id viene memorizzato, poi la modifica della tariffa esistente viene aggiornato.

Se specificato, il valore deve essere "delete". Se "delete" è specificato, la modifica della tariffa memorizzata con lo stesso id viene eliminata. Quando utilizzi "delete", non includere elementi secondari in <ItineraryRateModification>. Inoltre, "delete" non è consentito in combinazione con <HotelRateModifications action="overlay"/>.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates Un contenitore di uno o più intervalli di date che definiscono il momento in cui la prenotazione deve essere per applicare la modifica della tariffa.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange Un intervallo di date che specifica quando deve essere effettuata la prenotazione per la tariffa la modifica da applicare.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date La data di inizio (in base al fuso orario della proprietà), inclusa, di l'intervallo di date. Questa data deve essere precedente o uguale alla data Data end. Se start non è specificato, la data è di fatto illimitato in termini di data di inizio.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date La data di fine (in base al fuso orario della proprietà), inclusa, della data intervallo di date. Questa data deve essere uguale o successiva alla data Data start. Se end non è specificato, la data è effettivamente 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. In caso contrario specificato, sono consentiti tutti i giorni nell'intervallo di date. Ciascuna nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica determinati giorni della settimana sono consentiti nell'intervallo di date.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

È valida qualsiasi combinazione di caratteri.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow Specifica il periodo di tempo in cui deve essere effettuata la prenotazione rispetto al data del check-in (in base al fuso orario della proprietà). Ad esempio, la finestra di prenotazione può essere impostata su un minimo di 7 giorni, ma non di più di 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 della modifica della tariffa. Se non specificato, non è un 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 della modifica della tariffa. Se non specificato, non è un limite massimo.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates Un contenitore di uno o più intervalli di date che definiscono il momento 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 quando deve essere effettuato il check-in per la tariffa la modifica da applicare. Questo elemento non è obbligatorio se l'eliminazione di una o più modifiche alla tariffa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date La data di inizio (in base al fuso orario della proprietà), inclusa, di l'intervallo di date. Questa data deve essere precedente o uguale alla data Data end. Se start non è specificato, la data è di fatto illimitato in termini di data di inizio.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date La data di fine (in base al fuso orario della proprietà), inclusa, della data intervallo di date. Questa data deve essere uguale o successiva alla data Data start. Se end non è specificato, la data è effettivamente 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. In caso contrario specificato, sono consentiti tutti i giorni nell'intervallo di date. Ciascuna nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica determinati giorni della settimana sono consentiti nell'intervallo di date.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

È valida qualsiasi combinazione di caratteri.

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates Un contenitore di uno o più intervalli di date che definiscono il momento del pagamento 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 per la tariffa la modifica da applicare. Questo elemento non è obbligatorio se l'eliminazione di una o più modifiche alla tariffa.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date La data di inizio (in base al fuso orario della proprietà), inclusa, di l'intervallo di date. Questa data deve essere precedente o uguale alla data Data end. Se start non è specificato, la data è di fatto illimitato in termini di data di inizio.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date La data di fine (in base al fuso orario della proprietà), inclusa, della data intervallo di date. Questa data deve essere uguale o successiva alla data Data start. Se end non è specificato, la data è effettivamente 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. In caso contrario specificato, sono consentiti tutti i giorni nell'intervallo di date. Ciascuna nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica determinati giorni della settimana sono consentiti nell'intervallo di date.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

È valida qualsiasi combinazione di caratteri.

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices Contenitore dell'elenco dei dispositivi utente idonei per il della modifica della tariffa. Se specificato, la modifica della tariffa viene applicata applicata se l'utente corrisponde a uno dei dispositivi elencati. Se non specificato, 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 alla tariffa modifica.
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 soddisfatti.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment Modifica la tariffa moltiplicando AmountBeforeTax e AmountAfterTax per il moltiplicatore specificato
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float Sia AmountBeforeTax che AmountAfterTax sono moltiplicato per questo valore.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule Modifica la tariffa applicando l'ID regola tariffaria specificato.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string Questo ID associa una tariffa a una definizione in File di definizione delle regole tariffarie. Nota:
  • Il limite di caratteri per questo campo è 40.
  • Ogni tariffa può essere associata a una sola regola tariffaria.
  • Se vengono apportate più modifiche a un ID regola tariffaria, il valore l'ID regola tariffaria il più piccolo lessicograficamente assegnato a la tariffa.
  • Se questo ID non corrisponde a una regola tariffaria nella tua definizione di regola tariffaria il file viene considerato non idoneo.
di Gemini Advanced. Vedi questo articolo per informazioni sulle diverse UI delle tariffe private i trattamenti.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable Sovrascrive la rimborsabilità della tariffa con il valore specificato.

Quando imposti gli attributi, tieni presente quanto segue:

  • Questa azione di modifica riscrive completamente la voce Rimborsabile di una tariffa idonea non solo i campi compilati.
  • Se available o refundable_until_days è non impostato, la tariffa non viene visualizzata come rimborsabile.
  • Se available è 0 o false, mentre gli altri vengono ignorati. La tariffa non viene visualizzata come Rimborsabile anche se uno o entrambi gli altri attributi sono impostati.
  • Ti consigliamo di impostare refundable_until_time. in caso contrario impostata, viene utilizzata la prima ora (mezzanotte).
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (Obbligatorio) Impostato su 1 o true per indicare se la tariffa consente un addebito completo refund; altrimenti impostato 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 ricevere un rimborso totale richiesto. 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'ultima ora del giorno, nell'ora locale dell'hotel, che la richiesta di rimborso viene soddisfatta. Questo può essere combinato con refundable_until_days da specificare, per ad esempio "i rimborsi sono disponibili fino alle 16:00 di due giorni prima controllo". Se refundable_until_time non è impostato, il valore il valore predefinito è mezzanotte.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability Sovrascrive la disponibilità della tariffa con il 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 dal fatto che esista un prezzo valido per li annotino.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay Definisce i limiti di durata del soggiorno entro i quali è possibile modificare la tariffa . La modifica della tariffa non viene applicata se la durata del soggiorno è al di fuori dei limiti minimo e massimo.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer Il numero minimo di notti consentito per il soggiorno affinché la modifica della tariffa sia applicata applicati. 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é la modifica della tariffa sia applicata applicati. 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 il valore maggiore tra AmountBeforeTax o AmountAfterTax) che deve per applicare la modifica della tariffa.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer Il valore che deve essere superato affinché la modifica della tariffa venga applicati.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans Contenitore di un elenco di piani tariffari a cui viene applicata la modifica della tariffa . Se <RatePlans> non è specificato, la tariffa la modifica 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 pacchetto, tariffe e disponibilità, come definiti nella sezione Transazione (Dati della proprietà), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ e come identificato dal valore
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string L'identificatore univoco del piano tariffario. Questo valore viene mappato Valore PackageID in <PackageData> in un messaggio Transaction (Property Data) e Attributo RatePlanCode in <StatusApplicationControl> in entrambi <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> messaggi. Il numero massimo di caratteri consentiti è 50.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes Contenitore di un elenco di tipi di camera a cui si applica la modifica della tariffa. La modifica delle tariffe 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. Il tipo di camera è definito in <RoomData> elemento in un Transaction (Property Data) e viene a cui viene fatto riferimento usando il suo valore <RoomID>. (È Il valore <RoomID> fa riferimento anche dal Attributo InvTypeCode in OTA_HotelRateAmountNotifRQ messages.)
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string L'identificatore univoco dell'inventario (tipo di camera). Questo valore viene 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 di uno o più intervalli di date che determinano il modo in cui modifiche alle tariffe, ad esempio per adeguarsi ai prezzi stagionali.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

Descrive come deve essere applicata la modifica dell'aliquota.

I valori validi sono:

  • all: applica la modifica della tariffa a ogni notte in L'itinerario se tutte le date nell'itinerario si sovrappongono con le date del soggiorno.
  • any: applica la modifica della tariffa a tutte le notti in l'itinerario se una qualsiasi data dell'itinerario si sovrappone a una data in l'intervallo di date del soggiorno.

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 apportata la modifica dell'indice applicati.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date La data di inizio (in base al fuso orario della proprietà), inclusa, di l'intervallo di date. Questa data deve essere precedente o uguale alla data Data end. Se start non è specificato, la data è di fatto illimitato in termini di data di inizio.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date La data di fine (in base al fuso orario della proprietà), inclusa, della data intervallo di date. Questa data deve essere uguale o successiva alla data start data. Se end non è specificato, la data è effettivamente 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. In caso contrario specificato, sono consentiti tutti i giorni nell'intervallo di date. Ciascuna nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica determinati giorni della settimana sono consentiti nell'intervallo di date.

I caratteri validi sono:

  • M per lunedì
  • T per martedì
  • W per mercoledì
  • H per giovedì
  • F per venerdì
  • S per sabato
  • U per domenica

È valida qualsiasi combinazione di caratteri.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries Se specificato, la modifica delle tariffe viene applicata solo se l'utente che si trovano in uno dei paesi specificati. Se non specificato, la tariffa la modifica sia applicata indipendentemente dalla località in cui si trova l'utente.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum Il tipo di specifica UserCountries.

I valori validi sono include e exclude.

Se il valore type UserCountries è impostato come include, la modifica della tariffa si applica a degli utenti dei paesi elencati.

Se il valore type UserCountries è exclude, la modifica delle tariffe si applica agli utenti al di fuori dei paesi elencati.

Se il valore type UserCountries non viene impostato, viene trattato come include e la modifica della tariffa si applica agli utenti dei paesi elencati.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country Specifica un paese dell'utente consentito per la modifica delle tariffe.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string Un codice paese CLDR come DE o FR. Tieni presente che, per alcuni paesi, il codice paese CLDR non corrisponde all'ISO di due lettere il prefisso internazionale del paese. Inoltre, i codici regione CLDR non sono supportati.

Esempi

Messaggio di base

L'esempio seguente mostra un messaggio RateModifications di base:

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

L'esempio seguente mostra come eliminare una modifica della tariffa per un 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 un 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>


Sovrapponi tutte le modifiche tariffarie

L'esempio seguente mostra come sovrapporre <HotelRateModifications> per con una o più nuove modifiche alle tariffe. Quando action="overlay", tutte le modifiche alle tariffe memorizzate vengono eliminate prima del giorno memorizzando le modifiche di tariffa specificate nel messaggio corrente:

<?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 a 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 quanto segue elementi e attributi:

Elemento / @attributo Occorrenze Tipo Descrizione
RateModifications 1 Complex element L'elemento principale che indica l'esito positivo o negativo di un Messaggio di richiesta RateModifications.
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 o errori.

<Success> o <Issues> sono presenti in ogni messaggio.

RateModificationsResponse / Issues 0..1 Issues Un container per uno o più problemi riscontrati durante l'elaborazione Messaggio RateModifications.

<Success> o <Issues> sono presenti in ogni messaggio.

RateModificationsResponse / Issues / Issue 1..n Issue La descrizione di un avviso, un errore o un errore riscontrato durante durante l'elaborazione del messaggio RateModifications. I dettagli su questi problemi possono essere trovato in Errore di stato dei feed Messaggi.
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 warning, error, e failure.

Esempi

Operazione riuscita

Di seguito è riportata una risposta a una modifica di RateModifica elaborata 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>