プロモーション

概要

この API を使用すると、適用可能な割引を指定できます。指定したプロモーションのうち Google は、対象プロモーション、またはプロモーション セットを 最安値でした任意のレートに対応している API を探している場合 条件に応じて価格を増減できる調整 次に Rate Modifications API。 両方の API が存在する場合、レート変更が 。

リクエスト

構文

Promotions メッセージには次の構文が使用されます。

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
            id="message_ID"
            timestamp="timestamp">
  <HotelPromotions hotel_id="HotelID" action="[overlay]">
    <Promotion id="PromotionID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
      </BookingDates>
      <BookingWindow min="integer_or_duration" max="integer_or_duration"/>
      <Ceiling amount_per_night="float"/>
      <Floor amount_per_night="float"/>
      <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, fixed_amount_per_night,
           fixed_price, or fixed_price_per_night; applied_nights is only used
           with percentage, fixed_amount_per_night, and fixed_price_per_night. -->
      <Discount percentage="float" fixed_amount="float" fixed_amount_per_night="float"
                fixed_price="float" fixed_price_per_night="float"
                applied_nights="integer_1_to_99" rank="integer_1_to_99">
        <!-- FreeNights may not be used in conjunction with attributes on Discount -->
        <FreeNights stay_nights="integer" discount_nights="integer"
                    discount_percentage="float" night_selection="[cheapest|last]"
                    repeats="boolean"/>
      </Discount>
      <!-- Exactly one of Discount or BestDailyDiscount must be specified.
           Specify only one of percentage, fixed_amount, or fixed_price. -->
      <BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <InventoryCount min="integer" max="integer"/>
      <LengthOfStay min="integer" max="integer"/>
      <MembershipRateRule id="RateRuleID"/>
      <MinimumAmount before_discount="integer"/>
      <Occupancy min="integer" max="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|none|second]"/>
      <StayDates application="[all|any|overlap]">
        <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>
    </Promotion>
  </HotelPromotions>
</Promotions>

要素と属性

プロモーション メッセージには、次の要素と属性があります。

要素 / @Attribute 発生回数 タイプ 説明
Promotions 1 Complex element プロモーション メッセージのルート要素。
Promotions / @partner 1 string このメッセージのパートナー アカウント。この文字列値は、トレーニング データの [パートナー キー]記載されている値 <ph type="x-smartling-placeholder"></ph> Hotel Center の [アカウント設定] ページ

Google 検索にフィードを提供するバックエンドがある場合、 複数のアカウントがある場合、この値は ID <RequestorID> で指定された属性値 <OTA_HotelRateAmountNotifRQ> の要素と 同じメッセージ <OTA_HotelAvailNotifRQ> 件 あります。

Promotions / @id 1 string このリクエスト メッセージの一意の識別子。この値は レスポンス メッセージで識別されます。使用できる文字は、a ~ z、A ~ Z、0 ~ 9、_ です。 (アンダースコア)、-(ダッシュ)を使用できます。
Promotions / @timestamp 1 DateTime このメッセージの作成日時。
Promotions / HotelPromotions 0..n HotelPromotions

宿泊施設のプロモーション。各プロモーションは 1 つの プロパティです。

<Stacking> を使用しない限り、 最も割引率の高いプロモーションが予約に適用されます。 複数のプロモーションが対象になります。

Promotions / HotelPromotions / @hotel_id 1 string 宿泊施設の一意の識別子。この値は、 を使用して指定したホテル ID <listing> 要素内の <id> ホテルリスト フィードで表示できます。ホテル ID は Hotel Center にも表示されます。
Promotions / HotelPromotions / @action 0..1 enum

指定する場合、値は "overlay"。値が "overlay" の場合、 保存されているプロモーションは、指定したプロモーションを保存する前に削除される クリックします。

指定しない場合、現在の メッセージは次のいずれかです。

  • Added(どの保存済みプロモーションにも 同じ id
  • Updated(保存済みのプロモーションに同じ id)
  • Deleted(保存済みのプロモーションに同じ idaction 属性の値 現在のメッセージで指定されたプロモーションに対する "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

宿泊施設の 1 件のプロモーション。なお、 action="overlay"<Promotion> は を指定しなかった場合、宿泊施設のすべてのプロモーションが削除されます。

99 件を超えるプロモーションを利用する必要がある場合は、お問い合わせください。 テクニカルアカウントマネージャー(TAM)にお問い合わせください。

Promotions / HotelPromotions / Promotion / @id 1 string プロモーションの一意の識別子。使用できる Pod の数は、 40 文字以内で指定してください。使用できる文字は、a ~ z、A ~ Z、0 ~ 9、 _(アンダースコア)、-(ダッシュ)、.(ピリオド)を使用します。
Promotions /HotelPromotions / Promotion / @action 0..1 enum

指定する場合、値は delete にする必要があります。回答が「いいえ」の場合 指定され、 同じ id のプロモーションが保存されない場合、この プロモーションが保存されます特に指定しなかった場合、および 同じ id が格納されている場合、既存のプロモーションは 更新しました。

delete が指定されている場合、 同じ id が削除されます。 delete を使用する場合は、子要素を <Promotion>。また、delete<HotelPromotions action="overlay"/> と組み合わせて使用できます。

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates 予約が行われるタイミングを定義する 1 つ以上の範囲のコンテナ プロモーションが適用されます
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange プロモーションの対象となる予約が必要なタイミングを指定する範囲 適用されました。
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 Date または DateTime

開始日または開始日(プロパティのタイムゾーンに基づきます)。 含まれます。

  • start で指定された日付または日時は、 が end
  • start が指定されていない場合、範囲は実質的に 開始時間については無制限です
  • start が日付「YYYY-MM-DD」として入力されている場合、 日時「YYYY-MM-DDT00:00:00」として解釈されます。
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date または DateTime

終了日または日時(プロパティのタイムゾーンに基づきます)。 含まれます。

  • end には、それ以降の日付または日時を指定する必要があります が start
  • end が指定されていない場合、範囲は実質的に 終了時間については無制限です
  • end の日付「YYYY-MM-DD」を指定した場合、 日時「YYYY-MM-DDT23:59:59」として解釈されます。
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。回答が「いいえ」の場合 すべての日付を指定できます。各 日付を指定します。例: 「MTWHF」指定 指定することもできます。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow 予約が行われる必要がある期間を、 チェックイン日(宿泊施設のタイムゾーンに基づきます)。たとえば、 予約可能期間は 7 ~ 180 日に設定できます。 確認できます。
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration チェックインまでの最低予約時間 設定されます。この値が指定されていない場合、または 0 の場合、最小値はありません。

有効な値の型は次のとおりです。

  • 整数: チェックインまでの日数 できます。たとえば、値 30 は、 プロモーションは、 チェックイン日。
  • ISO 8601 の期間(日、時間、分): チェックイン日の日数(および必要に応じて時間/分)対象 たとえば、値 P30D は、プロモーションのみが は、チェックイン日の 30 日以上前の予約に適用されます。 金額 P30DT6H を利用するには、18:00 までに予約する必要があります 到着の 30 日前までに変更できます
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration 予約が行われるチェックインまでの最大日数 設定されます。この値が指定されていない場合、または 0 に上限はありません。

有効な値の型は次のとおりです。

  • 整数: チェックインまでの日数 できます。たとえば、値 30 は、 プロモーションは、 チェックイン日。
  • ISO 8601 の期間(日、時間、分): チェックイン日の日数(および必要に応じて時間/分)対象 たとえば、値 P30D は、プロモーションのみが は、チェックイン日の 30 日前までの予約に適用されます。 金額 P30DT6H の場合は 18:00 以降に予約が必要です 到着の 30 日前までに変更できます
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

レートに設定できる最大値の制限を定義します プロモーション適用後の機能です

プロモーションでは、必ず <Discount> または <BestDailyDiscount>。プロモーションを <Ceiling> のみを適用する場合、オプションの一つは、 <Discount>percentage 0

併用が構成されている場合、 <Ceiling> は 1 回の宿泊に適用されます。各プロモーション 割引率が適用され、その直後に上限が適用されます。「 次の例は、各天井が次の プロモーションの計算は スタック内で行われます

例:

AmountBeforeTax の 1 泊の料金 100 であり、次の 2 つのプロモーションがスタックされています。

  1. スタッキング タイプ base のプロモーション fixed_amount / 25、上限 amount_per_night / 60
  2. スタッキング タイプ second のプロモーション、 fixed_amount / 25、上限 amount_per_night / 90

計算の順序は次のとおりです。

  1. base プロモーションが最初に適用され、割引が適用されます AmountBeforeTax が 75 になったが、その後天井が下がる 60 にします。
  2. second のプロモーションで AmountBeforeTax(60 ~ 35)。これは天井の下です 90 に設定されるため、2 つ目の上限は適用されません。最終的なレートは 35

全体の上限が 60 よりも厳しいという事実は、 そのプロモーションの場合にのみ有効で、 プロモーション スタック全体にまたがり制限を設けることができます。

Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night 1 float

この期間の終了後に 1 泊の料金を設定できる最大額 適用されます。

<Floor> 要素も指定されている場合、 は amount_per_night 属性: <Floor>

amount_per_night は、以下の場合に税金と手数料に適用されます。 AmountAfterTax を使用して 1 泊の料金に含まれているが、 TaxFeeInfo で指定されたもの以外)。

Promotions / HotelPromotions / Promotion / Floor 0..1 Floor

レートに設定できる最小値の制限を定義します プロモーション適用後の機能です

プロモーションでは、必ず <Discount> または <BestDailyDiscount>。プロモーションを <Floor> のみを適用する場合、オプションの一つは、 <Discount>percentage 0

<Floor> のロジックは引き続き適用対象 <FreeNights> の割引(無料宿泊に 100% の割引が適用されます。

併用が構成されている場合、 <Floor> は 1 回の宿泊に適用されます。各プロモーション 割引率が適用され、その直後に下限が続きます。「 次の例は、各階が次の階数にどのように寄与するかを示しています。 プロモーションの計算は スタック内で行われます

例:

AmountBeforeTax の 1 泊の料金 100 であり、次の 2 つのプロモーションがスタックされています。

  1. スタッキング タイプ base のプロモーション fixed_amount / 25、階数 amount_per_night / 90
  2. スタッキング タイプ second のプロモーション、 fixed_amount / 25、階数 amount_per_night / 60

計算の順序は次のとおりです。

  1. base プロモーションが最初に適用され、割引が適用されます AmountBeforeTax が 75 に引き上げられ、 最大 90
  2. second のプロモーションで AmountBeforeTax(90 ~ 65)。階数を超えています 60 なので 2 階には適用されません。最終的なレートは 65

全体の最小価格が 90 より高いという事実は そのプロモーションの場合にのみ有効で、 最小価格になります

Promotions / HotelPromotions / Promotion / Floor / @amount_per_night 1 float

この期間の終了後に 1 泊の料金を設定できる最小金額 適用されます。

<Ceiling> 要素も指定されている場合、 以下の値に設定する必要があります。 amount_per_night 属性: <Ceiling>

amount_per_night は、以下の場合に税金と手数料に適用されます。 AmountAfterTax を使用して 1 泊の料金に含まれているが、 TaxFeeInfo で指定されたもの以外)。

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates チェックインをいつ行う必要があるかを定義する 1 つ以上の期間のコンテナ プロモーションが適用されます
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

プロモーションのチェックインが必要な期間を指定する期間 適用されます。1 つ以上のデータを削除する場合、この要素は必要ありません。 。

YearlessDate 形式もサポートされています。

  • start または end のいずれかが年なしの場合 両方とも年なしの日付として入力する必要があります。
  • 複数年の年なし期間を設定する場合は、翌年を前後に設定することはできません。代わりに 連続する 2 つの期間として表されます。たとえば {"12-29", "01-05"}{"12-29", "12-31"} で表すことができます。また、 {"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate 開始日(プロパティのタイムゾーンに基づく、次の日付を含む) 期間を選択します。この日付は、 end 日。start が指定されていない場合、日付 開始日に関して実質的に無制限です。
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0..1 Date or YearlessDate 終了日を含む(プロパティのタイムゾーンに基づく)終了日 期間。この日付は、start 以降の日付にする必要があります できます。end が指定されていない場合、日付 終了日に関して実質的に無制限です。
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。回答が「いいえ」の場合 すべての日付を指定できます。各 日付を指定します。例: 「MTWHF」指定 指定することもできます。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates チェックアウトのタイミングを定義する 1 つ以上の期間のコンテナ 必要があります。
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

プロモーションのチェックアウトのタイミングを指定する期間 適用されます。Cloud Logging または Cloud Logging を 1 つ以上のプロモーションの削除

YearlessDate 形式もサポートされています。

  • start または end のいずれかが年なしの場合 両方とも年なしの日付として入力する必要があります。
  • 複数年の年なし期間を設定する場合は、翌年を前後に設定することはできません。代わりに 連続する 2 つの期間として表されます。たとえば {"12-29", "01-05"} は次のように表すことができます。 {"12-29", "12-31"}{"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate 開始日(プロパティのタイムゾーンに基づく、次の日付を含む) 期間を選択します。この日付は、 end 日。start が指定されていない場合、日付 開始日に関して実質的に無制限です。
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate 終了日を含む(プロパティのタイムゾーンに基づく)終了日 期間。この日付は、start 以降の日付にする必要があります できます。end が指定されていない場合、日付 終了日に関して実質的に無制限です。
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。回答が「いいえ」の場合 すべての日付を指定できます。各 日付を指定します。例: 「MTWHF」指定 指定することもできます。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices 対象となるユーザー デバイスをリストするためのコンテナ 。指定した場合、リストに記載されているデバイスの対象ユーザーのみ 割引料金が適用されます指定しない場合、任意の 割引料金が適用されます。
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device プロモーションの対象となるユーザー デバイスのタイプを 1 種類定義します。
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum デバイスの種類。値は desktop にする必要があります。 tablet または mobile
Promotions / HotelPromotions / Promotion / Discount 1 Discount

Discount または BestDailyDiscount を指定する必要があります。

このプロモーションに適用する割引を指定します。

Promotions / HotelPromotions / Promotion / Discount / @percentage 0..1 float

percentagefixed_amountfixed_amount_per_nightfixed_price、または fixed_price_per_night: 必要ありません。

割引率を示す 0 ~ 100 の小数値。 AmountAfterTax(または AmountAfterTax が次の値でない場合は AmountBeforeTax あります)。

例:

  • AmountAfterTax が 100 で、percentage の場合 20 の場合、

    プロモーション率 = AmountAfterTax × (1 - 割合 割引)

    80.00 = 100 × (1 - 0.2)

  • AmountBeforeTax が 100 の場合、 percentage が 20 で、TaxFeeInfo が税金 10 を指定している場合、 次に

    プロモーション率 = AmountBeforeTax × (1 - 割合 (割引)+ 税金

    90.00 = 100 × (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

percentagefixed_amountfixed_amount_per_nightfixed_price、または fixed_price_per_night: 必要ありません。

合計金額から差し引かれる定額です。 AmountAfterTax の 1 泊の料金(または 宿泊料金の合計が AmountBeforeTax の場合 AmountAfterTax を指定しない)。想定値: 1 泊あたりの料金と同じ通貨で表示する必要がありますこの値が 宿泊料金の合計を計算する場合、結果としての値は 0 になります。

例:

  • 1 泊の料金なら AmountBeforeTax は 90 です。 AmountAfterTax は 100、fixed_amount は 20 の場合、

    プロモーション レート = AmountAfterTax - 固定 割引

    80.00 = 100 - 20

  • 1 泊の料金なら AmountBeforeTax は 100、fixed_amount です が 20、TaxFeeInfo で税金 8% が指定されている場合、

    プロモーション率 =(AmountBeforeTax - 固定) 割引)×(1 + 税額)

    86.40 = (100 - 20) × 1.08

  • 1 泊の料金なら AmountBeforeTax は 50、fixed_amount は 60、TaxFeeInfo で税金 10 が指定されている場合、

    プロモーション率 =(AmountBeforeTax - 固定) 割引)× 税

    10.00 = 0 + 10 となります。

  • 3 泊の滞在で料金が発生する場合、 AmountAfterTax の値は 100、110、120 です。および fixed_amount が 150 の場合、

    プロモーション率 = sum(AmountAfterTax) - (固定) 割引)

    180.00 = (100 + 110 + 120) - 150

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night 0..1 float

percentagefixed_amountfixed_amount_per_nightfixed_price、または fixed_price_per_night: 必要ありません。

固定割引が各 AmountAfterTax に適用されます 宿泊料金( applied_nights が指定されている場合は最安の N)。条件 AmountAfterTax の指定がない場合、適用対象です。 AmountBeforeTax。想定値: 1 泊あたりの料金と同じ通貨で表示する必要があります条件 fixed_amount_per_night は次より大きい: 1 泊あたりの宿泊料金はゼロに減り、 割引によって 1 泊の料金がマイナスになることはありません。

例:

  • 3 泊の滞在で料金が発生する場合、 AmountAfterTax の値は 100、110、120 です。および fixed_amount_per_night が 10 の場合、

    プロモーション率 = sum(AmountBeforeTax - 固定額 割引)

    300.00 = ((100 - 10) + (110 - 10) + (120 - 10))

  • 3 泊の滞在で料金が発生する場合、 AmountAfterTax の値は 10、50、100 です。および fixed_amount_per_night が 20 の場合、

    プロモーション率 = sum(AmountAfterTax - 固定額 割引)

    110.00 = (0 + (50 - 20) + (100 - 20))

Promotions / HotelPromotions / Promotion / Discount / @fixed_price 0..1 float

percentagefixed_amountfixed_amount_per_nightfixed_price、または fixed_price_per_night: 必要ありません。

AmountAfterTax の 1 泊の料金が指定されている場合、 は、宿泊料金(税金と手数料を含む)を 表示されます。AmountBeforeTax が指定されている場合、 AmountAfterTax が指定されているかどうかに関係なく、 宿泊の税抜き価格を値上げします想定値: 1 泊あたりの料金と同じ通貨で表示する必要があります

AmountAfterTax がなんらかのイベントを表す 固定価格を設定する場合は AmountBeforeTaxでは不正確な税金や手数料が発生する可能性があります。 通常は、TaxFeeInfo を使用することを強くおすすめします。 宿泊施設の税金と手数料を指定します。

例:

  • 1 泊の料金なら AmountBeforeTax は 90 です。 AmountAfterTax は 100、fixed_price は 80 の場合 プロモーションレートは 80 です
  • 1 泊の料金なら AmountBeforeTax は 100、fixed_amount です 80 で、TaxFeeInfo で税金 8% が指定されている場合、

    プロモーションレート = 固定価格 × (1 + 税金)

    86.40 = 80 × 1.08

  • 3 泊の滞在で料金が発生する場合、 AmountAfterTax の値は 100、110、120 です。および fixed_amount が 300 の場合、

    プロモーション率 = 300

Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night 0..1 float

percentagefixed_amountfixed_amount_per_nightfixed_price、または fixed_price_per_night: 必要ありません。

AmountAfterTax の 1 泊の料金が指定されている場合、 は、1 泊あたりの宿泊料金(税金と手数料を含む)を 表示されます。AmountBeforeTax が指定されている場合、 AmountAfterTax が指定されているかどうかに関係なく、 1 泊あたりの宿泊料金(税抜きの価格)を、指定された値に加算します。内容 1 泊の料金と同じ通貨を使用するものとみなされます。

AmountAfterTax がなんらかのイベントを表す 固定価格を設定する場合は AmountBeforeTaxでは不正確な税金や手数料が発生する可能性があります。 通常は、TaxFeeInfo を使用することを強くおすすめします。 宿泊施設の税金と手数料を指定します。

applied_nights を指定した場合、新しい価格は次のようになります。 適用されます。

例:

  • 2 泊の料金なら AmountBeforeTax の値は 90、90 です。 AmountAfterTax の値は 100、100 です。および fixed_price が 80 の場合、プロモーション料金 80 + 80 = 160 となります。
  • 2 泊の料金なら AmountBeforeTax は 100、100 です。fixed_amount 80 で、TaxFeeInfo で税金 8% が指定されている場合、プロモーション率は (80 + 80)× 1.08 = 172.8 となります。
  • 3 泊の滞在で料金が発生する場合、 AmountAfterTax の値は 100、110、120 です。および fixed_amount が 110 の場合、プロモーション レートは 110 * 3 です = 330。
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

これは percentage または fixed_amount_per_night

割引が適用される宿泊日数 最も安価な方法です1 ~ 99 の整数にする必要があります。指定しない場合、 割引はすべての宿泊に適用されます。

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights 最低宿泊日数がある場合に、特定の宿泊日数に対する割引を指定します 長さが満たされます。親 Discount 要素の属性 この要素が使用されている場合は使用できません。
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

割引を適用するために必要な宿泊日数。各 割引は宿泊の別のセグメントに適用されます。

たとえば、10 泊する場合、stay_nights は 4(かつ repeats が true)の場合、2 泊になります。 セグメント:第 1 夜から第 4 夜、第 5 夜から第 8 夜 9 泊と 10 泊は宿泊セグメントに含まれません。

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer 滞在日数の各区分に含まれる割引料金。
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float 宿泊割引に適用される割引。この値が 50 の場合、選択した泊ごとに 50% 割引になります。
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string cheapest または last のいずれかを指定します。条件 last: 滞在セグメントの終了時の宿泊日数 宿泊料金が割引されます。cheapest の場合、最安値 滞在日数のセグメントに含まれる宿泊日数に割引が適用されます。
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

複数連泊に割引を適用できるかどうか 分割しますfalse の場合、滞在の区分のみ 旅行プランの開始時に割引が適用されますtrue の場合: すべての宿泊日数に割引が適用されます。

たとえば、stay_nights が 4 で旅行プランが 10 の場合 泊数、repeatstrue の場合: 2 セグメントには割引料金が適用されます(1 ~ 4 泊と 5 ~ 8 泊)。ただし、 repeatsfalseの場合、セグメントは 1 つだけ 割引料金(1 ~ 4 泊)。

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer このプロモーションにランクを割り当てて、ランク付けされた選択にオプトインします。ここで、 ランクが最も低いプロモーションのみが適用されます。値 1 ~ 99 の値にする必要があります。複数のプロモーションが同じ ランダムに 1 つが選択され、適用されます。
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

Discount または BestDailyDiscount を指定する必要があります。

以下の 1 泊に対して適用できる 1 日あたりの割引を指定します。 とどまることだ。これは、次の条件に当てはまる Discount とは対照的です。 滞在日数に応じた割引が適用されます

各宿泊施設には、プロモーションの単一のグループが 「毎日ベスト」と見なされます。つまり、1 泊の宿泊日数で、 シングル「毎日ベスト」収益が最も多いプロモーションは 割引が適用されます。

Stacking は、 BestDailyDiscount。「毎日のベスト」割引率を 1 泊あたりの最も割引率の高い割引が組み合わされ、 宿泊割引(例: Discount)の積み重ねタイプを以下に設定する base。この組み合わせ割引は他の割引率と比較され、 他の対象 <Discount> と併用可能新しい P-MAX キャンペーンを 割引率が最も高くなりますまたは BestDailyDiscount または単一の組み合わせ Discount のうち、価格が低い方を選択して、 base スタッキング タイプに適用されています。

このタイプの割引では StayDates を指定できます。 ただし、applicationoverlap に設定する必要があります

.
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage 0..1 float

percentagefixed_amount または fixed_price は必須です。

割引率を示す 0 ~ 100 の小数値。 AmountAfterTax(または AmountAfterTax が次の値でない場合は AmountBeforeTax あります)。

例:

  • 1 泊の AmountAfterTax が 100 で、 percentage が 20 の場合、

    プロモーション率 = AmountAfterTax × (1 - 割合 割引)

    80.00 = 100 × (1 - 0.2)

  • 宿泊の AmountBeforeTax が 100 の場合、 percentage が 20 で、TaxFeeInfo が税金 10 を指定している場合、 次に

    プロモーション率 = AmountBeforeTax × (1 - 割合 (割引)+ 税金

    90.00 = 100 × (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount 0..1 float

percentagefixed_amount または fixed_price は必須です。

1 回の取引から差し引かれる定額 AmountAfterTax の 1 泊の料金(または 1 泊あたりの料金: AmountBeforeTax AmountAfterTax を指定しない)。想定値: 1 泊あたりの料金と同じ通貨で表示する必要がありますこの値が 宿泊料金の合計を計算する場合、結果としての値は 0 になります。

例:

  • 1 泊の AmountBeforeTax が 90 の場合: AmountAfterTax は 100、fixed_amount は 20 の場合、

    プロモーション レート = AmountAfterTax - 固定 割引

    80.00 = 100 - 20

  • 1 泊の AmountBeforeTax が 100 の場合、 fixed_amount が 20 で、TaxFeeInfo が次の税金を指定します。 8%、

    プロモーション率 =(AmountBeforeTax - 固定) 割引)×(1 + 税額)

    86.40 = (100 - 20) × 1.08

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price 0..1 float

percentagefixed_amount または fixed_price は必須です。

AmountAfterTax の 1 泊の料金が指定されている場合、 は、1 泊の料金(税金と手数料を含む)を 表示されます。AmountBeforeTax が指定されている場合、 AmountAfterTax が指定されているかどうかに関係なく、 宿泊の税抜き価格を値上げします想定値: 1 泊あたりの料金と同じ通貨で表示する必要があります

例:

  • 1 泊の AmountBeforeTax が 90 の場合: AmountAfterTax は 100、fixed_price は 80 の場合 プロモーションレートは 80 です
  • 1 泊の AmountBeforeTax が 100 の場合、 fixed_amount が 80 で、TaxFeeInfo が次の税金を指定します。 8%、

    プロモーションレート = 固定価格 × (1 + 税金)

    86.40 = 80 × 1.08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount 利用可能な会議室の数の制限を定義する ご注文いただく必要があります。割引が適用されるのは 日数のことです。次では許可されません。 fixed_amount 割引。利用可能な VM の数は チャットルームは、 OTA_HotelInvCountNotifRQInvCount) または OTA_HotelAvailNotifRQ (BookingLimit).
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer プロモーションの対象となる空室の最小部屋数 適用されません。指定しない場合、 必要ありません。
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer プロモーションの対象となる客室の最大数 適用されません。指定しない場合、 できます。
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay このプロモーションを適用できる滞在日数の上限を定義します 適用されました。滞在日数が次の期間外の場合、プロモーションは適用されません 自動的に適用されます
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer プロモーションの対象となる滞在期間の最低宿泊日数 適用されました。指定しない場合、最小値はありません。
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer プロモーションの対象となる滞在で許可される最大宿泊日数 適用されました。指定しない場合、最大値はありません。
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

特定の UI をトリガーするメンバーシップ料金ルールのコンテナ 割引が適用されます

次の場合を除き、この要素は指定しないでください<Discount> も指定されています。

Promotions / HotelPromotions / Promotion / MembershipRateRule / @id 1 string

の ID 料金ルールを定義します。

Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount 1 日の客室料金の最小合計を指定します( AmountBeforeTaxAmountAfterTax など)があり、 超過するとプロモーションが適用されます
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 integer プロモーションを適用するために上回る必要がある値。
Promotions / HotelPromotions / Promotion / Occupancy 0..1 Occupancy このプロモーションの対象となる定員に関する制限を定義します 適用されました。宿泊人数が 必要があります。
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer 以下の条件を満たすために、ユーザー指定の定員はこの値以上である必要があります。 適用されます。
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer 以下の条件を満たすために、ユーザー指定の定員はこの値以下である必要があります。 適用されます。
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans プロモーションが適用される料金プランのリストのコンテナ。 <RatePlans> が指定されていない場合、プロモーションは すべての料金プランに適用されます
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan 1..n RatePlan 料金プランを指定します。料金プランは、次の組み合わせによって定義されます。 トランザクションで定義したとおりに、パッケージ、料金、空室状況を (宿泊施設データ)、OTA_HotelRateAmountNotifRQ、OTA_HotelAvailNotifRQ PackageID で識別されます。
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 string 料金プランの一意の識別子。この値は <PackageData> の PackageID 値 Transaction (Property Data) メッセージと RatePlanCode 属性: 両方 <StatusApplicationControl> <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 件のメッセージです。 入力可能な最大文字数は 50 文字です。
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes プロモーションが適用される客室タイプのリストのコンテナ。 プロモーションは各 <RoomType> に適用されます あります。<RoomTypes> が指定されていない場合、 プロモーションがすべての客室に適用されます。
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType 客室タイプを指定します。客室タイプは 次の要素内の <RoomData> 要素: Transaction(宿泊施設データ)のメッセージであり、 その <RoomID> 値を使用して参照されます。( <RoomID> 値は次のサービスからも参照されます。 OTA_HotelRateAmountNotifRQ の InvTypeCode 属性 messages.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string インベントリの一意の識別子(客室タイプ)。この値は Transaction(宿泊施設データ)メッセージの <RoomID> へ。 入力可能な最大文字数は 50 文字です。
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking プロモーションの組み合わせ方法を指定します。指定しない場合、"type" base とみなされます。
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

状況に応じて、複数のプロモーションを 1 つの料金に適用できる 次のように設定されます。

  • any: 他のプロモーションと組み合わせることができます( none など)ですが、プロモーションを適用する順序は 保証されません。
  • base: 対象となる base のプロモーションの特典は 他のプロモーションより先に選択、適用されますこれは base_only という名前でした。
  • second: 有効な second プロモーション base のプロモーションの後に選択され、適用されます (該当する場合)かつ any プロモーションの前。
  • none: 他のオブジェクトと組み合わせることはできません。 。

許可されている組み合わせの中で、プロモーションが 最大割引率が適用されます

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates 1 つまたは複数の期間のコンテナです。 プロモーションが適用される(季節的な割引に対応するなど)。
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

プロモーションの適用方法を記述します。

指定できる値は次のとおりです。

  • all: プロモーションを 旅行プランのすべての日付が重複している場合は旅行プラン 滞在日が表示されます
  • any: プロモーションを 旅行プランのいずれかの日付が 滞在期間。
  • overlap: 該当するユーザーにのみプロモーションを適用します。 滞在日の日付と重複する宿泊プランの宿泊日数 あります。

この属性は常に指定する必要があります。

  • <Discount>percentage が指定されている場合 かつ、applicationall に設定されているか、または any の場合、割引は フル滞在
  • <Discount>percentage が指定されている場合 applicationoverlap に設定されている場合は、 割引は、重複する 1 泊の料金の割合として適用されます 利用できます。
  • <Discount>fixed_amount を指定 applicationoverlap に設定すると、 無効な組み合わせです。
  • <FreeNights> はすべてをサポート application 値。overlap の場合、 重複する宿泊日数のみが割引の対象となります 提供します。
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

プロモーションが適用される日付を指定する期間。

YearlessDate 形式もサポートされています。

  • start または end のいずれかが年なしの場合 両方とも年なしの日付として入力する必要があります。
  • 複数年の年なし期間を設定する場合は、翌年を前後に設定することはできません。代わりに 連続する 2 つの期間として表されます。たとえば {"12-29", "01-05"} は次のように表すことができます。 {"12-29", "12-31"}{"01-01", "01-05"}
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate 開始日(プロパティのタイムゾーンに基づく、次の日付を含む) 期間を選択します。この日付は、 end 日。start が指定されていない場合、日付 開始日に関して実質的に無制限です。
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate 終了日を含む(プロパティのタイムゾーンに基づく)終了日 期間。この日付は、start 以降の日付にする必要があります できます。end が指定されていない場合、日付 終了日に関して実質的に無制限です。
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 string

日付範囲内の曜日です。回答が「いいえ」の場合 すべての日付を指定できます。各 日付を指定します。例: 「MTWHF」指定 指定することもできます。

有効な文字は次のとおりです。

  • M(月曜日)
  • T(火曜日)
  • W(水曜日)
  • H(木曜日)
  • F(金曜日)
  • S(土曜日)
  • U(日曜日)

任意の文字の組み合わせが有効です。

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries 対象となるユーザーの所在地(国)をリストするためのコンテナ 選択します指定すると、リスト内の要件を満たすユーザーのみが 国ごとに割引料金が適用されます。指定しない場合、有効 どの国のユーザーにも割引料金が適用されます。
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum UserCountry 仕様のタイプ。

有効な値は includeexclude

UserCountry の typeinclude の場合、プロモーションは 記載されています。

UserCountry typeexclude の場合、 リストに記載されている国外のユーザーに適用される 。

UserCountry type が設定されていない場合は、 include。プロモーションは、次の期間のユーザーに適用されます: リストされている国によって異なります。

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country ユーザーがプロモーションの対象となる国を 1 つ定義します。
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string CLDR の国 コードDEFR など)。なお、 CLDR 国コードは 2 文字の ISO と同じではありません。 国コードまた、CLDR 地域コードもサポートされていません。

1 つの宿泊施設に作成できるプロモーションは最大 500 件です。「1 つ削除する」 プロモーション"プロパティからプロモーションを削除する例を示します。

基本的なメッセージ

次の例は、基本的な Promotions メッセージを示しています。

<?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"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>


在庫の条件

次の例は、過剰な割引がある場合に割引を作成する方法を示しています。 在庫が到着日に近い場合は

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


プロモーションを 1 つ削除する

次の例は、宿泊施設の 1 つのプロモーションを削除する方法を示しています。

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

すべてのプロモーションを削除する

次の例は、宿泊施設のすべてのプロモーションを削除する方法を示しています。

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



すべてのプロモーションを重ねる

次の例は、プロパティの <HotelPromotions> をオーバーレイする方法を示しています。 1 つ以上の新しいプロモーションと 組み合わせたものですaction="overlay" の場合、すべて保存される プロモーションは、 現在のメッセージ:

<?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"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

3 種類のスタッキング タイプ

次の例は、3 つの異なるプロモーションが 適用済み(basesecondany)。なお、none プロモーションは 他のプロモーションのほうが割引率が高いため、適用されます。元の 100 ドルの場合、割引価格は 72.90 ドルになります。

<?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">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="second"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="4">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


スタッキングなし

次の例は、次の理由で none プロモーションが使用されている場合を示しています。 他のプロモーションを組み合わせると割引率が小さくなります。もし 元の価格が 100 ドルだった場合、割引価格は 75 ドルになります。

<?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">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



予約可能期間の設定

次の例は、BookingWindow 要素が、その開始境界と終了境界が ISO 8601 の継続時間として定義されている あります。この予約可能期間の制限が適用されるには、18:00 までに予約する必要があります ご到着前日および 2 日目 12:00 以降 あります。

<?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 min="P1DT6H" max="P2DT12H"/>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


予約日および日時の境界

次の例は、BookingDates 要素は、次のように start 属性と end 属性とともに使用されます。 DateTime 型。この予約日の制限は予約を行う必要があります 2020 年 7 月 1 日の 06:30 から 2020 年 7 月 2 日の 18:45 までの間。

<?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-01T06:30:00" end="2020-07-02T18:45:00"/>
      </BookingDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


年なしの期間

次の例は、CheckInDates 要素に、start を持つ DateRanges が含まれ、かつ 年なしの end フィールド。この例では、プロモーションは チェックイン日が 12 月 29 日から 1 月 2 日までで、年を問いません。年なし 新しい年の境界を越える期間は無効であるため、DateRange は 隣接する 2 つの期間で表されます。

<?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">
      <CheckInDates>
         <DateRange start="12-29" end="12-31"/>
         <DateRange start="01-01" end="01-02"/>
      </CheckInDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



FreeNights の割引

次の例では、4 泊の宿泊に対して 2 泊分の 50% の割引を 予約できます。10 泊の旅行プランの場合、合計 4 泊分の料金が 50%割引になります

<?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="2022-01-01" end="2022-05-31"/>
      </BookingDates>
      <Discount>
        <FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>

次の例では 滞在日数を選択できます。重複する宿泊日数のみ 割引が適用されますチェックインのある次の旅行プランに使用 2022 年 1 月 1 日、2022 年 1 月 7 日のチェックアウトで、対象となる宿泊日数と 割引は次のように適用されます

  • 2022-01-01(宿泊)
  • 2022-01-02(宿泊)
  • 2022-01-03
  • 2022-01-04(割引済み)
  • 2022-01-05(宿泊)
  • 2022-01-06(宿泊)
<?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">
      <StayDates application="overlap">
        <DateRange start="2022-01-01" end="2022-01-02"/>
        <DateRange start="2022-01-04" end="2022-01-06"/>
      </StayDates>
      <Discount>
        <FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>


ランク付けされたセレクション

次の例では、20% オフと 2 つの割引を提供しています。 割引されます評価中は 15% の割引のみが適用されます ランクが低いためです

<?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">
      <Discount percentage="15" rank="25"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="20" rank="50"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

BestDailyDiscount

次の例では BestDailyDiscountDiscount を重ねて表示。

<?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="HotelID" action="overlay">
   <Promotion id="general">
     <BestDailyDiscount fixed_amount="20"/>
   </Promotion>
   <Promotion id="may">
     <BestDailyDiscount fixed_amount="50"/>
     <StayDates application="overlap">
        <DateRange start="2023-05-01" end="2023-05-31"/>
     </StayDates>
   </Promotion>
   <Promotion id="fiesta">
     <Discount fixed_amount_per_night="5"/>
     <Stacking type="any"/>
   </Promotion>
 </HotelPromotions>
</Promotions>

2023 年 4 月 30 日から 2023 年 5 月 2 日までの 2 泊の滞在を考えてみましょう。 計算には、最も割引率の高い、 割引率の値が大きいとわかります

最初の夜は、プロモーションが 固定の 20 割引になります

2 日目の夜には通常のショッピングキャンペーンよりも 「一般」割引されます。つまり、固定割引が選択されている場合 50 です

次は滞在のための「フェスタ」です1 泊あたり 5 つまでのプロモーション割引 合計 10 個。最良の日別割引と組み合わせて利用できます。 「フェスタ」だからスタッキング タイプが any に設定されている。設定されている場合 base に変更すると、日次の割引と割引の組み合わせのみが 「フェスタ」適用されます。説明を表示 Stackingをご覧ください。

全体として、宿泊料金は 20 + 50 + 10 = 80 の固定額 割引されます。

レスポンス

構文

PromotionsResponse メッセージには次の構文が使用されます。

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues are populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code"
           status="issue_type">
      issue_description
    </Issue>
  </Issues>
</PromotionsResponse>

要素と属性

PromotionsResponse メッセージには、次の要素と属性があります。

要素 / @Attribute 発生回数 タイプ 説明
PromotionsResponse 1 Complex element 受信の成功または問題を示すルート要素 プロモーションのリクエスト メッセージ。
PromotionsResponse / @timestamp 1 DateTime このメッセージの作成日時。
PromotionsResponse / @id 1 string 関連付けられたプロモーション メッセージからの一意の識別子。
PromotionsResponse / @partner 1 string このメッセージのパートナー アカウント。
PromotionsResponse / Success 0..1 Success プロモーション メッセージが正常に処理されたことを示します 警告、エラー、失敗が発生することがありません。

<Success> または <Issues> が 表示されます。

PromotionsResponse / Issues 0..1 Issues データの処理中に発生した 1 つ以上の問題のコンテナです。 プロモーション メッセージ。

<Success> または <Issues> が 表示されます。

PromotionsResponse / Issues / Issue 1..n Issue この間に発生した警告、エラー、失敗の説明は、 プロモーション メッセージを処理しています。これらの問題の詳細については、 フィード ステータスのエラー メッセージ:
PromotionsResponse / Issues / Issue / @code 1 integer 問題の識別子。
PromotionsResponse / Issues / Issue / @status 1 enum

発生した問題の種類。

有効な値は warningerror、 および failure

成功

以下は、正常に処理されたプロモーション メッセージに対するレスポンスです。

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

問題

以下は、 表示されます。

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