プロモーション

概要

この 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>

要素と属性

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 に上限はありません。

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

  • Integer: チェックイン日までの日数。たとえば、値 30 は、 プロモーションは、 チェックイン日。
  • ISO 8601 の期間(日数、時間、分): チェックイン日までの日数(オプションで時間 / 分)。対象 たとえば、値 P30D は、プロモーションのみが は、チェックイン日の 30 日前までの予約に適用されます。値 P30DT6H は、到着日の 30 日前の 18:00 以降に予約する必要があることを示します。
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

割引が適用された後の宿泊料金の最小額。

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

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 または Google Cloud を 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_pricefixed_price_per_night のいずれか 1 つのみが必要です。

割引率を示す 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。宿泊料金と同じ通貨であるとみなされます。条件 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_pricefixed_price_per_night のいずれか 1 つのみが必要です。

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 の場合、

    promotion rate = 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 泊あたりの割引料金が適用される場合があります。これは、滞在全体に割引を適用する Discount とは対照的です。

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

Stacking は、次で指定できます。 BestDailyDiscount。次のいずれかに設定する必要があります base または none。「毎日のベスト」割引 各泊で最も割引率の高いデータを組み合わせて 1 泊あたりの割引(例: Discount) 構成済みのスタッキング タイプ。この組み合わせ割引は、他の対象となる <Discount> プロモーションと比較され、併用することもできます。これにより、最も割引率の高いプロモーションまたは組み合わせが見つかります。BestDailyDiscount または 単一の Discount のうち、いずれか低い方の価格が、 base スタッキング タイプに対して選択され、適用されています。

このタイプの割引では StayDates を指定できます。 ただし、applicationoverlap

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

percentagefixed_amountfixed_price のいずれか 1 つのみが必要です。

割引率を指定する 0~100 の 10 進値。AmountAfterTax(または AmountAfterTax が次の値でない場合は AmountBeforeTax あります)。

例:

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

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

    80.00 = 100 × (1 - 0.2)

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

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

    90.00 = 100 × (1 - 0.2) + 10

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

percentagefixed_amountfixed_price のいずれか 1 つのみが必要です。

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

例:

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

    プロモーション料金 = AmountAfterTax - 固定割引

    80.00 = 100 - 20

  • 1 泊の AmountBeforeTax が 100、fixed_amount が 20、TaxFeeInfo で税率 8% を指定する場合:

    プロモーション料金 = (AmountBeforeTax - 固定割引) x (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 泊の AmountBeforeTax が 90 の場合: AmountAfterTax は 100、fixed_price は 80 の場合 プロモーションレートは 80 です
  • 1 泊の AmountBeforeTax が 100、fixed_amount が 80、TaxFeeInfo で税率 8% を指定する場合:

    プロモーション料金 = 固定価格 x (1 + 税率)

    86.40 = 80 × 1.08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount 利用可能な会議室の数の制限を定義する ご注文いただく必要があります。割引が適用されるのは 日数のことです。次では許可されません。 fixed_amount 割引。利用可能な VM の数は チャットルームは、 OTA_HotelInvCountNotifRQInvCount) または OTA_HotelAvailNotifRQBookingLimit)。
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 料金プランを指定します。料金プランは、パッケージ、料金、空室状況の組み合わせで定義されます。また、Transaction(宿泊施設データ)、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"}

StayDates の期間を設定して、特定の曜日にプロモーションを許可する場合は、プロモーションが期限切れにならないように、start の日付を現在の日付として設定し、end を指定しないでください。

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate 開始日(プロパティのタイムゾーンに基づく、次の日付を含む) 期間を選択します。この日付は、end と同じかそれ以前の日付にする必要があります。start が指定されていない場合、日付 開始日に関して実質的に無制限です。

次の場合は start 値を指定する必要があります。 end の値が指定されていません。

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate 終了日を含む(プロパティのタイムゾーンに基づく)終了日 期間。この日付は、start と同じかそれ以降の日付にする必要があります。end が指定されていない場合、日付 start 日から実質的に無制限になります。

次の場合は end 値を指定する必要があります。 start の値が指定されていません。

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 フィールドと end フィールドを持つ DateRanges が含まれているケースを示しています。この例では、プロモーションは チェックイン日が 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>

次の例では、指定した滞在日数に応じて、3 泊ごとに 1 泊を 50% 割引します。重複する宿泊日数のみ 割引が適用されますチェックインのある次の旅行プランに使用 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>


ランク付けされた選択

次の例では、2 つの割引(1 つは 20% オフ、もう 1 つは 15% オフ)を提供しています。評価では、ランクが低いため、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

次の例では、Discount とスタックされた BestDailyDiscount を適用して、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="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 受信した Promotions Request メッセージの成功または問題を示すルート要素。
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

発生した問題の種類。

有効な値は warningerrorfailure です。

成功

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

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