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 mà bạn 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 mức giá thấp nhất. Nếu bạn đang tìm một API hỗ trợ các mức điều chỉnh tuỳ ý có thể tăng hoặc giảm giá khi đáp ứng các điều kiện, hãy cân nhắc sử dụng Rate Modifications API (API sửa đổi mức giá) của chúng tôi. Xin lưu ý rằng nếu cả hai API đều có mặt, thì các mức điều chỉnh giá sẽ được áp dụng trướ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ó một phần phụ trợ cung cấp 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ị 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. Các 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, thì 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 một 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 cho một 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 riêng biệ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ữ một 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, đừng thêm bất kỳ phần tử con nào trong <Promotion>. Ngoài ra, bạn 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 xác định thời điểm cần 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 hoặc ngày giờ bắt đầu (sử dụng 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 trù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ì không có thời gian bắt đầu.
  • Nếu start được điền sẵn dưới dạng ngày "YYYY-MM-DD", thì ngày 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 hoặc ngày giờ kết thúc (sử dụng 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 muộn hơn (hoặc trù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ì không có thời gian kết thúc.
  • Nếu end được cung cấp dưới dạng ngày "YYYY-MM-DD", thì ngày 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 xác đị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ệ:

  • 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ị là 0, thì sẽ không có số đêm 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 những lượt đặt phòng ít nhất 30 ngày trước ngày nhận phòng.
  • Thời lượng 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 những 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 chậm nhất là 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 giá trị 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 những lượt đặt phòng tối đa 30 ngày trước ngày nhận phòng.
  • Thời lượng 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 những 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 hạn chế về giá trị tối đa mà bạn có thể đặt cho một mức giá 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 một <Discount> hoặc một <BestDailyDiscount>, vì vậy, để tạo một chương trình khuyến mãi chỉ áp dụng <Ceiling>, một lựa chọn là đặ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 chiết khấu, ngay sau đó là mức giá tối đa. Ví dụ sau đây minh hoạ cách mỗi mức trần đóng góp vào việc tính toán chương trình khuyến mãi tiếp theo trong ngăn xếp.

Ví dụ:

Định giá 1 đêm ở, trong đó AmountBeforeTax là 100 và có 2 chương trình khuyến mãi xếp chồng lên nhau:

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

Sau đâ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 AmountBeforeTax xuống 75, nhưng sau đó, mức trần sẽ giảm xuống 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 mức trần là 90 nên mức trần thứ hai không được áp dụng. Tỷ lệ 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 bao gồm toàn bộ ngăn xếp 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á mỗi đêm sau khi áp dụng chiết khấu.

Nếu bạn cũng chỉ định một phần tử <Floor>, thì bạn phải đặt phần tử 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 thuế và phí khi các khoản này được đưa vào giá mỗi đêm bằng AmountAfterTax, nhưng không áp dụng cho những khoản được chỉ định bằng TaxFeeInfo.

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

Xác định các hạn chế về giá trị tối thiểu mà bạn có thể đặt cho một mức giá 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 một <Discount> hoặc một <BestDailyDiscount>, vì vậy, để tạo một chương trình khuyến mãi chỉ áp dụng <Floor>, một lựa chọn là đặ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ó chiết khấu 100% được áp dụng.

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 chiết khấu, sau đó là giá sàn. Ví dụ sau đây minh hoạ cách mỗi mức sàn đóng góp vào việc tính toán chương trình khuyến mãi tiếp theo trong ngăn xếp.

Ví dụ:

Định giá 1 đêm ở, trong đó AmountBeforeTax là 100 và có 2 chương trình khuyến mãi xếp chồng lên nhau:

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

Sau đâ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 AmountBeforeTax xuống 75, nhưng sau đó mức 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á này cao hơn giá sàn là 60 nên giá sàn thứ hai sẽ không được áp dụng. Tỷ lệ 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 sà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 sàn duy nhất bao gồm toàn bộ ngăn xếp 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á mỗi đêm sau khi áp dụng chiết khấu.

Nếu bạn cũng chỉ định một phần tử <Ceiling>, thì bạn phải đặt phần tử 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 thuế và phí khi các khoản này được đưa vào giá mỗi đêm bằng AmountAfterTax, nhưng không áp dụng cho những khoản đượ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 giá trị 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 chuyển sang năm mới. Thay vào đó, hãy biểu thị phạm vi này dưới dạng 2 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 xác đị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ệ:

  • 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 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 chuyển sang năm mới. Thay vào đó, hãy biểu thị phạm vi này dưới dạng 2 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 xác đị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ệ:

  • 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 xác đị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 chính xác 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 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 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, chiết khấu này luôn được tính bằng tỷ lệ phần trăm của mức 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ự.

Ví dụ:

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

Bạn phải 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 bạn không chỉ đị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 không.

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 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 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 đơn giá mỗi đêm AmountAfterTax, thì giá này sẽ đặt giá cho thời gian lưu trú, bao gồm cả thuế và phí, thành giá trị được chỉ định. Nếu bạn chỉ định AmountBeforeTax, thì dù bạn có chỉ định AmountAfterTax hay không, giá trước thuế cho thời gian 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 nhằm phản ánh một tỷ lệ phần trăm thuế, 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 một 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ì

    promotion rate = 300

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

Bạn phải 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 đơn 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ị được chỉ định. Nếu bạn chỉ định AmountBeforeTax, thì dù bạn có chỉ định AmountAfterTax hay không, giá trị này sẽ đặt giá trước thuế cho mỗi đêm lưu trú 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 nhằm phản ánh một tỷ lệ phần trăm thuế, 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 một 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ì tỷ lệ khuyến mã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ì mức giá khuyến mã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á khuyến mã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 bạn không chỉ định, 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 Cho biết mức chiết khấu cho một số đêm lưu trú khi đáp ứng thời gian lưu trú tối thiểu. Bạn không được dùng các thuộc tính trên phần tử Discount mẹ nếu dùng phần tử này.
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 của số đêm lưu trú.

Ví dụ: đối với một lượt lưu trú 10 đêm, trong đó stay_nights là 4 (và repeats là true), thì có 2 phân đoạn đêm lưu trú: đêm thứ 1 đến đêm thứ 4 và đêm thứ 5 đến đêm thứ 8; đêm thứ 9 và đêm thứ 10 không thuộc phân đoạn đêm lưu trú.

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer Số đêm được chiết khấu trong mỗi phân khúc của số đêm lưu trú.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float Khoản chiết khấu được áp dụng cho những đêm có chiết khấu. Nếu giá trị này là 50, thì mỗi đêm được chọn sẽ giảm 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 đoạn lưu trú sẽ được chiết khấu. Nếu cheapest, thì những đêm rẻ nhất trong phân đoạn đêm lưu trú sẽ được chiết khấu.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

Chiết khấu có thể được áp dụng cho nhiều phân đoạn đêm lưu trú hay không. Nếu false, thì chỉ có phân đoạn đêm lưu trú ở đầu hành trình được chiết khấu. Nếu là true, thì mọi phân đoạn của các đê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, 2 đoạn sẽ được chiết khấu (đêm 1 đến 4 và đêm 5 đến 8); nhưng nếu repeatsfalse, thì chỉ có 1 đoạn được chiết khấu (đêm 1 đến 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 sử dụng lựa chọn có 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ì một chương trình sẽ được chọn và áp dụng tuỳ ý.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

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

Chỉ định một 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 trái ngược với Discount, áp dụng chiết khấu cho toàn bộ thời gian lưu trú.

Mỗi cơ sở lưu trú có thể có một nhóm khuyến mãi duy nhất được coi là "ưu đãi tốt nhất trong 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 chương trình khuyến mãi "hằng ngày tốt nhất" duy nhất đủ điều kiện và mang lại 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 giá trị này thành base hoặc none. Các chiết khấu "mỗi ngày tốt nhất" mang lại mức chiết khấu sâu nhất cho mỗi đêm sẽ được kết hợp và coi là một chiết khấu lưu trú duy nhất (tức là Discount) trong khi vẫn tuân thủ loại chiết khấu kết hợp đã định cấu hình. Chiết khấu kết hợp này được so sánh và có thể kết hợp với các chương trình khuyến mãi <Chiết khấu> đủ điều kiện khác để tìm ra chương trình hoặc tổ hợp chương trình mang lại mức chiết khấu sâu nhất. Tổ hợp BestDailyDiscount hoặc một Discount duy nhất (tuỳ theo tổ hợp nào có 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 cho loại chiết khấu này, nhưng bạn phải đặt application thành overlap

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

Bạn 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à 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

Bạn 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 bạn không chỉ đị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 không.

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

Bạn 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 đơn giá mỗi đêm AmountAfterTax, thì giá trị này sẽ đặt giá cho đêm lưu trú, bao gồm cả thuế và phí, thành giá trị được chỉ định. Nếu bạn chỉ định AmountBeforeTax, thì dù bạn có chỉ định AmountAfterTax hay không, giá trước thuế cho thời gian 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 đáp ứng 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 ý rằng số lượng phòng còn trống được chỉ đị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ó giới hạn 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ó giới hạn tối đa.
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

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

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

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

Mã nhận dạng của quy tắc giá được 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ú mà chương trình khuyến mãi này được áp dụng. 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.

Chương trình khuyến mãi áp dụng cho giá của hành trình. Bạn không thể đặt mức chiết khấu tối đa cho mỗi người lưu trú.

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ì chiết khấu mới được áp dụng.
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer Số người lưu trú do người dùng chỉ định không được lớn hơn giá trị này để được á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 Xác đị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 riêng biệ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 sử dụng là 50.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes Vùng chứa danh sách các loại phòng được hưở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 xác đị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 Xác đị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 sử dụng là 50.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking Xác đị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, trước các chương trình khuyến mãi khác. Trước đây, phương thức 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ể kết hợp với 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 khoảng thời gian lưu trú.

Bạn phải luôn chỉ định thuộc tính này.

  • Nếu <Discount> chỉ định percentageapplication được đặt thành 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 thành 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> xác đị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ả các giá trị application. Xin lưu ý rằng đối với overlap, chỉ những đêm lưu trú trùng nhau mới được xem xét theo yêu cầu 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 giá trị 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 chuyển sang năm mới. Thay vào đó, hãy biểu thị phạm vi này dưới dạng 2 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 những ngày cụ thể 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 chỉ đị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 xác đị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ệ:

  • 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 xác định, 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 quy cách UserCountries.

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

Nếu UserCountries type được đặt là 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 á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 một 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. Xin lưu ý rằng đố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 chữ cái theo tiêu chuẩn 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. 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 một 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ữ 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

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 mang lại mức chiết khấu tốt hơn. Nếu giá gốc là 1.000.000 VND, thì giá chiết khấu sẽ là 729.000 VND.

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


Không có loại kết hợp

Ví dụ sau đây cho thấy một trường hợp sử dụng chương trình khuyến mãi none vì sự kết hợp của các chương trình khuyến mãi khác mang lại mức chiết khấu nhỏ hơn. Nếu giá gốc là 1.000.000 VND, thì giá chiết khấu sẽ là 750.000 VND.

<?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 về thời hạn đặt trước

Ví dụ sau đây cho thấy một trường hợp mà phần tử BookingWindow được dùng với ranh giới bắt đầu và kết thúc được xác định là một loại Thời lượng ISO 8601. Quy định hạn chế về thời hạn đặt phòng này yêu cầu đặt phòng chậm nhất vào 18:00 ngày trước ngày đến và sớm nhất vào 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>


Booking Dates DateTime Bounds

Ví dụ sau đây cho thấy một trường hợp sử dụng phần tử BookingDates với các thuộc tính startend dưới dạng các loại DateTime. Quy định hạn chế về ngày đặt chỗ này yêu cầu bạn đặt chỗ trong khoảng thời gian từ 06:30 ngày 1/7/2020 đến 18:45 ngày 2/7/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 quá 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 trong mỗi 4 đêm lưu trú trong phạm vi ngày đặt phòng được chỉ định. Đối với hành trình 10 đêm, tổng cộng 4 đê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 trong mỗi 3 đêm lưu trú cho các phạm vi ngày lưu trú được chỉ định. Chỉ những đêm lưu trú trùng nhau mới được tính vào đ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à 2022-01-01 và ngày trả phòng là 2022-01-07, số đêm lưu trú đủ điều kiện và chiết khấu được áp dụng như sau.

  • 2022-01-01 (lượt lưu trú)
  • 2022-01-02 (lưu trú)
  • 2022-01-03
  • 2022-01-04 (chiết khấu)
  • 2022-01-05 (lưu trú)
  • 2022-01-06 (stay)
<?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 có thứ hạng

Ví dụ sau đây cung cấp 2 mức chiết khấu, một mức chiết khấu 20% và một mức chiết khấu 15%. Trong quá trình đánh giá, chỉ mức chiết khấu 15% được áp dụng vì mức 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 chiết khấu cho thời gian lưu trú 2 đê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 một đợt lưu trú 2 đê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, 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.

Trong đêm đầu tiên, chương trình khuyến mãi "chung" là số tiền duy nhất đủ điều kiện 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ể" cung cấp mức chiết khấu sâu hơn so với mức chiết khấu "chung". Vì vậy, khi bạn chọn "có thể", số tiền chiết khấu cố định là 50.

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

`Nhìn chung, giá của chuyến lưu trú sẽ được chiết khấu một khoản 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 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ó bất kỳ 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 vấn đề 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 lỗi 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>