概要
この 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 検索にフィードを提供するバックエンドがある場合、
複数のアカウントがある場合、この値は |
Promotions / @id | 1 | string | このリクエスト メッセージの一意の識別子。この値は レスポンス メッセージで識別されます。使用できる文字は、a~z、A~Z、0~9、_(アンダースコア)、-(ダッシュ)です。 |
Promotions / @timestamp | 1 | DateTime | このメッセージの作成日時。 |
Promotions / HotelPromotions | 0..n | HotelPromotions | 宿泊施設のプロモーション。各プロモーションは 1 つの プロパティです。
|
Promotions / HotelPromotions / @hotel_id | 1 | string | 宿泊施設の一意の識別子。この値は、
を使用して指定したホテル ID
<listing> 要素内の <id>
ホテルリスト フィードで表示できます。ホテル ID は Hotel Center にも表示されます。 |
Promotions / HotelPromotions / @action | 0..1 | enum | 指定する場合、値は
指定しない場合、現在の メッセージは次のいずれかです。
|
Promotions / HotelPromotions / Promotion | 0..99 | Promotion | 宿泊施設の 1 件のプロモーション。なお、
99 件を超えるプロモーションを利用する必要がある場合は、お問い合わせください。 テクニカルアカウントマネージャー(TAM)にお問い合わせください。 |
Promotions / HotelPromotions / Promotion / @id | 1 | string | プロモーションの一意の識別子。使用できる Pod の数は、 40 文字以内で指定してください。使用できる文字は、a ~ z、A ~ Z、0 ~ 9、 _(アンダースコア)、-(ダッシュ)、.(ピリオド)です。 |
Promotions /HotelPromotions / Promotion / @action | 0..1 | enum | 指定する場合、値は
|
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 | 開始日または開始日(プロパティのタイムゾーンに基づきます)。 含まれます。
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end | 0..1 | Date または DateTime | 終了日または日時(プロパティのタイムゾーンに基づきます)。 含まれます。
|
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week | 0..1 | string | 日付範囲内の曜日です。回答が「いいえ」の場合 すべての日付を指定できます。各 日付を指定します。例: 「MTWHF」指定 指定することもできます。 有効な文字は次のとおりです。
任意の文字の組み合わせが有効です。 |
Promotions / HotelPromotions / Promotion / BookingWindow | 0..1 | BookingWindow | 予約が行われる必要がある期間を、 チェックイン日(宿泊施設のタイムゾーンに基づきます)。たとえば、 予約可能期間は 7 ~ 180 日に設定できます。 確認できます。 |
Promotions / HotelPromotions / Promotion / BookingWindow / @min | 0..1 | integer or duration | チェックインまでの最低予約時間
設定されます。この値が指定されていない場合、または
0 の場合、最小値はありません。
有効な値の型は次のとおりです。
|
Promotions / HotelPromotions / Promotion / BookingWindow / @max | 0..1 | integer or duration | 予約が行われるチェックインまでの最大日数
設定されます。この値が指定されていない場合、または
0 に上限はありません。
有効な値の型は次のとおりです。
|
Promotions / HotelPromotions / Promotion / Ceiling | 0..1 | Ceiling |
レートに設定できる最大値の制限を定義します プロモーション適用後の機能です プロモーションでは、必ず 併用が構成されている場合、
例:
計算の順序は次のとおりです。
全体の上限が 60 よりも厳しいという事実は、 そのプロモーションの場合にのみ有効で、 プロモーション スタック全体にまたがり制限を設けることができます。 |
Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night | 1 | float |
この期間の終了後に 1 泊の料金を設定できる最大額 適用されます。
|
Promotions / HotelPromotions / Promotion / Floor | 0..1 | Floor |
レートに設定できる最小値の制限を定義します プロモーション適用後の機能です プロモーションでは、必ず
重ね合わせが構成されている場合、 例:
計算の順序は次のとおりです。
全体の最小価格が 90 より高いという事実は そのプロモーションの場合にのみ有効で、 最小価格になります |
Promotions / HotelPromotions / Promotion / Floor / @amount_per_night | 1 | float |
割引が適用された後の宿泊料金の最小額。
|
Promotions / HotelPromotions / Promotion / CheckinDates | 0..1 | CheckinDates | チェックインをいつ行う必要があるかを定義する 1 つ以上の期間のコンテナ プロモーションが適用されます |
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange | 1..20 | DateRange | プロモーションのチェックインが必要な期間を指定する期間 適用されます。1 つ以上のデータを削除する場合、この要素は必要ありません。 。 YearlessDate 形式もサポートされています。
|
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」指定 指定することもできます。 有効な文字は次のとおりです。
任意の文字の組み合わせが有効です。 |
Promotions / HotelPromotions / Promotion / CheckoutDates | 0..1 | CheckoutDates | チェックアウトのタイミングを定義する 1 つ以上の期間のコンテナ 必要があります。 |
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange | 1..20 | DateRange | プロモーションのチェックアウトのタイミングを指定する期間 適用されます。Cloud Logging または Google Cloud を 1 つ以上のプロモーションの削除 YearlessDate 形式もサポートされています。
|
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」指定 指定することもできます。 有効な文字は次のとおりです。
任意の文字の組み合わせが有効です。 |
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 |
このプロモーションに適用する割引を指定します。 |
Promotions / HotelPromotions / Promotion / Discount / @percentage | 0..1 | float |
割引率を示す 0 ~ 100 の小数値。
例:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount | 0..1 | float |
合計金額から差し引かれる定額です。
例:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night | 0..1 | float |
固定割引が各 例:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price | 0..1 | float |
例:
|
Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night | 0..1 | float |
例:
|
Promotions / HotelPromotions / Promotion / Discount / @applied_nights | 0..1 | integer | これは
割引が適用される宿泊日数 最も安価な方法です1 ~ 99 の整数にする必要があります。指定しない場合、 割引はすべての宿泊に適用されます。 |
Promotions / HotelPromotions / Promotion / Discount / FreeNights | 0..1 | FreeNights | 最低宿泊日数がある場合に、特定の宿泊日数に対する割引を指定します
長さが満たされます。この要素を使用する場合、親 Discount 要素の属性は使用できません。 |
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights | 1 | integer | 割引を適用するために必要な宿泊日数。各 割引は宿泊の別のセグメントに適用されます。 たとえば、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 | 連泊に割引を適用できるかどうか
分割します たとえば、 |
Promotions / HotelPromotions / Promotion / Discount / @rank | 0..1 | integer | このプロモーションにランクを割り当てて、ランク付けされた選択にオプトインします。ここで、 ランクが最も低いプロモーションのみが適用されます。値は 1~99 の範囲で指定する必要があります。複数のプロモーションが同じ ランダムに 1 つが選択され、適用されます。 |
Promotions / HotelPromotions / Promotion / BestDailyDiscount | 1 | Discount |
指定
1 泊あたりの割引料金が適用される場合があります。これは、滞在全体に割引を適用する 各宿泊施設には、プロモーションの単一のグループを 「日替わりベスト」と見なされます。つまり、1 泊の宿泊日数で、 シングル「毎日ベスト」収益が最も多いプロモーションは 割引が適用されます。
このタイプの割引では |
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage | 0..1 | float |
割引率を指定する 0~100 の 10 進値。 例:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount | 0..1 | float |
1 泊あたりの 例:
|
Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price | 0..1 | float |
例:
|
Promotions / HotelPromotions / Promotion / InventoryCount | 0..1 | InventoryCount | 利用可能な会議室の数の制限を定義する
ご注文いただく必要があります。割引が適用されるのは
日数のことです。次では許可されません。
fixed_amount 割引。利用可能な VM の数は
チャットルームは、
OTA_HotelInvCountNotifRQ(InvCount )
または 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 をトリガーするメンバーシップ料金ルールのコンテナ 割引が適用されます
|
Promotions / HotelPromotions / Promotion / MembershipRateRule / @id | 1 | string |
の ID 料金ルールを定義します。 |
Promotions / HotelPromotions / Promotion / MinimumAmount | 0..1 | MinimumAmount | 1 日の客室料金の最小合計を指定します(
AmountBeforeTax や AmountAfterTax など)があり、
超過するとプロモーションが適用されます |
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 つの料金に適用できる 次のように設定されます。
許可されている組み合わせの中で、プロモーションが 最大割引率が適用されます |
Promotions / HotelPromotions / Promotion / StayDates | 0..1 | StayDates | 1 つ以上の期間のコンテナです。 プロモーションが適用される(季節的な割引に対応するなど)。 |
Promotions / HotelPromotions / Promotion / StayDates / @application | 1 | enum | プロモーションの適用方法を記述します。 指定できる値は次のとおりです。
この属性は常に指定する必要があります。
|
Promotions / HotelPromotions / Promotion / StayDates / DateRange | 1..99 | DateRange | プロモーションが適用される日付を指定する期間。 YearlessDate 形式もサポートされています。
|
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 が指定されていない場合、日付
start 日から実質的に無制限になります。
次の場合は |
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week | 0..1 | string | 日付範囲内の曜日です。回答が「いいえ」の場合 すべての日付を指定できます。文字列の各文字で曜日を指定します。例: 「MTWHF」指定 指定することもできます。 有効な文字は次のとおりです。
任意の文字の組み合わせが有効です。 |
Promotions / HotelPromotions / Promotion / UserCountries | 0..1 | UserCountries | 対象となるユーザーの所在地(国)をリストするためのコンテナ 選択します指定すると、リスト内の要件を満たすユーザーのみが 国ごとに割引料金が適用されます。指定しない場合は、すべての国の対象ユーザーに割引料金が提供されます。 |
Promotions / HotelPromotions / Promotion / UserCountries / @type | 0..1 | enum | UserCountry 仕様のタイプ。
有効な値は UserCountry の UserCountry UserCountry |
Promotions / HotelPromotions / Promotion / UserCountries / Country | 1..300 | Country | ユーザーがプロモーションの対象となる国を 1 つ定義します。 |
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code | 1 | string | CLDR の国
コード
(DE 、FR など)。なお、
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 つの異なるプロモーション(base
、second
、any
)が適用される場合を示しています。他のプロモーションの方が割引率が高いため、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 | プロモーション メッセージが正常に処理されたことを示します
警告、エラー、失敗が発生することがありません。
|
PromotionsResponse / Issues | 0..1 | Issues | データの処理中に発生した 1 つ以上の問題のコンテナです。
プロモーション メッセージ。
各メッセージには、 |
PromotionsResponse / Issues / Issue | 1..n | Issue | この間に発生した警告、エラー、失敗の説明は、 プロモーション メッセージを処理しています。これらの問題の詳細については、 フィード ステータスのエラー メッセージ: |
PromotionsResponse / Issues / Issue / @code | 1 | integer | 問題の識別子。 |
PromotionsResponse / Issues / Issue / @status | 1 | enum | 発生した問題の種類。 有効な値は |
例
成功
以下は、正常に処理された 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>