Quảng cáo

Tổng quan

API này cho phép bạn chỉ định các khoản chiết khấu có thể có. Trong số các chương trình khuyến mãi được chỉ định, Google sẽ áp dụng chương trình khuyến mãi hoặc tập hợp chương trình khuyến mãi đủ điều kiện dẫn đến giá thấp nhất. Nếu bạn đang tìm một API hỗ trợ việc điều chỉnh giá tuỳ ý có thể tăng hoặc giảm giá khi các điều kiện được đáp ứng, hãy cân nhắc sử dụng API sửa đổi giá của chúng tôi. Xin lưu ý rằng nếu có cả hai API, thì các nội dung sửa đổi về giá sẽ được áp dụng trước các chương trình khuyến mãi.

Yêu cầu

Cú pháp

Thông báo Promotions sử dụng cú pháp sau:

<?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, percentage_of_base, 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" percentage_of_base="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>

Phần tử và thuộc tính

Thông báo Khuyến mãi có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
Promotions 1 Complex element Phần tử gốc của thông báo khuyến mãi.
Promotions / @partner 1 string Tài khoản đối tác dùng cho thông báo này. Giá trị của chuỗi này là giá trị của "Khoá đối tác" được liệt kê trên trang Cài đặt tài khoản trong Hotel Center.

Nếu bạn có phần phụ trợ là nguồn cấp dữ liệu cho nhiều tài khoản, thì giá trị này cần phải khớp với giá trị của thuộc tính ID được chỉ định trong phần tử <RequestorID> của thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> cho cùng một tài khoản.

Promotions / @id 1 string Giá trị nhận dạng duy nhất cho thông báo yêu cầu này. Giá trị này được trả về trong thông báo phản hồi. Ký tự được phép sử dụng là a – z, A – Z, 0 – 9, _ (dấu gạch dưới) và - (dấu gạch nối).
Promotions / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
Promotions / HotelPromotions 0..n HotelPromotions

Các chương trình khuyến mãi của cơ sở lưu trú. Mỗi chương trình khuyến mãi sẽ được áp dụng cho một cơ sở lưu trú.

Trừ phi có sử dụng <Stacking>, thì chương trình khuyến mãi có mức chiết khấu cao nhất mới được áp dụng cho yêu cầu đặt phòng trong trường hợp có nhiều chương trình khuyến mãi hợp lệ.

Promotions / HotelPromotions / @hotel_id 1 string Giá trị nhận dạng duy nhất của cơ sở lưu trú. Giá trị này phải khớp với Mã khách sạn được chỉ định bằng phần tử <id> trong phần tử <listing> của Nguồn cấp dữ liệu danh sách khách sạn. Mã khách sạn cũng có trong Hotel Center.
Promotions / HotelPromotions / @action 0..1 enum

Nếu được chỉ định, giá trị đó phải là "overlay". Khi giá trị là "overlay", mọi chương trình khuyến mãi đã lưu trữ sẽ bị xoá trước khi lưu trữ các chương trình khuyến mãi được chỉ định trong thông báo hiện tại.

Nếu không được chỉ định, mỗi chương trình khuyến mãi được chỉ định trong thông báo hiện tại sẽ:

  • Added (nếu không có chương trình khuyến mãi đã lưu trữ nào có cùng id)
  • Updated (nếu chương trình khuyến mãi đã lưu trữ có cùng id)
  • Deleted (nếu chương trình khuyến mãi đã lưu trữ có cùng id và giá trị của thuộc tính action cho chương trình khuyến mãi đã được chỉ định trong thông báo hiện tại là "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

Một chương trình khuyến mãi của cơ sở lưu trú. Xin lưu ý rằng nếu bạn không chỉ định action="overlay"<Promotion>, thì tất cả các chương trình khuyến mãi dành cho cơ sở lưu trú này sẽ bị xoá.

Nếu bạn cần sử dụng nhiều hơn 99 chương trình khuyến mãi, hãy liên hệ với Giám đốc Quản lý Khách hàng về Kỹ thuật (TAM) của bạn.

Promotions / HotelPromotions / Promotion / @id 1 string Giá trị nhận dạng duy nhất của chương trình khuyến mãi. Số lượng ký tự tối đa được phép là 40. Các ký tự hợp lệ là a – z, A – Z, 0 – 9, _ (dấu gạch dưới), - (dấu gạch nối) và . (dấu chấm).
Promotions /HotelPromotions / Promotion / @action 0..1 enum

Nếu được chỉ định, giá trị phải là delete. Nếu bạn không chỉ định và không lưu trữ chương trình khuyến mãi có cùng id, thì chương trình khuyến mãi này sẽ được lưu trữ. Nếu bạn không chỉ định và có lưu trữ một chương trình khuyến mãi có cùng id, thì chương trình khuyến mãi hiện tại sẽ được cập nhật.

Nếu bạn chỉ định delete, chương trình khuyến mãi được lưu trữ có cùng id sẽ bị xoá. Khi sử dụng delete, không dùng thêm bất kỳ phần tử con nào trong <Promotion>. Ngoài ra, không được phép sử dụng delete kết hợp với <HotelPromotions action="overlay"/>.

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates Vùng chứa một hoặc nhiều phạm vi dùng để xác định thời điểm phải đặt phòng để được hưởng chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange Phạm vi xác định thời điểm phải đặt phòng để được hưởng chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 Date hoặc DateTime

Ngày bắt đầu hoặc ngày giờ bắt đầu (dựa trên múi giờ của cơ sở lưu trú) trong phạm vi.

  • Ngày hoặc ngày giờ do start chỉ định phải sớm hơn (hoặc giống với) ngày hoặc ngày giờ do end chỉ định.
  • Nếu bạn không chỉ định start, phạm vi sẽ không có giới hạn về thời gian bắt đầu.
  • Nếu start được điền dưới dạng ngày "YYYY-MM-DD", thì giá trị này sẽ được diễn giải là ngày giờ "YYYY-MM-DDT00:00:00".
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date hoặc DateTime

Ngày kết thúc hoặc ngày giờ kết thúc (dựa trên múi giờ của cơ sở lưu trú) trong phạm vi.

  • Ngày hoặc ngày giờ do end chỉ định phải trễ hơn (hoặc giống với) ngày hoặc ngày giờ do start chỉ định.
  • Nếu bạn không chỉ định end, phạm vi sẽ không có giới hạn về thời gian kết thúc.
  • Nếu end được cung cấp dưới dạng ngày "YYYY-MM-DD", thì giá trị này sẽ được diễn giải là ngày giờ "YYYY-MM-DDT23:59:59".
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không chỉ định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow Xác định khoảng thời gian tương đối phải đặt phòng so với ngày nhận phòng (sử dụng múi giờ của cơ sở lưu trú). Ví dụ: có thể đặt thời hạn đặt phòng là ít nhất 7 ngày, nhưng không quá 180 ngày, trước ngày nhận phòng.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration Thời gian tối thiểu phải đặt phòng trước ngày nhận phòng để được hưởng chương trình khuyến mãi. Nếu bạn không chỉ định giá trị này hoặc giá trị của thuộc tính này là 0, thì sẽ không có giới hạn tối thiểu.

Các loại giá trị hợp lệ là:

  • Số nguyên: Số ngày trước ngày nhận phòng. Ví dụ: Giá trị 30 cho biết chương trình khuyến mãi chỉ áp dụng cho các lượt đặt phòng ít nhất 30 ngày trước ngày nhận phòng.
  • Thời gian ISO 8601 (ngày, giờ và phút): Số ngày (và giờ/phút, không bắt buộc) trước ngày nhận phòng. Ví dụ: Giá trị P30D cho biết chương trình khuyến mãi chỉ áp dụng cho các lượt đặt phòng ít nhất 30 ngày trước ngày nhận phòng. Giá trị P30DT6H yêu cầu đặt phòng vào hoặc trước 18:00 vào ngày thứ 30 trước ngày đến.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration Số ngày tối đa phải đặt phòng trước ngày nhận phòng để được hưởng chương trình khuyến mãi. Nếu bạn không chỉ định giá trị này hoặc giá trị của thuộc tính này là 0, thì sẽ không có giới hạn tối đa.

Các loại giá trị hợp lệ là:

  • Số nguyên: Số ngày trước ngày nhận phòng. Ví dụ: Giá trị 30 cho biết chương trình khuyến mãi chỉ áp dụng cho các lượt đặt phòng tối đa 30 ngày trước ngày nhận phòng.
  • Thời gian ISO 8601 (ngày, giờ và phút): Số ngày (và giờ/phút, không bắt buộc) trước ngày nhận phòng. Ví dụ: Giá trị P30D cho biết chương trình khuyến mãi chỉ áp dụng cho các lượt đặt phòng tối đa 30 ngày trước ngày nhận phòng. Giá trị P30DT6H yêu cầu đặt phòng vào hoặc sau 18:00 vào ngày thứ 30 trước ngày đến.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

Xác định các quy định hạn chế về giá trị tối đa mà bạn có thể đặt cho giá phòng sau khi áp dụng chương trình khuyến mãi.

Chương trình khuyến mãi phải luôn chỉ định <Discount> hoặc <BestDailyDiscount>. Vì vậy, để tạo một chương trình khuyến mãi chỉ áp dụng <Ceiling>, bạn có thể đặt <Discount> với percentage0.

Nếu bạn định cấu hình tính năng xếp chồng, thì nhiều chương trình khuyến mãi có <Ceiling> có thể áp dụng cho một lượt lưu trú. Mỗi chương trình khuyến mãi sẽ áp dụng mức chiết khấu, ngay sau đó là mức trần. Ví dụ sau đây minh hoạ cách mỗi mức trần đóng góp vào phép tính quảng bá tiếp theo trong ngăn xếp.

Ví dụ:

Định giá cho một đêm lưu trú, trong đó AmountBeforeTax là 100 và có một nhóm gồm 2 chương trình khuyến mãi:

  1. Chương trình khuyến mãi có loại xếp chồng base, fixed_amount là 25 và amount_per_night trần là 60
  2. Chương trình khuyến mãi có loại xếp chồng là second, fixed_amount là 25 và amount_per_night trần là 90

Dưới đây là thứ tự tính toán:

  1. Chương trình khuyến mãi base được áp dụng trước tiên và giảm giá AmountBeforeTax xuống còn 75, nhưng sau đó, mức trần giảm xuống còn 60.
  2. Chương trình khuyến mãi second giảm giá AmountBeforeTax từ 60 xuống 35. Giá trị này thấp hơn trần là 90 nên trần thứ hai không được áp dụng. Mức giá cuối cùng là 35.

Việc 60 là mức trần tổng thể nghiêm ngặt hơn là không liên quan vì mức trần này chỉ hợp lệ cho chương trình khuyến mãi của riêng nó và không thể có một mức trần duy nhất áp dụng cho toàn bộ ngăn xếp chương trình khuyến mãi.

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

Số tiền tối đa mà bạn có thể đặt cho đơn giá theo đêm sau khi áp dụng chiết khấu.

Nếu bạn cũng chỉ định phần tử <Floor>, thì bạn phải đặt giá trị này thành một giá trị lớn hơn hoặc bằng thuộc tính amount_per_night trong <Floor>.

amount_per_night được áp dụng cho các khoản thuế và phí khi chúng được đưa vào giá mỗi đêm bằng AmountAfterTax, nhưng không áp dụng cho các khoản thuế và phí được chỉ định bằng TaxFeeInfo.

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

Xác định các quy định hạn chế về giá trị tối thiểu mà bạn có thể đặt cho giá phòng sau khi áp dụng chương trình khuyến mãi.

Chương trình khuyến mãi phải luôn chỉ định <Discount> hoặc <BestDailyDiscount>. Vì vậy, để tạo một chương trình khuyến mãi chỉ áp dụng <Floor>, bạn có thể đặt <Discount> với percentage0.

Logic <Floor> vẫn áp dụng cho chiết khấu <FreeNights>, ngay cả khi đêm miễn phí được áp dụng chiết khấu 100%.

Nếu bạn định cấu hình tính năng xếp chồng, thì nhiều chương trình khuyến mãi có <Floor> có thể áp dụng cho một lượt lưu trú. Mỗi chương trình khuyến mãi sẽ áp dụng mức chiết khấu, ngay sau đó là giá sàn. Ví dụ sau đây minh hoạ cách mỗi tầng đóng góp vào phép tính quảng bá tiếp theo trong ngăn xếp.

Ví dụ:

Định giá cho một đêm lưu trú, trong đó AmountBeforeTax là 100 và có một nhóm gồm 2 chương trình khuyến mãi:

  1. Chương trình khuyến mãi có loại xếp chồng là base, fixed_amount là 25 và amount_per_night là 90
  2. Chương trình khuyến mãi có loại xếp chồng là second, fixed_amount là 25 và amount_per_night là 60

Dưới đây là thứ tự tính toán:

  1. Chương trình khuyến mãi base được áp dụng trước và giảm giá AmountBeforeTax xuống còn 75, nhưng sau đó giá sàn sẽ tăng lên 90.
  2. Chương trình khuyến mãi second giảm giá AmountBeforeTax từ 90 xuống 65. Giá trị này cao hơn ngưỡng 60 nên không áp dụng ngưỡng thứ hai. Mức giá cuối cùng là 65.

Việc 90 là mức sàn tổng thể nghiêm ngặt hơn là không liên quan vì mức này chỉ hợp lệ cho chương trình khuyến mãi của riêng nó và không thể có một mức sàn duy nhất áp dụng cho toàn bộ ngăn xếp chương trình khuyến mãi.

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

Số tiền tối thiểu mà bạn có thể đặt cho đơn giá theo đêm sau khi áp dụng chiết khấu.

Nếu bạn cũng chỉ định phần tử <Ceiling>, thì bạn phải đặt giá trị này thành một giá trị nhỏ hơn hoặc bằng thuộc tính amount_per_night trong <Ceiling>.

amount_per_night được áp dụng cho các khoản thuế và phí khi chúng được đưa vào giá mỗi đêm bằng AmountAfterTax, nhưng không áp dụng cho các khoản thuế và phí được chỉ định bằng TaxFeeInfo.

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định thời điểm phải nhận phòng để được hưởng chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

Phạm vi ngày xác định thời điểm phải nhận phòng để được hưởng chương trình khuyến mãi. Không bắt buộc phải sử dụng phần tử này nếu bạn đang xoá một hoặc nhiều chương trình khuyến mãi.

Định dạng YearlessDate cũng được hỗ trợ.

  • Nếu một trong hai start hoặc end là ngày không có năm, thì cả hai đều phải được điền dưới dạng ngày không có năm.
  • Phạm vi ngày không có năm không được bao gồm năm mới. Thay vào đó, hãy biểu thị phạm vi này dưới dạng hai phạm vi ngày liền kề. Ví dụ: {"12-29", "01-05"} có thể được biểu thị dưới dạng {"12-29", "12-31"}{"01-01", "01-05"}.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0..1 Date or YearlessDate Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không xác định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không chỉ định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định thời điểm phải trả phòng để được hưởng chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

Phạm vi ngày xác định thời điểm phải trả phòng để được hưởng chương trình khuyến mãi. Không bắt buộc phải sử dụng phần tử này nếu bạn đang xoá một hoặc nhiều chương trình khuyến mãi.

Định dạng YearlessDate cũng được hỗ trợ.

  • Nếu một trong hai giá trị start hoặc end là ngày không có năm, thì cả hai phải được điền dưới dạng ngày không có năm.
  • Phạm vi ngày không có năm không được bao gồm năm mới. Thay vào đó, hãy biểu thị phạm vi này dưới dạng hai phạm vi ngày liền kề. Ví dụ: {"12-29", "01-05"} có thể được biểu thị dưới dạng {"12-29", "12-31"}{"01-01", "01-05"}.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không xác định end, phạm vi ngày sẽ không có giới hạn vì không có ngày kết thúc.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không chỉ định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices Vùng chứa dùng để liệt kê các thiết bị của người dùng đủ điều kiện hưởng chương trình khuyến mãi. Nếu bạn chỉ định giá trị này, chỉ những người dùng đủ điều kiện và đang sử dụng các thiết bị có trong danh sách mới được hưởng mức giá chiết khấu. Nếu không xác định, người dùng đủ điều kiện và đang sử dụng bất cứ thiết bị nào cũng sẽ được hưởng mức giá chiết khấu.
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device Xác định một loại thiết bị của người dùng đủ điều kiện tham gia chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum Một loại thiết bị. Giá trị phải là desktop, tablet hoặc mobile.
Promotions / HotelPromotions / Promotion / Discount 1 Discount

Bạn phải chỉ định đúng một trong hai thuộc tính Discount hoặc BestDailyDiscount.

Xác định mức chiết khấu sẽ áp dụng cho chương trình khuyến mãi này.

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

Bạn phải sử dụng chính xác một trong các tham số percentage, percentage_of_base, fixed_amount, fixed_amount_per_night, fixed_price hoặc fixed_price_per_night.

Giá trị thập phân từ 0 đến 100 xác định tỷ lệ chiết khấu theo phần trăm. Giá trị này được áp dụng cho AmountAfterTax (hoặc AmountBeforeTax nếu bạn không chỉ định AmountAfterTax).

Ví dụ:

  • Nếu AmountAfterTax là 100 và percentage là 20, thì

    tỷ lệ khuyến mãi = AmountAfterTax * (1 – tỷ lệ chiết khấu)

    80 = 100 * (1 - 0,2)

  • Nếu AmountBeforeTax là 100, percentage là 20 và TaxFeeInfo cho biết thuế suất là 10, thì

    tỷ lệ khuyến mãi = AmountBeforeTax * (1 – tỷ lệ chiết khấu) + thuế

    90 = 100 * (1 - 0,2) + 10

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

Bạn phải sử dụng chính xác một trong các tham số percentage, percentage_of_base, fixed_amount, fixed_amount_per_night, fixed_price hoặc fixed_price_per_night.

Giá trị thập phân từ 0 đến 100 xác định tỷ lệ phần trăm chiết khấu cơ bản. Tương tự như percentage, giá trị này được áp dụng cho AmountAfterTax (hoặc AmountBeforeTax nếu bạn không chỉ định AmountAfterTax).

Không giống như percentage, mức chiết khấu này luôn được tính theo tỷ lệ phần trăm của giá cơ bản, bất kể các chương trình khuyến mãi trước đó đã được áp dụng theo trình tự hay chưa.

Ví dụ:

  • Giả sử chúng ta có hai chương trình khuyến mãi được áp dụng tuần tự cho một lượt lưu trú một đêm có giá 100. Mức chiết khấu đầu tiên là mức chiết khấu theo tỷ lệ phần trăm thông thường là 10% và mức chiết khấu thứ hai là 10% trên mức chiết khấu cơ bản. Sau đó, mức giá chiết khấu sẽ là 80 vì cả hai chương trình khuyến mãi đều giảm 10. Lưu ý nếu chương trình khuyến mãi thứ hai cũng là chương trình chiết khấu theo tỷ lệ phần trăm thông thường, thì mức giá chiết khấu sẽ là 81 vì chương trình khuyến mãi thứ hai chiết khấu 10% trên 90.
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

Bạn phải sử dụng chính xác một trong các tham số percentage, percentage_of_base, fixed_amount, fixed_amount_per_night, fixed_price hoặc fixed_price_per_night.

Số tiền cố định sẽ được trừ vào tổng của đơn giá theo đêm AmountAfterTax (hoặc tổng của đơn giá theo đêm AmountBeforeTax nếu không được xác định AmountAfterTax). Giá trị này được giả định là có cùng đơn vị tiền tệ với đơn giá theo đêm. Nếu giá trị này lớn hơn tổng đơn giá theo đêm, thì giá trị đạt được sẽ bằng 0.

Ví dụ:

  • Nếu chúng ta định giá 1 đêm ở, trong đó AmountBeforeTax là 90, AmountAfterTax là 100 và fixed_amount là 20, thì

    tỷ lệ khuyến mãi = AmountAfterTax – mức chiết khấu cố định

    80 = 100 - 20

  • Nếu chúng ta định giá 1 đêm ở, trong đó AmountBeforeTax là 100, fixed_amount là 20 và TaxFeeInfo cho biết thuế suất là 8%, thì

    tỷ lệ khuyến mãi = (AmountBeforeTax – mức chiết khấu cố định) * (1 + thuế suất)

    86,40 = (100 - 20) * 1,08

  • Nếu chúng ta định giá 1 đêm ở, trong đó AmountBeforeTax là 50, fixed_amount là 60 và TaxFeeInfo cho biết thuế suất là 10, thì

    tỷ lệ khuyến mãi = (AmountBeforeTax – mức chiết khấu cố định) * thuế

    10 = 0 + 10

  • Nếu chúng ta định giá 3 đêm ở, trong đó AmountAfterTax là 100, 110 và 120; còn fixed_amount là 150, thì

    tỷ lệ khuyến mãi = tổng(AmountAfterTax) - (mức chiết khấu cố định)

    180 = (100 + 110 + 120) - 150

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

Bạn phải sử dụng chính xác một trong các tham số percentage, percentage_of_base, fixed_amount, fixed_amount_per_night, fixed_price hoặc fixed_price_per_night.

Một mức chiết khấu cố định được áp dụng cho từng đơn giá theo đêm AmountAfterTax (hoặc N thấp nhất nếu bạn xác định applied_nights). Nếu bạn không chỉ định AmountAfterTax, thì mức chiết khấu sẽ được áp dụng cho AmountBeforeTax. Giá trị này được giả định là có cùng đơn vị tiền tệ với đơn giá theo đêm. Nếu fixed_amount_per_night lớn hơn một đơn giá theo đêm, thì đơn giá theo đêm đó sẽ được giảm xuống bằng 0, mức chiết khấu không thể làm cho đơn giá theo đêm thành giá trị âm.

Ví dụ:

  • Nếu chúng ta định giá cho 3 đêm ở, trong đó giá trị của AmountAfterTax là 100, 110 và 120; còn fixed_amount_per_night là 10, thì

    tỷ lệ khuyến mãi = tổng(AmountBeforeTax – số tiền cố định được chiết khấu)

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

  • Nếu chúng ta định giá cho 3 đêm ở, trong đó giá trị của AmountAfterTax là 10, 50 và 100; còn fixed_amount_per_night là 20, thì

    tỷ lệ khuyến mãi = tổng(AmountAfterTax – số tiền cố định được chiết khấu)

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

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

Bạn phải sử dụng chính xác một trong các tham số percentage, percentage_of_base, fixed_amount, fixed_amount_per_night, fixed_price hoặc fixed_price_per_night.

Nếu bạn chỉ định giá mỗi đêm AmountAfterTax, thì giá trị này sẽ đặt giá cho thời gian lưu trú, bao gồm cả thuế và phí, thành giá trị đã chỉ định. Nếu bạn chỉ định AmountBeforeTax, thì cho dù bạn có chỉ định AmountAfterTax hay không, giá trước thuế của kỳ lưu trú sẽ được đặt thành giá trị đã chỉ định. Giá trị này được giả định là có cùng đơn vị tiền tệ với đơn giá theo đêm.

Nếu AmountAfterTax dùng để phản ánh thuế theo tỷ lệ phần trăm, thì việc đặt giá cố định cho AmountBeforeTax có thể dẫn đến thuế và phí không chính xác. Nhìn chung, bạn nên sử dụng TaxFeeInfo để chỉ định thuế và phí của cơ sở lưu trú.

Ví dụ:

  • Nếu chúng ta định giá 1 đêm ở, trong đó AmountBeforeTax là 90, AmountAfterTax là 100 và fixed_price là 80, thì giá khuyến mãi là 80.
  • Nếu chúng ta định giá 1 đêm ở, trong đó AmountBeforeTax là 100, fixed_amount là 80 và TaxFeeInfo cho biết thuế suất là 8%, thì

    tỷ lệ khuyến mãi = giá cố định * (1 + thuế suất)

    86,40 = 80 * 1,08

  • Nếu chúng ta định giá cho 3 đêm ở, trong đó giá trị của AmountAfterTax là 100, 110 và 120; còn fixed_amount là 300, thì

    tỷ lệ khuyến mãi = 300

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

Bạn phải sử dụng chính xác một trong các tham số percentage, percentage_of_base, fixed_amount, fixed_amount_per_night, fixed_price hoặc fixed_price_per_night.

Nếu bạn chỉ định giá mỗi đêm AmountAfterTax, thì giá trị này sẽ đặt giá cho mỗi đêm lưu trú, bao gồm cả thuế và phí, thành giá trị đã chỉ định. Nếu bạn chỉ định AmountBeforeTax, thì cho dù bạn có chỉ định AmountAfterTax hay không, giá trước thuế cho mỗi đêm lưu trú sẽ được đặt thành giá trị đã chỉ định. Giá trị này được giả định là có cùng đơn vị tiền tệ với đơn giá theo đêm.

Nếu AmountAfterTax dùng để phản ánh thuế theo tỷ lệ phần trăm, thì việc đặt giá cố định cho AmountBeforeTax có thể dẫn đến thuế và phí không chính xác. Nhìn chung, bạn nên sử dụng TaxFeeInfo để chỉ định thuế và phí của cơ sở lưu trú.

Nếu bạn chỉ định applied_nights, thì giá mới sẽ được áp dụng cho N đêm rẻ nhất.

Ví dụ:

  • Nếu chúng ta định giá cho 2 đêm ở, trong đó giá trị của AmountBeforeTax là 90, 90; giá trị của AmountAfterTax là 100, 100 và fixed_price là 80, thì giá ưu đãi là 80 + 80 = 160.
  • Nếu chúng ta định giá 2 đêm ở, trong đó AmountBeforeTax là 100, 100; fixed_amount là 80 và TaxFeeInfo cho biết thuế suất là 8%, thì giá ưu đãi là (80 + 80) * 1,08 = 172,8.
  • Nếu chúng ta định giá cho 3 đêm ở, trong đó giá trị của AmountAfterTax là 100, 110 và 120; còn fixed_amount là 110, thì giá ưu đãi là 110 * 3 = 330.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

Bạn chỉ nên dùng thuộc tính này kết hợp với percentage hoặc fixed_amount_per_night.

Số đêm được áp dụng chiết khấu, bắt đầu bằng đêm có giá thấp nhất. Phải là số nguyên từ 1 đến 99. Nếu không xác định số đêm, thì chiết khấu sẽ được áp dụng cho tất cả các đêm.

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights Chỉ định mức chiết khấu cho một số đêm lưu trú nhất định khi khách lưu trú đủ thời gian lưu trú tối thiểu. Không được phép sử dụng thuộc tính trên phần tử Discount mẹ nếu phần tử này được sử dụng.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

Số đêm bắt buộc để áp dụng chiết khấu. Mỗi mức chiết khấu được áp dụng cho một phân khúc riêng biệt về số đêm lưu trú.

Ví dụ: đối với một kỳ lưu trú 10 đêm, trong đó stay_nights là 4 (và repeats là true), thì sẽ có hai phân khúc đêm lưu trú: từ đêm thứ nhất đến đêm thứ 4 và từ đêm thứ 5 đến đêm thứ 8; đêm thứ 9 và đêm thứ 10 không thuộc phân khúc đêm lưu trú.

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer Số đêm được giảm giá trong mỗi phân khúc số đêm lưu trú.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float Mức chiết khấu được áp dụng cho các đêm có chiết khấu. Nếu giá trị này là 50, thì mỗi đêm được chọn sẽ được giảm giá 50%.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string Phải là cheapest hoặc last. Nếu last, thì các đêm ở cuối giai đoạn lưu trú sẽ được chiết khấu. Nếu là cheapest, thì các đêm rẻ nhất trong khoảng thời gian lưu trú sẽ được chiết khấu.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

Liệu chiết khấu có thể áp dụng cho nhiều phân khúc số đêm lưu trú hay không. Nếu là false, thì chỉ phân đoạn số đêm lưu trú ở đầu hành trình mới được giảm giá. Nếu là true, thì mọi phân khúc số đêm lưu trú đều được chiết khấu.

Ví dụ: nếu stay_nights là 4 và hành trình là 10 đêm, thì nếu repeatstrue, thì 2 phân đoạn sẽ được giảm giá (đêm 1-4 và đêm 5-8); nhưng nếu repeatsfalse, thì chỉ 1 phân đoạn được giảm giá (đêm 1-4).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer Chỉ định thứ hạng cho chương trình khuyến mãi này và chọn chương trình khuyến mãi này trong lựa chọn theo thứ hạng, trong đó chỉ chương trình khuyến mãi có thứ hạng thấp nhất mới được chọn để áp dụng. Giá trị phải nằm trong khoảng từ 1 đến 99. Nếu nhiều chương trình khuyến mãi có cùng thứ hạng, thì hệ thống sẽ chọn và áp dụng một chương trình ngẫu nhiên.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

Bạn phải chỉ định đúng một trong hai thuộc tính Discount hoặc BestDailyDiscount.

Chỉ định mức chiết khấu hằng ngày có thể áp dụng cho một đêm lưu trú. Điều này khác với Discount, trong đó áp dụng chiết khấu cho toàn bộ thời gian lưu trú.

Mỗi tài sản có thể có một nhóm chương trình khuyến mãi được coi là "tốt nhất hằng ngày". Điều này có nghĩa là đối với mỗi đêm lưu trú, hệ thống sẽ chọn và có thể áp dụng một chương trình khuyến mãi "tốt nhất hằng ngày" đủ điều kiện và có mức chiết khấu sâu nhất cho đêm đó.

Bạn có thể chỉ định Stacking bằng BestDailyDiscount. Bạn phải đặt thuộc tính này thành base hoặc none. Các khoản chiết khấu "tốt nhất hằng ngày" mang lại mức chiết khấu sâu nhất cho mỗi đêm được kết hợp và coi là một khoản chiết khấu cho một lượt lưu trú (tức là Discount) trong khi vẫn tuân thủ loại xếp chồng đã định cấu hình. Mức chiết khấu kết hợp này được so sánh với các chương trình khuyến mãi <Discount> đủ điều kiện khác và có thể được xếp chồng để tìm một hoặc nhiều chương trình khuyến mãi có mức chiết khấu sâu nhất. Tổ hợp BestDailyDiscount hoặc một Discount, tuỳ theo giá thấp hơn, sẽ được chọn và áp dụng cho loại xếp chồng base.

Bạn có thể chỉ định StayDates bằng loại chiết khấu này, nhưng phải đặt application thành overlap

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

Phải dùng chính xác một trong các tham số percentage, fixed_amount hoặc fixed_price.

Giá trị thập phân từ 0 đến 100 xác định tỷ lệ chiết khấu theo phần trăm. Giá trị này được áp dụng cho AmountAfterTax (hoặc AmountBeforeTax nếu bạn không chỉ định AmountAfterTax).

Ví dụ:

  • Nếu AmountAfterTax cho một đêm lưu trú là 100 và percentage là 20, thì

    tỷ lệ khuyến mãi = AmountAfterTax * (1 – tỷ lệ chiết khấu)

    80 = 100 * (1 - 0,2)

  • Nếu AmountBeforeTax cho một đêm lưu trú là 100, percentage là 20 và TaxFeeInfo cho biết thuế suất là 10, thì

    tỷ lệ khuyến mãi = AmountBeforeTax * (1 – tỷ lệ chiết khấu) + thuế

    90 = 100 * (1 - 0,2) + 10

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

Phải dùng chính xác một trong các tham số percentage, fixed_amount hoặc fixed_price.

Số tiền cố định sẽ được trừ vào một đơn giá theo đêm AmountAfterTax (hoặc đơn giá theo đêm AmountBeforeTax nếu không được xác định AmountAfterTax). Giá trị này được giả định là có cùng đơn vị tiền tệ với đơn giá theo đêm. Nếu giá trị này lớn hơn tổng đơn giá theo đêm, thì giá trị đạt được sẽ bằng 0.

Ví dụ:

  • Nếu AmountBeforeTax cho một đêm là 90, AmountAfterTax là 100 và fixed_amount là 20, thì

    tỷ lệ khuyến mãi = AmountAfterTax – mức chiết khấu cố định

    80 = 100 - 20

  • Nếu AmountBeforeTax cho một đêm là 100, fixed_amount là 20 và TaxFeeInfo cho biết thuế suất là 8%, thì

    tỷ lệ khuyến mãi = (AmountBeforeTax – mức chiết khấu cố định) * (1 + thuế suất)

    86,40 = (100 - 20) * 1,08

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

Phải dùng chính xác một trong các tham số percentage, fixed_amount hoặc fixed_price.

Nếu bạn chỉ định giá mỗi đêm AmountAfterTax, thì giá cho đêm lưu trú, bao gồm cả thuế và phí, sẽ được đặt thành giá trị đã chỉ định. Nếu bạn chỉ định AmountBeforeTax, thì cho dù bạn có chỉ định AmountAfterTax hay không, giá trước thuế của kỳ lưu trú sẽ được đặt thành giá trị đã chỉ định. Giá trị này được giả định là có cùng đơn vị tiền tệ với đơn giá theo đêm.

Ví dụ:

  • Nếu AmountBeforeTax cho một đêm là 90, AmountAfterTax là 100 và fixed_price là 80, thì giá khuyến mãi là 80.
  • Nếu AmountBeforeTax cho một đêm là 100, fixed_amount là 80 và TaxFeeInfo cho biết thuế suất là 8%, thì

    tỷ lệ khuyến mãi = giá cố định * (1 + thuế suất)

    86,40 = 80 * 1,08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount Đặt quy định hạn chế về số lượng phòng phải còn trống để được hưởng chương trình khuyến mãi. Chiết khấu chỉ được áp dụng cho những đêm thỏa mãn quy định hạn chế. Không được áp dụng đối với hình thức chiết khấu fixed_amount. Lưu ý: số lượng phòng còn trống sẽ được xác định bằng OTA_HotelInvCountNotifRQ (InvCount) hoặc OTA_HotelAvailNotifRQ (BookingLimit).
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer Số lượng phòng còn trống tối thiểu phải được dành ra cho chương trình khuyến mãi sẽ được áp dụng cho đơn giá theo đêm. Nếu bạn không xác định giá trị này, thì sẽ không có số đêm tối thiểu.
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer Số lượng phòng còn trống tối đa phải được dành ra cho chương trình khuyến mãi sẽ được áp dụng cho đơn giá theo đêm. Nếu bạn không xác định giá trị này, thì sẽ không có giới hạn tối đa.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay Xác định giới hạn của thời gian lưu trú để có thể hưởng chương trình khuyến mãi. Chương trình khuyến mãi sẽ không được áp dụng nếu thời gian lưu trú nằm ngoài giới hạn tối thiểu và giới hạn tối đa.
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer Số đêm tối thiểu trong thời gian lưu trú được phép hưởng chương trình khuyến mãi. Nếu bạn không xác định giá trị này, thì sẽ không có số đêm tối thiểu.
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer Số đêm tối đa trong thời gian lưu trú được phép hưởng chương trình khuyến mãi. Nếu bạn không xác định giá trị này, thì sẽ không có số đêm tối đa.
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

Vùng chứa cho quy tắc mức giá thành viên kích hoạt một biện pháp xử lý giao diện người dùng cụ thể cho khoản chiết khấu được liên kết.

Bạn không được chỉ định phần tử này trừ phi cũng chỉ định <Discount>.

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

Mã của quy tắc giá liên kết với một chương trình thành viên.

Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount Xác định tổng số tiền tối thiểu của các giá phòng theo ngày (dùng AmountBeforeTax hoặc AmountAfterTax tuỳ giá trị nào lớn hơn) mà bạn phải đạt cao hơn để được hưởng chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 integer Bạn phải đạt giá trị cao hơn giá trị này để được hưởng chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / Occupancy 0..1 Occupancy Xác định các quy định hạn chế về số người lưu trú được áp dụng cho chương trình khuyến mãi này. Chương trình khuyến mãi sẽ không được áp dụng nếu số người lưu trú nằm ngoài giới hạn tối thiểu và giới hạn tối đa.
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer Số người lưu trú do người dùng chỉ định phải ít nhất bằng giá trị này thì mới áp dụng được chiết khấu.
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer Số người lưu trú do người dùng chỉ định phải tối đa là giá trị này để áp dụng chiết khấu.
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans Vùng chứa danh sách các gói giá được áp dụng chương trình khuyến mãi. Nếu bạn không xác định <RatePlans>, thì chương trình khuyến mãi sẽ áp dụng cho mọi gói giá.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan 1..n RatePlan Chỉ định một gói giá. Gói giá được xác định là tổng hợp gói dịch vụ, giá và tình trạng phòng, theo cách xác định trong các thông báo Giao dịch (Dữ liệu của cơ sở lưu trú), OTA_HotelRateAmountNotifRQ và OTA_HotelAvailNotifRQ, đồng thời gói giá còn được xác định bằng PackageID.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 string Giá trị nhận dạng duy nhất của gói giá. Giá trị này tương ứng với giá trị PackageID trong <PackageData> trong thông báo Giao dịch (Dữ liệu cơ sở lưu trú) và trong thuộc tính RatePlanCode của <StatusApplicationControl> trong cả thông báo <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ>. Số lượng ký tự tối đa được phép là 50.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng được áp dụng chương trình khuyến mãi. Chương trình khuyến mãi sẽ áp dụng cho mỗi <RoomType> được chỉ định. Nếu bạn không xác định <RoomTypes>, chương trình khuyến mãi sẽ áp dụng cho mọi loại phòng.
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType Chỉ định một loại phòng. Loại phòng được xác định trong phần tử <RoomData> của thông báo Giao dịch (Dữ liệu của cơ sở lưu trú) và được tham chiếu bằng giá trị <RoomID>. (Giá trị <RoomID> còn được thuộc tính InvTypeCode trong các thông báo OTA_HotelRateAmountNotifRQ tham chiếu.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string Giá trị nhận dạng duy nhất của quỹ phòng (loại phòng). Giá trị này tương ứng với <RoomID> trong thông báo Giao dịch (Dữ liệu của cơ sở lưu trú). Số lượng ký tự tối đa được phép là 50.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking Chỉ định cách kết hợp các chương trình khuyến mãi. Nếu không xác định, "type" sẽ được giả định là base.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

Bạn có thể áp dụng nhiều chương trình khuyến mãi cho một đơn giá tuỳ thuộc vào chế độ cài đặt sau:

  • any: Có thể kết hợp với mọi chương trình khuyến mãi khác (ngoại trừ none), nhưng không đảm bảo thứ tự áp dụng các chương trình khuyến mãi.
  • base: Chương trình khuyến mãi base đủ điều kiện tốt nhất sẽ được chọn và áp dụng trước các chương trình khuyến mãi khác. Trước đây, lớp này có tên là base_only.
  • second: Chương trình khuyến mãi second đủ điều kiện tốt nhất sẽ được chọn và áp dụng sau chương trình khuyến mãi base (nếu có) và trước chương trình khuyến mãi any.
  • none: Không thể sử dụng cùng các chương trình khuyến mãi khác.

Trong số các cách kết hợp được chấp nhận, tập hợp các chương trình khuyến mãi tạo ra mức chiết khấu lớn nhất sẽ được áp dụng cho đơn giá.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates Vùng chứa một hoặc nhiều phạm vi ngày dùng để xác định cách áp dụng chương trình khuyến mãi, chẳng hạn như để phù hợp với các mức chiết khấu theo mùa.
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

Mô tả cách áp dụng chương trình khuyến mãi.

Các giá trị hợp lệ là:

  • all: Áp dụng chương trình khuyến mãi cho mỗi đêm trong hành trình nếu tất cả các ngày trong hành trình đó trùng với các ngày trong thời gian lưu trú.
  • any: Áp dụng chương trình khuyến mãi cho tất cả các đêm trong hành trình nếu có bất kỳ ngày nào trong hành trình đó trùng với một ngày trong khoảng thời gian lưu trú.
  • overlap: Chỉ áp dụng chương trình khuyến mãi cho các đêm trong hành trình trùng với một ngày trong thời gian lưu trú.

Thuộc tính này phải luôn được chỉ định.

  • Nếu <Discount> xác định percentageapplication được đặt là all hoặc any, thì mức chiết khấu sẽ được áp dụng theo tỷ lệ phần trăm của toàn bộ thời gian lưu trú.
  • Nếu <Discount> chỉ định percentageapplication được đặt là overlap, thì mức chiết khấu sẽ được áp dụng theo tỷ lệ phần trăm của đơn giá mỗi đêm đối với các đêm trùng.
  • <Discount> chỉ định fixed_amountapplication được đặt thành overlap là cách kết hợp không hợp lệ.
  • <FreeNights> hỗ trợ tất cả giá trị application. Xin lưu ý rằng đối với overlap, chỉ những đêm lưu trú trùng lặp mới được xem xét theo các yêu cầu về chiết khấu.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

Phạm vi ngày xác định những ngày mà chương trình khuyến mãi được áp dụng.

Định dạng YearlessDate cũng được hỗ trợ.

  • Nếu một trong hai start hoặc end là ngày không có năm, thì cả hai đều phải được điền dưới dạng ngày không có năm.
  • Phạm vi ngày không có năm không được bao gồm năm mới. Thay vào đó, hãy biểu thị phạm vi này dưới dạng hai phạm vi ngày liền kề. Ví dụ: {"12-29", "01-05"} có thể được biểu thị dưới dạng {"12-29", "12-31"}{"01-01", "01-05"}.

Nếu muốn đặt phạm vi StayDates để cho phép chương trình khuyến mãi vào một số ngày trong tuần, bạn nên đặt ngày start là ngày hiện tại mà không có end để chương trình khuyến mãi không hết hạn.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate Ngày bắt đầu (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trước hoặc trùng với ngày end. Nếu bạn không xác định start, phạm vi ngày sẽ không có giới hạn vì không có ngày bắt đầu.

Bạn nên chỉ định giá trị start nếu không cung cấp giá trị end.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate Ngày kết thúc (sử dụng múi giờ của cơ sở lưu trú) trong phạm vi ngày. Ngày này phải trùng hoặc sau ngày start. Nếu bạn không xác định end, phạm vi ngày sẽ không có giới hạn kể từ ngày start trở đi.

Bạn nên chỉ định giá trị end nếu không cung cấp giá trị start.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 string

Ngày trong tuần được phép sử dụng trong phạm vi ngày. Nếu bạn không chỉ định, tất cả các ngày trong tuần đều được phép sử dụng trong phạm vi ngày. Mỗi ký tự trong chuỗi xác định một ngày. Ví dụ: "MTWHF" cho biết là được phép sử dụng các ngày làm việc trong tuần trong phạm vi ngày.

Các ký tự hợp lệ là:

  • M đại diện cho thứ Hai
  • T đại diện cho thứ Ba
  • W đại diện cho thứ Tư
  • H đại diện cho thứ Năm
  • F đại diện cho thứ Sáu
  • S đại diện cho thứ Bảy
  • U đại diện cho Chủ Nhật

Mọi tổ hợp ký tự đều hợp lệ.

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries Vùng chứa để liệt kê vị trí của người dùng (quốc gia) đủ điều kiện được hưởng chương trình khuyến mãi. Nếu bạn chỉ định giá trị này, chỉ những người dùng đủ điều kiện và sống tại các quốc gia được liệt kê mới được hưởng mức giá chiết khấu. Nếu không xác định, người dùng đủ điều kiện ở mọi quốc gia đều được hưởng mức giá chiết khấu.
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum Loại thông số kỹ thuật UserCountries.

Các giá trị hợp lệ là includeexclude.

Nếu bạn đặt UserCountries type thành include, thì chương trình khuyến mãi sẽ áp dụng cho người dùng ở các quốc gia được liệt kê.

Nếu UserCountries typeexclude, thì chương trình khuyến mãi sẽ áp dụng cho người dùng ở bên ngoài các quốc gia được liệt kê.

Nếu bạn không đặt UserCountries type, thì thuộc tính này sẽ được coi là include và chương trình khuyến mãi sẽ được áp dụng cho người dùng ở các quốc gia được liệt kê.

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country Xác định quốc gia mà người dùng đủ điều kiện hưởng chương trình khuyến mãi.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string Mã quốc gia theo CLDR, chẳng hạn như DE hoặc FR. Lưu ý: đối với một số quốc gia, mã quốc gia theo CLDR không giống với mã quốc gia gồm 2 ký tự theo ISO. Ngoài ra, mã vùng CLDR không được hỗ trợ.

Ví dụ

Mỗi tài sản chỉ được có tối đa 500 chương trình khuyến mãi. Hãy tham khảo ví dụ "Xoá một chương trình khuyến mãi" để xoá chương trình khuyến mãi khỏi một cơ sở lưu trú.

Thông báo cơ bản

Ví dụ sau đây trình bày một thông báo Promotions cơ bản:

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


Tình trạng quỹ phòng

Ví dụ sau đây trình bày cách tạo chiết khấu nếu số lượng phòng trống còn thừa khi đã gần ngày đến:

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


Xoá một chương trình khuyến mãi

Ví dụ sau đây trình bày cách xoá một chương trình khuyến mãi của cơ sở lưu trú:

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

Xoá tất cả chương trình khuyến mãi

Ví dụ sau đây trình bày cách xoá tất cả các chương trình khuyến mãi của cơ sở lưu trú:

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



Cách thay thế tất cả chương trình khuyến mãi

Ví dụ sau đây trình bày cách kết hợp <HotelPromotions> cho cơ sở lưu trú có một hoặc nhiều chương trình khuyến mãi mới. Khi action="overlay", tất cả các chương trình khuyến mãi được lưu trữ sẽ bị xoá trước khi lưu trữ các chương trình khuyến mãi được chỉ định trong thông báo hiện tại:

<?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 loại xếp chồng khác nhau

Ví dụ sau đây cho thấy trường hợp áp dụng 3 chương trình khuyến mãi khác nhau (base, second, any). Xin lưu ý rằng chương trình khuyến mãi none sẽ không được áp dụng vì các chương trình khuyến mãi khác cung cấp mức chiết khấu tốt hơn. Nếu giá gốc là 100 đô la, thì giá chiết khấu sẽ là 72,9 đô la.

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


Loại xếp chồng không có

Ví dụ sau đây cho thấy trường hợp sử dụng chương trình khuyến mãi none vì việc kết hợp các chương trình khuyến mãi khác sẽ cung cấp mức chiết khấu nhỏ hơn. Nếu giá gốc là 100 đô la Mỹ, thì giá chiết khấu sẽ là 75 đô la Mỹ.

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



Giới hạn thời lượng của khoảng thời gian đặt trước

Ví dụ sau đây cho thấy trường hợp sử dụng phần tử BookingWindow với giới hạn bắt đầu và kết thúc được xác định là loại Thời lượng ISO 8601. Quy định hạn chế về khoảng thời gian đặt phòng này yêu cầu bạn phải đặt phòng muộn nhất vào lúc 18:00 ngày trước ngày đến và muộn nhất vào lúc 12:00 ngày thứ 2 trước ngày đến.

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


Giới hạn ngày giờ đặt phòng

Ví dụ sau đây cho thấy trường hợp sử dụng phần tử BookingDates với các thuộc tính startend dưới dạng loại DateTime. Quy định hạn chế về ngày đặt phòng này yêu cầu bạn phải đặt phòng từ 06:30 ngày 01/07/2020 đến 18:45 ngày 02/07/2020.

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


Phạm vi ngày không có năm

Ví dụ sau đây cho thấy trường hợp phần tử CheckInDates chứa DateRanges có các trường startend không có năm. Trong ví dụ này, chương trình khuyến mãi áp dụng cho các ngày nhận phòng từ ngày 29/12 đến ngày 2/1, bất kể năm nào. Phạm vi ngày không có năm vượt qua ranh giới năm mới là không hợp lệ, vì vậy, DateRange được biểu thị dưới dạng hai phạm vi ngày liền kề.

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



Chiết khấu FreeNights

Ví dụ sau đây giảm giá 50% cho 2 đêm đối với mỗi 4 đêm lưu trú trong phạm vi ngày đặt phòng đã chỉ định. Đối với hành trình 10 đêm, tổng cộng có bốn đêm sẽ được giảm giá 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>

Ví dụ tiếp theo giảm giá 50% cho một đêm đối với mỗi 3 đêm lưu trú trong phạm vi ngày lưu trú được chỉ định. Chỉ những đêm lưu trú trùng lặp mới được tính để đủ điều kiện nhận chiết khấu. Đối với hành trình sau đây có ngày nhận phòng là ngày 1 tháng 1 năm 2022 và ngày trả phòng là ngày 7 tháng 1 năm 2022, số đêm lưu trú đủ điều kiện và chiết khấu được áp dụng như sau.

  • 1/1/2022 (lượt lưu trú)
  • 2/1/2022 (bản giữ nguyên)
  • 2022-01-03
  • 4/1/2022 (có chiết khấu)
  • 5/1/2022 (ở lại)
  • 6/1/2022 (ở lại)
<?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>


Lựa chọn theo thứ hạng

Ví dụ sau đây cung cấp hai khoản chiết khấu, một khoản chiết khấu 20% và một khoản chiết khấu 15%. Trong quá trình đánh giá, hệ thống chỉ áp dụng khoản chiết khấu 15% vì khoản chiết khấu này có thứ hạng thấp hơn.

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

Ví dụ sau đây giảm giá cho một kỳ nghỉ hai đêm bằng cách áp dụng BestDailyDiscount xếp chồng với 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>

Hãy xem xét trường hợp lưu trú hai đêm từ ngày 30 tháng 4 năm 2023 đến ngày 2 tháng 5 năm 2023. Để tính toán, trước tiên, hệ thống sẽ tìm ra tổ hợp chiết khấu hằng ngày tốt nhất mang lại mức chiết khấu sâu nhất.

Đối với đêm đầu tiên, chương trình khuyến mãi "chung" là mức giá đủ điều kiện duy nhất với mức chiết khấu cố định là 20%.

Đối với đêm thứ hai, chương trình khuyến mãi "có thể" sẽ giảm giá nhiều hơn so với mức giảm giá "chung". Vì vậy, khi bạn chọn "có thể", mức chiết khấu cố định sẽ là 50.

Sau đó, đối với thời gian lưu trú, chương trình khuyến mãi "fiesta" sẽ giảm giá còn 5 đô la mỗi đêm, hoặc tổng cộng 10 đô la. Bạn có thể xếp chồng chương trình này với tổ hợp chiết khấu hằng ngày tốt nhất vì "fiesta" có loại xếp chồng được đặt thành any. Nếu bạn đặt giá trị này thành base, thì chỉ áp dụng cách kết hợp chiết khấu hằng ngày tốt nhất hoặc chiết khấu "fiesta". Hãy xem nội dung mô tả về Stacking để biết thêm thông tin.

"Nhìn chung, giá của kỳ nghỉ sẽ được chiết khấu một số tiền cố định là 20 + 50 + 10 = 80.

Phản hồi

Cú pháp

Thông báo PromotionsResponse sử dụng cú pháp sau:

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

Phần tử và thuộc tính

Thông báo PromotionsResponse có các phần tử và thuộc tính sau:

Phần tử / @Thuộc tính Số lần xuất hiện Loại Mô tả
PromotionsResponse 1 Complex element Phần tử gốc cho biết thông báo yêu cầu Chương trình khuyến mãi nhận được đã thành công hay gặp lỗi.
PromotionsResponse / @timestamp 1 DateTime Ngày và giờ tạo thông báo này.
PromotionsResponse / @id 1 string Giá trị nhận dạng duy nhất lấy từ thông báo Chương trình khuyến mãi được liên kết.
PromotionsResponse / @partner 1 string Tài khoản đối tác dùng cho thông báo này.
PromotionsResponse / Success 0..1 Success Cho biết rằng thông báo Chương trình khuyến mãi đã được xử lý thành công mà không có cảnh báo, lỗi hoặc lần xử lý hỏng nào.

Mỗi thông báo có <Success> hoặc <Issues>.

PromotionsResponse / Issues 0..1 Issues Vùng chứa một hoặc nhiều lỗi gặp phải trong quá trình xử lý thông báo Chương trình khuyến mãi.

Mỗi thông báo có <Success> hoặc <Issues>.

PromotionsResponse / Issues / Issue 1..n Issue Thông tin mô tả về cảnh báo, lỗi hoặc lần xử lý hỏng gặp phải trong quá trình xử lý thông báo Chương trình khuyến mãi. Bạn có thể xem thông tin chi tiết về các vấn đề này trong Thông báo lỗi về trạng thái của nguồn cấp dữ liệu.
PromotionsResponse / Issues / Issue / @code 1 integer Giá trị nhận dạng của vấn đề.
PromotionsResponse / Issues / Issue / @status 1 enum

Loại vấn đề gặp phải.

Các giá trị hợp lệ là warning, errorfailure.

Ví dụ

Thành công

Dưới đây là phản hồi cho một thông báo Chương trình khuyến mãi được xử lý thành công.

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

Vấn đề

Dưới đây là phản hồi cho một thông báo Chương trình khuyến mãi không được xử lý do gặp lỗi.

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