Promotions

Richieste

Sintassi

La sintassi del messaggio Promotions è la seguente:
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="partner_account_name"
            id="message_ID"
            timestamp="timestamp">
  <HotelPromotions hotel_id="HotelID" action="[overlay]">
    <Promotion id="PromotionID" 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>
      <!-- Specify only one of percentage, fixed_amount, or fixed_amount_per_night;
           applied_nights is only used with percentage or fixed_amount_per_night -->
      <Discount percentage="float" fixed_amount="float" fixed_amount_per_night="float"
        applied_nights="integer_1_to_99"/>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <InventoryCount min="integer" max="integer"/>
      <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>
      <Stacking type="[any|base_only|none|second]"/>
      <StayDates application="[all|any|overlap]">
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <UserCountries>
        <Country code="country_code"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>

Elementi e attributi

Il messaggio Promotions contiene i seguenti elementi e attributi:
Elemento / @attributo Occorrenze Tipo Descrizione
Promotions 1 Complex element L'elemento principale di un messaggio contenente promozioni.
Promotions / @partner 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 ID specificato nell'elemento <RequestorID> dei messaggi <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ> per lo stesso account.

Promotions / @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).
Promotions / @timestamp 1 DateTime La data e l'ora di creazione di questo messaggio.
Promotions / HotelPromotions 0..n HotelPromotions

Promozioni relative a una proprietà. Ogni promozione viene applicata a una singola proprietà.

Nota: a meno che non venga utilizzato <Stacking>, quando sono idonee più promozioni viene applicata quella con lo sconto maggiore.

Promotions / HotelPromotions / @hotel_id 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.
Promotions / HotelPromotions / @action 0..1 Enum

Se specificato, il valore deve essere "overlay". Quando il valore è overlay, tutte le promozioni archiviate vengono eliminate prima di archiviare le promozioni specificate nel messaggio corrente.

Se non specificato, allora ogni promozione specificata nel messaggio corrente viene:

  • Aggiunta (se nessuna delle promozioni archiviate ha lo stesso id)
  • Aggiornata (se una promozione archiviata ha lo stesso id)
  • Eliminata (se una promozione archiviata ha lo stesso id e il valore dell'attributo action della promozione specificata nel messaggio corrente è "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

Una singola promozione relativa a una proprietà. Tieni presente che se action="overlay" e <Promotion> non sono specificati, tutte le promozioni relative alla proprietà verranno eliminate.

Nota: se devi utilizzare più di 99 promozioni, contatta il tuo Technical Account Manager (TAM).

Promotions / HotelPromotions / Promotion / @id 1 String Un identificatore univoco per la promozione. Il numero massimo di caratteri consentiti è 40. I caratteri consentiti sono a-z, A-Z, 0-9, _ (trattino basso), - (trattino), e . (punto).
Promotions /HotelPromotions / Promotion / @action 0..1 Enum

Se specificato, il valore deve essere "delete". Se il valore non è specificato e se non viene archiviata una promozione con lo stesso id, allora questa promozione viene archiviata. In caso contrario, se il valore non è specificato e se viene archiviata una promozione con lo stesso id, allora la promozione esistente viene aggiornata.

Se specifichi "delete", la promozione archiviata con lo stesso id viene eliminata. Quando utilizzi "delete", non includere nessun elemento secondario in <Promotion>. Inoltre, non è consentito l'utilizzo di "delete" insieme a <HotelPromotions action="overlay"/>.

Promotions / HotelPromotions / Promotion / 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 promozione.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange Un intervallo di date che specifica il periodo in cui deve essere effettuata la prenotazione affinché venga applicata la promozione.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di inizio.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di fine.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 String

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

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

Sono valide tutte le combinazioni di caratteri.

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow Specifica il periodo di tempo in cui deve essere effettuata la prenotazione rispetto alla data di check-in (in base al fuso orario della proprietà). Ad esempio, è possibile impostare una finestra di prenotazione di almeno 7 giorni, ma non oltre 180 giorni, prima del check-in.
Promotions / HotelPromotions / Promotion / 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 promozione. Se non specificato, non è previsto un limite minimo.
Promotions / HotelPromotions / Promotion / 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 promozione. Se non specificato, non è previsto un limite massimo.
Promotions / HotelPromotions / Promotion / 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 promozione.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange Un intervallo di date che specifica il periodo in cui deve essere effettuato il check-in affinché venga applicata la promozione. Questo elemento non è richiesto se stai eliminando una o più promozioni.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di inizio.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di fine.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week 0..1 String

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

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

Sono valide tutte le combinazioni di caratteri.

Promotions / HotelPromotions / Promotion / 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 promozione.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange Un intervallo di date che specifica il periodo in cui deve essere effettuato il check-out affinché venga applicata la promozione. Questo elemento non è richiesto se stai eliminando una o più promozioni.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di inizio.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di fine.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week 0..1 String

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

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

Sono valide tutte le combinazioni di caratteri.

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices Contenitore dell'elenco di dispositivi utente idonei alla promozione. Se specificato, la tariffa scontata viene offerta solo agli utenti idonei che utilizzano i dispositivi inseriti nell'elenco. Se non specificato, la tariffa scontata viene offerta agli utenti idonei che utilizzano qualsiasi dispositivo.
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device Definisce un tipo di dispositivo utente idoneo alla promozione.
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 Enum Un tipo di dispositivo. Il valore deve essere desktop, tablet o mobile.
Promotions / HotelPromotions / Promotion / Discount 1 Discount Specifica lo sconto da applicare a questa promozione.
Promotions / HotelPromotions / Promotion / Discount / @percentage 0..1 Float Nota: è necessario specificare un solo valore tra percentage, fixed_amount e fixed_amount_per_night.

Un valore decimale compreso tra 0 e 100 che specifica la percentuale di sconto. Viene applicato a AmountAfterTax (o AmountBeforeTax se AmountAfterTax non è specificato).

Esempi:

  • Se AmountAfterTax è 100 e percentage è 20, allora

    tariffa promozionale = AmountAfterTax * (1 - percentuale di sconto)

    80,00 = 100 * (1 - 0,2)

  • Se AmountBeforeTax è 100, percentage è 20 e TaxFeeInfo specifica una tassa pari a 10, allora

    tariffa promozionale = AmountBeforeTax * (1 - percentuale di sconto) + tassa

    90,00 = 100 * (1 - 0,2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 Float Nota: è necessario specificare un solo valore tra percentage, fixed_amount e fixed_amount_per_night.

Un importo fisso che deve essere sottratto dalla somma delle tariffe per notte di AmountAfterTax (o dalla somma delle tariffe per notte di AmountBeforeTax se AmountAfterTax non è specificato). Si presume che la valuta sia la stessa delle tariffe per notte. Se questo valore è maggiore della somma delle tariffe per notte, si avrà un valore pari a zero.

Esempi:

  • Se si sta definendo il prezzo di un soggiorno di una notte in cui AmountBeforeTax è 90, AmountAfterTax è 100 e fixed_amount è 20, allora

    tariffa promozionale = AmountAfterTax - sconto fisso

    80,00 = 100 - 20

  • Se si sta definendo il prezzo di un soggiorno di una notte in cui AmountBeforeTax è 100, fixed_amount è 20 e TaxFeeInfo specifica una tassa pari all'8%, allora

    tariffa promozionale = (AmountBeforeTax - sconto fisso) * (1 + tassa percentuale)

    86,40 = (100 - 20) * 1,08

  • Se si sta definendo il prezzo di un soggiorno di una notte in cui AmountBeforeTax è 50, fixed_amount è 60 e TaxFeeInfo specifica una tassa pari a 10, allora

    tariffa promozionale = (AmountBeforeTax - sconto fisso) * tassa

    10,00 = 0 + 10

  • Se si sta definendo il prezzo di un soggiorno di tre notti in cui i valori di AmountAfterTax sono 100, 110 e 120, con fixed_amount pari a 150, allora

    tariffa promozionale = somma (AmountAfterTax) - (sconto fisso)

    180,00 = (100 + 110 + 120) - 150

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night 0..1 Float Nota: è necessario specificare un solo valore tra percentage, fixed_amount e fixed_amount_per_night.

Uno sconto fisso applicato a ogni tariffa per notte di AmountAfterTax (o alla notte meno costosa se viene specificato applied_nights). Se AmountAfterTax non è specificato, viene applicato a AmountBeforeTax. Si presume che la valuta sia la stessa delle tariffe per notte. Se fixed_amount_per_night è maggiore di una tariffa per notte, tale tariffa sarà ridotta a zero poiché lo sconto non può far diventare negativa una tariffa per notte.

Esempi:

  • Se si sta definendo il prezzo di un soggiorno di tre notti in cui i valori di AmountAfterTax sono 100, 110 e 120, con fixed_amount_per_night pari a 10, allora

    tariffa promozionale = somma (AmountBeforeTax - importo sconto fisso)

    300,00 = ((100 - 10) + (110 - 10) + (120 - 10))

  • Se si sta definendo il prezzo di un soggiorno di tre notti in cui i valori di AmountAfterTax sono 10, 50 e 100, con fixed_amount_per_night pari a 20, allora

    tariffa promozionale = somma (AmountAfterTax - importo sconto fisso)

    110,00 = (0 + (50 - 20) + (100 - 20))

Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 Integer Nota: deve essere utilizzato solo con percentage o fixed_amount_per_night.

Il numero di notti a cui viene applicato lo sconto, a partire dalla meno costosa. Deve essere un numero intero compreso tra 1 e 99. Se non specificato, lo sconto viene applicato a tutte le notti.

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount Definisce le restrizioni relative al numero di camere che devono essere disponibili affinché la promozione venga applicata. Lo sconto viene applicato solo alle notti che soddisfano il vincolo. Non consentito con lo sconto fixed_amount. Tieni presente che il numero di camere disponibili viene specificato con OTA_HotelInvCountNotifRQ (InvCount) oppure OTA_HotelAvailNotifRQ (BookingLimit).
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 Integer Il numero minimo di camere che deve essere disponibile affinché la promozione venga applicata alla tariffa per notte. Se non specificato, non è previsto un limite minimo.
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 Integer Il numero massimo di camere che devono essere disponibili affinché la promozione venga applicata alla tariffa per notte. Se non specificato, non è previsto un limite massimo.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay Definisce i limiti di durata del soggiorno entro i quali è applicabile questa promozione. La promozione non viene applicata quando la durata del soggiorno non è compresa tra il limite minimo e massimo.
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 Integer Il numero minimo di notti consentito per il soggiorno affinché venga applicata la promozione. Se non specificato, non è previsto un limite minimo.
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 Integer Il numero massimo di notti consentito per il soggiorno affinché venga applicata la promozione. Se non specificato, non è previsto un limite massimo.
Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount Specifica la somma minima delle tariffe giornaliere della camera (utilizzando il valore più grande tra AmountBeforeTax e AmountAfterTax) che deve essere superata affinché la promozione venga applicata.
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 Integer Il valore che deve essere superato affinché la promozione venga applicata.
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans Contenitore di un elenco dei piani tariffari a cui si applica la promozione. Se <RatePlans> non è specificato, la promozione si applica a tutti i piani tariffari.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan 1..n RatePlan Specifica un piano tariffario. Il piano tariffario viene definito da una combinazione di pacchetti, tariffe e disponibilità, come definito nei messaggi Transaction (Property Data), OTA_HotelRateAmountNotifRQ e OTA_HotelAvailNotifRQ e come identificato da PackageID.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 String L'identificatore univoco del piano tariffario. Questo valore è mappato al valore PackageID in <PackageData> all'interno di un messaggio Transaction (Property Data) e nell'attributo RatePlanCode in <StatusApplicationControl> nei messaggi <OTA_HotelRateAmountNotifRQ> e <OTA_HotelAvailNotifRQ>. Il numero massimo di caratteri consentiti è 50.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes Contenitore di un elenco dei tipi di camera a cui si applica la promozione. La promozione viene applicata a ogni <RoomType> specificato. Se <RoomTypes> non è specificato, la promozione si applica a tutte le camere.
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType Specifica un tipo di camera. Il tipo di camera viene definito in un elemento <RoomData> all'interno di un messaggio Transaction (Property Data) e vi viene fatto riferimento tramite il relativo valore <RoomID> (al valore <RoomID> viene fatto riferimento anche tramite l'attributo InvTypeCode nei messaggi OTA_HotelRateAmountNotifRQ).
Promotions / HotelPromotions / Promotion / 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.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking Specifica in che modo possono essere combinate le promozioni. Se non specificato, si presume che "type" sia base_only.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 Enum

Questa impostazione specifica se a una singola tariffa sono applicabili più promozioni:

  • any: cumulabile con qualsiasi altra promozione.
  • base_only: se è possibile utilizzare un valore base_only nella combinazione, viene selezionato e applicato quello che offre lo sconto migliore. È possibile inserire una sola promozione base_only in una combinazione; verrà applicata per prima, seguita dalle altre promozioni.
  • second: se è possibile utilizzare un valore second nella combinazione, viene selezionato e applicato quello che offre lo sconto migliore. È possibile inserire una sola promozione second in una combinazione; verrà applicata per seconda, dopo base_only (se applicabile) e prima delle promozioni any.
  • none: non cumulabile con altre promozioni.

Tra le combinazioni consentite, alla tariffa verrà applicato l'insieme di promozioni che offre lo sconto più elevato.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates Un contenitore per uno o più intervalli di date che determinano come viene applicata la promozione, ad esempio per rispecchiare gli sconti stagionali.
Promotions / HotelPromotions / Promotion / StayDates / @application 1 Enum

Descrive in che modo deve essere applicata la promozione.

I valori validi sono:

  • all: applica la promozione a ogni notte nell'itinerario se tutte le date nell'itinerario si sovrappongono alle date del soggiorno.
  • any: applica la promozione a tutte le notti nell'itinerario se una qualsiasi data nell'itinerario si sovrappone a una data nell'intervallo di date del soggiorno.
  • overlap: applica la promozione solo alle notti dell'itinerario che si sovrappongono a una data compresa nell'intervallo di date del soggiorno.

Questo attributo deve essere sempre specificato.

  • Se per <Discount> è specificato percentage e application è impostato su all o any, lo sconto viene applicato come percentuale dell'intero soggiorno.
  • Se per <Discount> è specificato percentage e application è impostato su overlap, lo sconto viene applicato come percentuale delle tariffe per notte per le notti che si sovrappongono.
  • La combinazione di <Discount> con specificato fixed_amount e application impostato su overlap non è valida.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange Un intervallo di date che specifica le date in cui deve essere applicata la promozione.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di inizio.
Promotions / HotelPromotions / Promotion / 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 risulta a tutti gli effetti illimitato in termini di data di fine.
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 String

I giorni della settimana consentiti nell'intervallo di date. Se il valore non viene specificato, saranno consentiti tutti i giorni nell'intervallo di date. Ogni carattere nella stringa specifica un giorno. Ad esempio, "MTWHF" specifica che nell'intervallo di date sono consentiti i giorni feriali.

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

Sono valide tutte le combinazioni di caratteri.

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries Contenitore dell'elenco relativo alle località degli utenti (paesi) idonee per la promozione. Se specificato, la tariffa scontata viene offerta solo agli utenti idonei che si trovano nei paesi inseriti nell'elenco. Se non specificato, la tariffa scontata viene offerta agli utenti idonei che si trovano in qualunque paese.
Promotions / HotelPromotions / Promotion / UserCountries / Country 1..50 Country Definisce un paese in cui gli utenti sono idonei alla promozione.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 String Un codice paese CLDR, ad esempio DE o FR. Nota che per alcuni paesi il codice paese CLDR non corrisponde a quello ISO di due lettere. Inoltre, non sono supportati i codici regione CLDR.

Esempi

Messaggio di base

L'esempio seguente mostra un messaggio Promotions di base:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <Discount percentage="20" applied_nights="2"/>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <Stacking type="base_only"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="UK"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>

Condizione inventario

Il seguente esempio mostra come creare uno sconto se è presente inventario in eccesso in prossimità della data di arrivo:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow max="7"/>
      <Discount percentage="10"/>
      <InventoryCount min="3"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

Eliminare una promozione

L'esempio seguente mostra come eliminare una promozione relativa a una proprietà:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1" action="delete"/>
  </HotelPromotions>
</Promotions>

Eliminare tutte le promozioni

L'esempio seguente mostra come eliminare tutte le promozioni relative a una proprietà:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>

Sostituire tutte le promozioni

L'esempio seguente mostra come sostituire <HotelPromotions> per una proprietà con una o più nuove promozioni. Quando action="overlay", tutte le promozioni archiviate vengono eliminate prima dell'archiviazione delle promozioni specificate nel messaggio corrente:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay"/>
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <Discount percentage="10"/>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <Stacking type="base_only"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

Risposte

Sintassi

La sintassi del messaggio PromotionsResponse è la seguente:
<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_account_name">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</PromotionsResponse>

Elementi e attributi

Il messaggio PromotionsResponse contiene i seguenti elementi e attributi:
Elemento / @attributo Occorrenze Tipo Descrizione
PromotionsResponse 1 Complex element L'elemento principale che indica se l'esito è positivo o negativo per un messaggio di richiesta Promotions ricevuto.
PromotionsResponse / @timestamp 1 DateTime La data e l'ora di creazione di questo messaggio.
PromotionsResponse / @id 1 String L'identificatore univoco del messaggio Promotions associato.
PromotionsResponse / @partner 1 String L'account partner di questo messaggio.
PromotionsResponse / Success 0..1 Success Indica che il messaggio Promotions è stato elaborato correttamente senza avvisi, errori o problemi.

In ogni messaggio è presente <Success> o <Issues>.

PromotionsResponse / Issues 0..1 Issues Un contenitore per uno o più problemi riscontrati durante l'elaborazione del messaggio Promotions.

In ogni messaggio è presente <Success> o <Issues>.

PromotionsResponse / Issues / Issue 1..n Issue La descrizione di un avviso, un errore o un problema riscontrato durante l'elaborazione del messaggio Promotions. Per informazioni dettagliate su questi problemi, consulta la sezione Messaggi di errore relativi allo stato dei feed.
PromotionsResponse / Issues / Issue / @code 1 Integer L'identificatore del problema.
PromotionsResponse / Issues / Issue / @status 1 Enum

Il tipo di problema riscontrato.

I valori validi sono warning, error e failure.

Esempi

Success

Di seguito è riportata una risposta a un messaggio Promotions elaborato correttamente.

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_account_name">
  <Success/>
</PromotionsResponse>

Issues

Di seguito è riportata una risposta a un messaggio Promotions non elaborato a causa di errori.

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_account_name">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</PromotionsResponse>