Promotions

リクエスト

構文

Promotions メッセージでは、次の構文を使用します。
<?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>

要素と属性

Promotions メッセージには、次の要素と属性があります。
要素 / @属性 発生数 説明
Promotions 1 複合要素 Promotions メッセージのルート要素。
Promotions / @partner 1 String このメッセージのパートナー アカウント。この文字列の値は、Hotel Center の [アカウント設定] ページに表示されている [パートナーキー] の値です。

注: 複数のアカウントのフィードを提供するバックエンドを使用している場合、この値は、同じアカウントの <OTA_HotelRateAmountNotifRQ> メッセージと <OTA_HotelAvailNotifRQ> メッセージの <RequestorID> 要素で指定されている ID 属性値に一致する必要があります。

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 宿泊施設の一意の識別子。この値は、ホテルリスト フィードの <listing> 要素の <id> を使用して指定した HotelID と一致する必要があります。HotelID は Hotel Center にも表示されます。
Promotions / HotelPromotions / @action 0~1 Enum

指定する場合、値は「overlay」である必要があります。値が「overlay」である場合、現在のメッセージで指定されたプロモーションを保存する前に、保存されているすべてのプロモーションが削除されます。

指定しない場合、現在のメッセージで指定されている各プロモーションは次のいずれかになります。

  • 追加済み(同じ id が含まれる保存済みプロモーションがない場合)
  • 更新済み(保存済みプロモーションに同じ id がある場合)
  • 削除済み(保存済みプロモーションに同じ id があり、現在のメッセージで指定されているプロモーションの action 属性の値が "delete" である場合)
Promotions / HotelPromotions / Promotion 0~99 Promotion

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

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

Promotions / HotelPromotions / Promotion / @id 1 String プロモーションの一意の識別子。最大 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 期間の開始日(宿泊施設のタイムゾーンに基づく)。この日付は、end と同じかそれ以前の日付にする必要があります。start を指定しない場合、開始日に関する限り、期間は実質的に無制限となります。
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0~1 Date 期間の終了日(宿泊施設のタイムゾーンに基づく)。この日付は、start と同じかそれ以降の日付にする必要があります。end を指定しない場合、終了日に関する限り、期間は実質的に無制限となります。
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 プロモーションを適用するために予約が行われる必要がある場合の、チェックイン前の最小日数です。これが指定されていない場合、最小値はありません。
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0~1 Integer プロモーションを適用するために予約が行われる必要がある場合の、チェックイン前の最大日数です。これが指定されていない場合、最大値はありません。
Promotions / HotelPromotions / Promotion / CheckinDates 0~1 CheckinDates プロモーションを適用するためにチェックインが行われる必要があるタイミングを定義する 1 つ以上の期間のコンテナ。
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1~20 DateRange プロモーションを適用するためにチェックインが行われる必要があるタイミングを指定する期間。1 件以上のプロモーションを削除する場合、この要素は不要です。
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0~1 Date 期間の開始日(宿泊施設のタイムゾーンに基づく)。この日付は、end と同じかそれ以前の日付にする必要があります。start を指定しない場合、開始日に関する限り、期間は実質的に無制限となります。
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0~1 Date 期間の終了日(宿泊施設のタイムゾーンに基づく)。この日付は、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 プロモーションを適用するためにチェックアウトが行われる必要があるタイミングを指定する期間。1 件以上のプロモーションを削除する場合、この要素は不要です。
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0~1 Date 期間の開始日(宿泊施設のタイムゾーンに基づく)。この日付は、end と同じかそれ以前の日付にする必要があります。start を指定しない場合、開始日に関する限り、期間は実質的に無制限となります。
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0~1 Date 期間の終了日(宿泊施設のタイムゾーンに基づく)。この日付は、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 デバイスのタイプ。値は desktoptablet、または mobile にする必要があります。
Promotions / HotelPromotions / Promotion / Discount 1 Discount このプロモーションに適用する割引を指定します。
Promotions / HotelPromotions / Promotion / Discount / @percentage 0~1 Float 注: percentagefixed_amountfixed_amount_per_night のいずれか 1 つのみが必要です。

割引率を指定する 0~100 の 10 進値。これは AmountAfterTax に適用されます(AmountAfterTax が指定されていない場合は AmountBeforeTax に適用されます)。

例:

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

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

    80.00 = 100 x (1 - 0.2)

  • AmountBeforeTax が 100 で、percentage が 20 で、TaxFeeInfo が税金 10 を指定する場合:

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

    90.00 = 100 x (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0~1 Float 注: percentagefixed_amountfixed_amount_per_night のいずれか 1 つのみが必要です。

AmountAfterTax の宿泊料金の合計(または AmountAfterTax が指定されていない場合は AmountBeforeTax の宿泊料金の合計)から差し引かれる定額。宿泊料金と同じ通貨であるとみなされます。これが宿泊料金の合計より大きい場合、結果の値は 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) x 1.08

  • 1 泊の料金を計算する際に、AmountBeforeTax が 50、fixed_amount が 60、TaxFeeInfo で税金 10 を指定する場合:

    プロモーション料金 = (AmountBeforeTax - 固定割引) x 税金

    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_night のいずれか 1 つのみが必要です。

AmountAfterTax の各宿泊料金(applied_nights が指定されている場合は最も最安の N)に適用される固定割引。AmountAfterTax が指定されていない場合は、AmountBeforeTax に適用されます。宿泊料金と同じ通貨であるとみなされます。fixed_amount_per_night が 1 泊の料金を上回る場合、その 1 泊の料金は 0 に引き下げられます。割引により、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 / @applied_nights 0~1 Integer 注: これは percentage または fixed_amount_per_night のみと使用する必要があります。

割引が適用される宿泊日数(最安値が先頭)。1~99 の整数を指定する必要があります。指定しない場合、すべての宿泊に割引が適用されます。

Promotions / HotelPromotions / Promotion / InventoryCount 0~1 InventoryCount このプロモーションを適用するために必要な空室の客室数に関する制限を定義します。割引は、制約を満たす宿泊にのみ適用されます。fixed_amount の割引とは併用できません。空室の数は、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 / MinimumAmount 0~1 MinimumAmount 1 日の客室料金(AmountBeforeTaxAmountAfterTax の大きい方を使用)の最小合計を指定します。プロモーションを適用するにはこの額を上回る必要があります。
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 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 料金プランの一意の識別子。この値は PackageID の値に対応します。PackageID の値は、Transaction(宿泊施設データ)メッセージの <PackageData> と、<OTA_HotelRateAmountNotifRQ> メッセージと <OTA_HotelAvailNotifRQ> メッセージ両方の <StatusApplicationControl>RatePlanCode 属性にあります。最大 50 文字まで使用できます。
Promotions / HotelPromotions / Promotion / RoomTypes 0~1 RoomTypes プロモーションを適用する客室タイプのリストのコンテナ。プロモーションは、指定された各 <RoomType> に適用されます。<RoomTypes> を指定しない場合、すべての客室にプロモーションが適用されます。
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1~n RoomType 客室タイプを指定します。客室タイプは、Transaction(宿泊施設データ)メッセージの <RoomData> 要素で定義され、<RoomID> 値を使用して参照されます(その <RoomID> 値は、OTA_HotelRateAmountNotifRQ メッセージの InvTypeCode 属性でも参照されます)。
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 String 在庫の一意の識別子(客室タイプ)。この値は、Transaction(宿泊施設データ)メッセージ内の <RoomID> に対応します。最大 50 文字まで使用できます。
Promotions / HotelPromotions / Promotion / Stacking 0~1 Stacking プロモーションを組み合わせることができる方法を指定します。指定しない場合、「type」は base_only であると見なされます。
Promotions / HotelPromotions / Promotion / Stacking / @type 1 Enum

この設定に応じて、1 つの料金に複数のプロモーションを適用できます。

  • any: 他のすべてのプロモーションと組み合わせることができます。
  • base_only: スタックで base_only を使用できる場合、割引が最適であるプロモーションを Google が選択して適用します。スタックには base_only プロモーションを 1 つのみ含めることができます。他のプロモーションの前に、まずそのプロモーションが適用されます。
  • second: スタックで second を使用できる場合、割引が最適であるプロモーションを Google が選択して適用します。スタックには second プロモーションを 1 つのみ含めることができます。このプロモーションは 2 番目に(base_only が該当する場合はその後と any プロモーションの前に)適用されます。
  • none: 他のプロモーションと組み合わせることはできません

許可されている組み合わせの中で、割引が最大であるプロモーションのセットが料金に適用されます。

Promotions / HotelPromotions / Promotion / StayDates 0~1 StayDates 季節割引に対応するためなど、プロモーションの適用方法を決定する 1 つ以上の期間のコンテナ。
Promotions / HotelPromotions / Promotion / StayDates / @application 1 Enum

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

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

  • all: 宿泊プランのすべての日付が滞在日と重複している場合、宿泊プランの 1 泊ごとにプロモーションを適用します。
  • any: 宿泊プランの任意の日付が滞在日の範囲にある日付と重複している場合、宿泊プランのすべての宿泊にプロモーションを適用します。
  • overlap: 滞在日の範囲にある日付と重複する宿泊プランの宿泊にのみプロモーションを適用します。

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

  • <Discount>percentage が指定されていて、applicationall または any に設定されている場合、割引は滞在日全体の割合として適用されます。
  • <Discount>percentage が指定されていて、applicationoverlap に設定されている場合、重複する宿泊に関して、宿泊料金の割合として割引が適用されます。
  • fixed_amount を指定する <Discount> と、overlap に設定された application は、無効な組み合わせです。
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1~99 DateRange プロモーションを適用する日付を指定する期間。
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0~1 Date 期間の開始日(宿泊施設のタイムゾーンに基づく)。この日付は、end と同じかそれ以前の日付にする必要があります。start を指定しない場合、開始日に関する限り、期間は実質的に無制限となります。
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0~1 Date 期間の終了日(宿泊施設のタイムゾーンに基づく)。この日付は、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 / Country 1~50 Country ユーザーがプロモーションの対象となる国を 1 つ定義します。
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 String CLDR 国コード(DE、FR など)。国によっては、CLDR 国コードが 2 文字の ISO 国コードと同じではないことに注意してください。また、CLDR 地域コードはサポートされていません。

基本的なメッセージ

次の例に基本的な 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_only"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="UK"/>
      </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>

すべてのプロモーションをオーバーレイする

次の例に、1 つ以上の新しいプロモーションが含まれる宿泊施設の <HotelPromotions> をオーバーレイする方法を示します。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_only"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

レスポンス

構文

PromotionsResponse メッセージでは、次の構文を使用します。
<?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>

要素と属性

PromotionsResponse メッセージには、次の要素と属性があります。
要素 / @属性 発生数 説明
PromotionsResponse 1 複合要素 受信した Promotions Request メッセージの成功または問題を示すルート要素。
PromotionsResponse / @timestamp 1 DateTime このメッセージの作成日時。
PromotionsResponse / @id 1 String 関連する Promotions メッセージから得られる一意の識別子。
PromotionsResponse / @partner 1 String このメッセージのパートナー アカウント。
PromotionsResponse / Success 0~1 Success Promotions メッセージが正常に(警告、エラー、失敗が発生せずに)処理されたことを示します。

各メッセージには、<Success><Issues> のいずれかがあります。

PromotionsResponse / Issues 0~1 Issues Promotions メッセージの処理中に発生した 1 つ以上の問題のコンテナ。

各メッセージには、<Success><Issues> のいずれかがあります。

PromotionsResponse / Issues / Issue 1~n Issue Promotions メッセージの処理中に発生した警告、エラー、または失敗の説明。これらの問題の詳細については、フィード ステータスのエラー メッセージをご覧ください。
PromotionsResponse / Issues / Issue / @code 1 Integer 問題の識別子。
PromotionsResponse / Issues / Issue / @status 1 Enum

発生した問題の種類。

有効な値は warningerrorfailure です。

Success

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

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

以下は、エラーのため処理されなかった Promotions メッセージに対するレスポンスです。

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