促銷

總覽

您可以使用這個 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 1 Complex element 促銷活動訊息的根元素。
Promotions / @partner 1 string 這則訊息的合作夥伴帳戶。這個字串值為 「合作夥伴金鑰」列在 Hotel Center 的帳戶設定頁面

如果您有為多個帳戶提供動態饋給的後端,這個值必須與同一個帳戶 <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 訊息 <RequestorID> 元素中指定的 ID 屬性值相符。

Promotions / @id 1 string 此要求訊息的專屬 ID。這個值會在回應訊息中傳回。允許的字元為 a-z、A-Z、0-9、_ (底線) 和 - (破折號)。
Promotions / @timestamp 1 DateTime 這則訊息的建立日期和時間。
Promotions / HotelPromotions 0..n HotelPromotions

房源的促銷活動。每項促銷活動都適用於單一 資源。

除非使用 <Stacking>,否則 折扣最大的促銷活動會在下列情況套用至預訂 有多個促銷活動符合資格。

Promotions / HotelPromotions / @hotel_id 1 string 房源的專屬 ID。這個值必須與飯店清單動態饋給中 <listing> 元素中使用 <id> 指定的飯店 ID 相符。Hotel Center 也會列出飯店 ID。
Promotions / HotelPromotions / @action 0..1 enum

如果指定,則值必須為 "overlay"。當值為 "overlay" 時, 系統會在儲存指定的促銷活動之前,先刪除已儲存的促銷活動 訊息。

如未指定,則目前項目中指定的每個促銷活動。 訊息為以下其中一項:

  • Added (如果儲存的宣傳活動都沒有相同的 id)
  • Updated (如果已儲存的促銷活動相同 id)
  • Deleted (如果儲存的促銷活動具有相同的 id,且目前訊息中指定的促銷活動 action 屬性值為 "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

房源的單一促銷活動。請注意,如果 action="overlay"<Promotion> 是 未指定,系統會刪除該資源的所有促銷活動。

如需使用超過 99 個促銷活動,請與客戶技術顧問 (TAM) 聯絡。

Promotions / HotelPromotions / Promotion / @id 1 string 促銷活動的專屬 ID。每個 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 用來存放一或多個範圍的容器,用來定義必須預訂的時機 才能套用促銷活動
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange 此範圍可指定促銷活動必須預訂的時間 已套用。
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 DateDateTime

範圍的開始日期或日期時間 (以資源的時區為準),包含在內。

  • 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,表示促銷活動只適用於入住日期前至少 30 天的預訂。
  • ISO 8601 時間長度 (天、小時和分鐘):代表的數字數量 入住日期前的天 (可視需要指定小時/分鐘)。適用對象 舉例來說,P30D 值表示只有促銷活動 適用於入住日期至少 30 天的預訂。A 罩杯 如為 P30DT6H,則須在 18:00 當天或之前訂房 抵達目的地的第 30 天
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration 必須入住前最多幾天才能入住。 才會套用促銷優惠如未指定這個值,或是設定的值 為 0,無上限。

有效的值類型包括:

  • 整數:入住日期前幾天。例如,30 值表示 促銷活動僅適用於最晚 30 天前的預訂 入住日期。
  • ISO 8601 時間長度 (天、小時和分鐘):代表的數字數量 入住日期前的天 (可視需要指定小時/分鐘)。舉例來說,如果值為 P30D,表示促銷活動只適用於入住日期前 30 天內的預訂。A 罩杯 如為 P30DT6H,則須在 18:00 當天或之後預訂 抵達目的地的第 30 天
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

定義可設定費率的最大值限制 套用促銷活動後。

促銷活動一律必須指定 <Discount><BestDailyDiscount>,如要建立促銷活動 只會套用 <Ceiling>,一種方法是將 <Discount>percentage0

如果已設定堆疊功能, <Ceiling>可入住單次住宿費用。每項促銷活動都會套用折扣,並立即接著套用上限。 以下範例展示了 堆疊中宣傳活動的計算。

範例:

計算 1 晚住宿的房價,其中 AmountBeforeTax 為 100,且有兩個促銷活動:

  1. 促銷活動類型為 basefixed_amount/25,有天花板 amount_per_night/60
  2. 促銷活動類型為 secondfixed_amount/25,有天花板 amount_per_night/90

計算順序如下:

  1. 系統會先套用 base 的促銷活動,並提供折扣 將 AmountBeforeTax 設為 75,但之後天花板較低 設為 60
  2. second 的促銷活動提供折扣, AmountBeforeTax,從 60 增加到 35。低於天花板 因此不會套用第二個天花板最終費率為 35

雖然 60 是更嚴格的整體上限,但這與實際情況無關,因為它只適用於該促銷活動,且整個促銷活動堆疊中並沒有單一上限。

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

可設定每晚房價的最高金額 會套用折扣。

如果同時指定了 <Floor> 元素,這個元素就會 必須設為大於或等於 amount_per_night 屬性 <Floor>

使用「amount_per_night」時,需支付稅金和相關費用 已使用 AmountAfterTax 包含在每晚房價中,但 不是透過 TaxFeeInfo 指定的參數。

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

定義可設定費率的最小值限制 套用促銷活動後。

促銷活動一律必須指定 <Discount><BestDailyDiscount>,如要建立促銷活動 只會套用 <Floor>,一種方法是將 <Discount>percentage0

即使免費住宿已套用 100% 折扣,<Floor> 邏輯仍會套用至 <FreeNights> 折扣。

如果已設定堆疊功能, <Floor>可入住單次住宿費用。每項促銷活動 就會套用折扣 後面接著底價 以下範例展示了每個樓層如何 堆疊中宣傳活動的計算。

範例:

計算 1 晚住宿的房價,其中 AmountBeforeTax 為 100,且有兩個促銷活動:

  1. 使用堆疊類型 basefixed_amount 為 25,以及 amount_per_night 為 90 的促銷活動
  2. 促銷活動類型為 secondfixed_amount (共 25 層),以及 1 層樓 amount_per_night/60

計算順序如下:

  1. 系統會先套用 base 促銷活動,將 AmountBeforeTax 折扣至 75,但底價會將其提高至 90
  2. second 的促銷活動提供折扣, AmountBeforeTax,從 90 到 65。這高於地面 所以系統不會套用第二個底價最終費率為 65

但 90 代表整體樓層越嚴格, 但只能用於內部促銷活動,不能共用任何動態饋給 涵蓋整個宣傳活動堆疊的樓層。

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

套用折扣後,可設定的每晚房價最低金額。

如果同時指定了 <Ceiling> 元素,這個元素就會 必須設為小於或等於 amount_per_night 屬性 <Ceiling>

使用「amount_per_night」時,需支付稅金和相關費用 已使用 AmountAfterTax 包含在每晚房價中,但 不是透過 TaxFeeInfo 指定的參數。

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates 容器,用於定義一或多個日期範圍,以便定義必須完成入住才能套用促銷活動的時間。
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

指定促銷活動必須入住的日期範圍 如要刪除一或多個項目,不需要這個元素 促銷活動。

系統也支援 YearlessDate 格式。

  • 如果 startend 中的任一單位是無年紀念 日期,皆須填入無年日期。
  • 無年日期範圍不得環繞新年。 會將這個範圍分成兩個相鄰的日期範圍。例如: {"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 用來裝載一或多個退房日期的容器 只有在啟用後才會套用促銷活動。
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

指定促銷活動必須退房的日期範圍 如果您要刪除一或多項促銷活動,則不需要使用這個元素。

系統也支援 YearlessDate 格式。

  • 如果 startend 其中之一為無年紀念 日期,都必須填入無年日期。
  • 無年日期範圍不得環繞新年。 會將這個範圍分成兩個相鄰的日期範圍。例如,{"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 定義符合促銷優惠資格的使用者裝置類型。
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum 裝置類型。值必須是 desktoptabletmobile
Promotions / HotelPromotions / Promotion / Discount 1 Discount

剛好是 Discount 或 必須指定 BestDailyDiscount

指定要為這項促銷活動套用的折扣。

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

剛好是 percentage 中的一個參數, fixed_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

剛好是 percentage 中的一個參數, fixed_amountfixed_amount_per_nightfixed_price,或fixed_price_per_night是 這通常代表交易 不會十分要求關聯語意

系統會從 每晚房價:AmountAfterTax (或 每晚房價總和:AmountBeforeTax 未指定 AmountAfterTax)。假設為 和每晚房價相同的貨幣。如果這個值大於 每晚房價總和,結果值為 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,然後

    促銷費率 = 總和(AmountAfterTax) - (固定價格) 折扣)

    180.00 = (100 + 110 + 120) - 150

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

剛好是 percentage 中的一個參數, fixed_amountfixed_amount_per_nightfixed_price,或fixed_price_per_night是 這通常代表交易 不會十分要求關聯語意

每個AmountAfterTax都會套用固定折扣 每晚房價 (或 如果已指定 applied_nights,則最低費用為 N)。如果 未指定「AmountAfterTax」,已套用至 AmountBeforeTax。假設為 和每晚房價相同的貨幣。如果 fixed_amount_per_night大於 1 每晚每晚房價都會降低為 0 折扣不能導致夜間費率變成負值。

範例:

  • 如果我們要為 3 晚住宿訂價,AmountAfterTax 值為 100、110 和 120,fixed_amount_per_night 則為 10,

    促銷費率 = 總和(AmountBeforeTax - 固定金額折扣)

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

  • 假設我們要入住 3 晚 AmountAfterTax 值為 10、50 和 100;和 fixed_amount_per_night 為 20,之後

    促銷費率 = 加總(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 其中一個。

如果指定了 AmountAfterTax 的每晚房價,則這個價格 將住宿價格 (含稅金和相關費用) 設為 指定的值。如果指定 AmountBeforeTax,則 無論是否指定 AmountAfterTax,都會設定 入住指定金額的稅前價格。假設為 和每晚房價相同的貨幣。

如果 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

剛好是 percentage 中的一個參數, fixed_amountfixed_amount_per_nightfixed_price,或fixed_price_per_night是 這通常代表交易 不會十分要求關聯語意

如果指定了 AmountAfterTax 的每晚房價,則這個價格 將每晚房價 (含稅金和相關費用) 設為 指定的值。如果指定 AmountBeforeTax,則 無論是否指定 AmountAfterTax,都會設定 將每晚的稅前價格都視為指定值。是 假設為與每晚房價相同的貨幣。

如果 AmountAfterTax 是用來反映百分比稅金,那麼為 AmountBeforeTax 設定固定價格可能會導致稅金和費用不準確。一般來說,強烈建議您使用 TaxFeeInfo 指定房源的稅金和相關費用。

如果指定 applied_nights,則新價格為 套用到最便宜的 N 晚。

範例:

  • 如果價格 入住 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

這個調整項僅適用於 percentagefixed_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),則有兩個入住夜晚 區隔:第 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,那麼每選定夜間可享 5 折優惠。
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string 必須是 cheapestlast。如果 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 之間 (含首尾)。如有多項促銷活動共用相同 排序,然後任意選取一個並套用
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

剛好是 Discount 或 必須指定 BestDailyDiscount

指定 每日折扣,適用於入住夜晚。這位於 相較於 Discount,後者會套用到整個 保留時間。

每項房源都有一組促銷活動 都是「每日最佳」這表示,對於每晚的住宿, 單一「最佳每日」符合條件且收益最高的促銷活動 的折扣已選取,並可能套用。

Stacking可以使用 BestDailyDiscount。必須設為 basenone。系統會將每晚折扣幅度最高的「每日最優惠」折扣合併,並視為單一住宿折扣 (即 Discount),同時遵循設定的堆疊類型。系統會比較此合併折扣 且可以與其他符合資格的 <折扣> 透過促銷活動找出能達成最佳目標的一或多個組合 折扣。BestDailyDiscount 的組合或 單一 Discount,兩者的價格較低。 已選取並套用於 base 堆疊類型。

StayDates 可以使用這類折扣類型指定 但 application 必須設為 overlap

,直接在 Google Cloud 控制台實際操作。
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage 0..1 float

剛好是 percentage 中的一個參數, 必須提供 fixed_amountfixed_price

介於 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/ BestDailyDiscount / @fixed_amount 0..1 float

剛好是 percentage 中的一個參數, 必須提供 fixed_amountfixed_price

從單筆減去的固定金額 每晚房價:AmountAfterTax (或 AmountBeforeTax 每晚房價 未指定 AmountAfterTax)。假設為 和每晚房價相同的貨幣。如果這個值大於 每晚房價總和,結果值為 0。

範例:

  • 如果一晚的 AmountBeforeTax 為 90, AmountAfterTax 為 100,fixed_amount 是 20,則

    促銷費率 = AmountAfterTax - 固定 折扣

    80.00 = 100 - 20

  • 如果一晚的 AmountBeforeTax 為 100, fixed_amount 為 20,而 TaxFeeInfo 指定 8%,然後

    促銷費率 = (AmountBeforeTax - 固定) 折扣) * (1 + 百分比稅金)

    86.40 = (100 - 20) * 1.08

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

剛好是 percentage 中的一個參數, 必須提供 fixed_amountfixed_price

如果指定了 AmountAfterTax 的每晚房價,則這個價格 將住宿夜晚價格 (含稅金和相關費用) 設為 指定的值。如果指定 AmountBeforeTax,無論是否指定 AmountAfterTax,系統都會將住宿的稅前價格設為指定的值。假設為 和每晚房價相同的貨幣。

範例:

  • 如果一晚的 AmountBeforeTax 為 90, AmountAfterTax 為 100,fixed_price 為 80,則促銷費率為 80。
  • 如果一晚的 AmountBeforeTax 為 100, fixed_amount 為 80,而 TaxFeeInfo 指定 8%,然後

    促銷費率 = 固定價格 * (1 + 百分比稅金)

    86.40 = 80 * 1.08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount 定義必須可容納的房間數量限制 才會套用此促銷活動。折扣僅適用於 符合限制條件。不允許搭配 fixed_amount 折扣。請注意 會指定 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 的會員費率規則容器 來處理相關折扣

除非必要,否則「請勿」指定這個元素 也指定 <Discount>

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

的 ID 費率規範

Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount 指定每日房價的最低總和 (使用 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 費率方案的專屬 ID。這個值對應至 <PackageData> 中的 PackageID 值 在「交易 (資源資料)」訊息和 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> 元素 「交易 (資源資料)」訊息,以及 使用其 <RoomID> 值參照。( <RoomID> 值也會由 OTA_HotelRateAmountNotifRQ 中的 InvTypeCode 屬性 messages.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string 商品目錄 (客房類型) 的專屬 ID。這個值對應 將條件設為「交易 (資源資料)」訊息中的 <RoomID>。 長度上限為 50 個半形字元。
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking 指定促銷活動的合併方式。如未指定,則為「type」 假設為 base
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

單一費率可套用至單一費率,具體情況取決於 這項設定:

  • any:可與其他促銷活動合併使用 (除了 none),但促銷活動的順序 但不保證一定會套用
  • base:最適合的「base」促銷活動為: 並優先套用這些篩選條件這是 名稱是 base_only
  • second:最適合的「second」促銷活動 於 base促銷活動結束後,系統才會選取並套用 (如適用) 以及 any 項促銷活動前。
  • none不得與其他促銷活動併用。

可能的組合中,遇到的是能夠帶來 折扣幅度過大。

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates 包含一或多個日期範圍的容器 套用了促銷活動,例如配合季節性折扣。
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

說明如何套用促銷活動。

有效值如下:

  • all:如果行程中的所有日期與住宿日期重疊,則會將促銷活動套用至行程中的每晚。
  • any:如果行程中的任何日期與住宿日期範圍重疊,則將促銷活動套用至行程中的所有住宿晚數。
  • overlap:僅適用於這些目標 行程中與住宿日期重疊的日期 範圍。

必須一律指定此屬性。

  • 如果 <Discount> 指定 percentageapplication已設為 allany,折扣將以 。
  • 如果 <Discount> 指定 percentage,且 application 設為 overlap,系統會以重疊住宿晚數的每晚房價百分比套用折扣。
  • 指定 fixed_amount<Discount> application 設為 overlap 是 組合無效。
  • <FreeNights>支援所有 application 值。請注意,對於 overlap, 只有重疊的入住天數才會計入折扣 Google Cloud 就是最佳選擇
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

指定套用促銷活動的日期。

系統也支援 YearlessDate 格式。

  • 如果 startend 中的任一單位是無年紀念 日期,皆須填入無年日期。
  • 無年份日期範圍不得跨越新年。請改為以兩個相鄰的日期範圍表示範圍。例如: {"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

如果使用者國家/地區type設為 include,促銷活動適用於符合以下條件的使用者: 列出的國家。

如果使用者國家/地區typeexclude, 本優惠適用於下列國家/地區以外的使用者 國家。

如未設定 User countries type,系統會將此資訊視為 include,而促銷活動會套用至以下來源的使用者: 清單中列出的國家/地區

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country 定義使用者有資格參加促銷優惠的國家/地區。
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string CLDR 國家/地區 程式碼 例如 DEFR請注意 國家/地區,CLDR 國家/地區代碼與 2 個字母的 ISO 不同 國家/地區代碼。而且不支援 CLDR 區碼。

範例

每個資源最多只能有 500 項促銷活動。請參閱「刪除一個」 促銷活動」例如移除資源中的促銷活動

基本訊息

以下範例顯示基本的 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>


刪除單一宣傳活動

下例顯示如何刪除房源的一項促銷活動:

<?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> 推出一或多項新促銷活動設為 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 元素會與 startend 屬性搭配使用, DateTime 類型。這個預訂日期限制需要預訂 介於 2020-07-01 和 18:45 之間 (2020 年 7 月 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">
      <BookingDates>
         <DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
      </BookingDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


無年日期範圍

以下範例顯示了 CheckInDates 元素包含 DateRanges 具有 startend 欄位不含年份。在本例中,促銷活動 入住日期介於 12/29 到 1/2 之間,不分年份。一年內 跨年邊界的日期範圍無效,因此 DateRange 以兩個相鄰的日期範圍表示。

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

以下範例針對每四晚入住一晚,提供 50% 折扣。 指定的訂房日期範圍一到一晚的行程,總計 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>

下一個範例提供 1 晚 50% 的折扣,而入住天數為 3 晚, 指定住宿日期範圍。只有重疊的住宿天數 也是符合折扣資格針對後續的行程安排報到 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>


排序選擇

以下範例提供兩項折扣,一項可享 8 折優惠和另一項折扣 即可享有 85 折優惠評估期間只會套用 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

以下範例會套用 BestDailyDiscount 並堆疊 Discount,為兩晚住宿提供折扣。

<?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 日入住兩晚 計算時,您會找出可帶來最高成效的每日折扣組合, 最優先的折扣

如果是第一晚,促銷活動是唯一符合資格的金額 20 的固定折扣

針對第二晚住宿,「may」促銷活動提供的折扣比「general」折扣更深。因此,「或許」已選取固定折扣 值為 50

然後在住宿地點「慶典」可享每晚 5 點折扣,或 共 10 項。可與最佳每日折扣合併使用 因為「fiesta」堆疊類型已設為 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 訊息包含下列元素和屬性:

元素 / @屬性 發生次數 類型 說明
PromotionsResponse 1 Complex element 表示接收端成功或問題的根元素 促銷活動要求訊息。
PromotionsResponse / @timestamp 1 DateTime 這則訊息的建立日期和時間。
PromotionsResponse / @id 1 string 相關促銷活動訊息的專屬 ID。
PromotionsResponse / @partner 1 string 這則訊息的合作夥伴帳戶。
PromotionsResponse / Success 0..1 Success 表示已成功處理宣傳訊息,且未發生警告、錯誤或失敗。

<Success><Issues> 為 。

PromotionsResponse / Issues 0..1 Issues 用來存放處理 促銷訊息。

<Success><Issues> 為 。

PromotionsResponse / Issues / Issue 1..n Issue 出現警告、錯誤或失敗情形的說明 處理促銷活動訊息時,系統會自動進行處理。查看這些問題的詳細資料 英吋 動態饋給狀態錯誤訊息
PromotionsResponse / Issues / Issue / @code 1 integer 問題的 ID。
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>