프로모션

개요

이 API를 사용하면 가능한 할인을 지정할 수 있습니다. 지정된 프로모션 중 Google은 최저가입니다. 조건이 충족될 때 가격을 올리거나 내릴 수 있는 임의의 요금 조정을 지원하는 API를 찾고 있다면 Rate Modifications API를 사용해 보세요. 두 API가 모두 있는 경우 프로모션입니다.

요청

구문

Promotions 메시지는 다음 문법을 사용합니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
            id="message_ID"
            timestamp="timestamp">
  <HotelPromotions hotel_id="HotelID" action="[overlay]">
    <Promotion id="PromotionID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
      </BookingDates>
      <BookingWindow min="integer_or_duration" max="integer_or_duration"/>
      <Ceiling amount_per_night="float"/>
      <Floor amount_per_night="float"/>
      <CheckinDates>
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </CheckoutDates>
      <!-- Specify only one of percentage, fixed_amount, fixed_amount_per_night,
           fixed_price, or fixed_price_per_night; applied_nights is only used
           with percentage, fixed_amount_per_night, and fixed_price_per_night. -->
      <Discount percentage="float" fixed_amount="float" fixed_amount_per_night="float"
                fixed_price="float" fixed_price_per_night="float"
                applied_nights="integer_1_to_99" rank="integer_1_to_99">
        <!-- FreeNights may not be used in conjunction with attributes on Discount -->
        <FreeNights stay_nights="integer" discount_nights="integer"
                    discount_percentage="float" night_selection="[cheapest|last]"
                    repeats="boolean"/>
      </Discount>
      <!-- Exactly one of Discount or BestDailyDiscount must be specified.
           Specify only one of percentage, fixed_amount, or fixed_price. -->
      <BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <InventoryCount min="integer" max="integer"/>
      <LengthOfStay min="integer" max="integer"/>
      <MembershipRateRule id="RateRuleID"/>
      <MinimumAmount before_discount="integer"/>
      <Occupancy min="integer" max="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <Stacking type="[any|base|none|second]"/>
      <StayDates application="[all|any|overlap]">
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>

요소 및 속성

프로모션 메시지에는 다음과 같은 요소와 속성이 있습니다.

요소 / @Attribute 발생 횟수 유형 설명
Promotions 1 Complex element 프로모션 메시지의 루트 요소입니다.
Promotions / @partner 1 string 이 메시지의 파트너 계정입니다. 이 문자열 값은 '파트너 키' 값이 <ph type="x-smartling-placeholder"></ph> 계정 설정 페이지로 이동합니다.

특정 주제에 대한 피드를 제공하는 백엔드가 있는 경우 여러 계정이 있는 경우 이 값은 ID와(과) 일치해야 합니다. <RequestorID>에 지정된 속성 값 <OTA_HotelRateAmountNotifRQ> 및 동일한에 대한 메시지 <OTA_HotelAvailNotifRQ>개 있습니다.

Promotions / @id 1 string 이 요청 메시지의 고유 식별자입니다. 이 값이 반환됩니다. 을 입력합니다. 허용되는 문자는 a~z, A~Z, 0~9, _입니다. (밑줄) 및 - (대시)가 있습니다.
Promotions / @timestamp 1 DateTime 이 메시지를 작성한 날짜 및 시간입니다.
Promotions / HotelPromotions 0..n HotelPromotions

숙박 시설 프로모션 각 프로모션은 속성

<Stacking>를 사용하지 않는 한 가장 큰 할인이 적용된 프로모션은 다음과 같은 시점에 예약에 적용됩니다. 여러 프로모션을 사용할 수 있습니다.

Promotions / HotelPromotions / @hotel_id 1 string 숙박 시설의 고유 식별자입니다. 이 값은 을(를) 사용하여 지정된 호텔 ID <listing> 요소의 <id> 호텔 목록 피드에 표시됩니다. 호텔 ID는 Hotel Center에도 표시됩니다.
Promotions / HotelPromotions / @action 0..1 enum

지정된 경우 값은 "overlay" 값이 "overlay"인 경우 저장된 프로모션은 지정된 프로모션을 저장하기 전에 삭제됩니다. 를 입력합니다.

지정하지 않으면 현재 메시지는 다음 중 하나입니다.

  • Added (저장된 프로모션 중에 동일한 id)
  • Updated (저장된 프로모션에 동일한 id)
  • Deleted (저장된 프로모션에 동일한 idaction 속성 값 현재 메시지에 지정된 프로모션에 해당하는 값은 "delete")
Promotions / HotelPromotions / Promotion 0..99 Promotion

숙박 시설에 대한 단일 프로모션입니다. action="overlay"<Promotion>를 지정하지 않으면 속성의 모든 프로모션이 삭제됩니다.

99개가 넘는 프로모션을 사용해야 하는 경우 담당 기술계정 관리자 (TAM)에게 문의하세요.

Promotions / HotelPromotions / Promotion / @id 1 string 프로모션의 고유 식별자입니다. 허용되는 문자는 40자(영문 기준)입니다. 허용되는 문자는 a~z, A~Z, 0~9, _ (밑줄), - (대시), . (마침표)를 누릅니다.
Promotions /HotelPromotions / Promotion / @action 0..1 enum

지정된 경우 값은 delete여야 합니다. 그렇지 않은 경우 지정된 저장되지 않은 경우 이 id 프로모션 저장 여부입니다. 그 외의 경우(지정하지 않은 경우) 및 동일한 id가 저장되면 기존 프로모션은 이(가) 업데이트되었습니다.

delete가 지정되면 동일한 id로 저장된 프로모션이 삭제됩니다. delete를 사용할 때는 <Promotion>에 하위 요소를 포함하지 마세요. 또한 delete<HotelPromotions action="overlay"/>와 함께 허용됩니다.

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates 예약이 발생해야 하는 경우를 정의하는 하나 이상의 범위에 대한 컨테이너입니다. 해야 합니다.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange 프로모션을 진행하려면 예약이 발생해야 하는 시기를 지정하는 범위입니다. 적용됩니다.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 Date 또는 DateTime

시작 날짜 또는 날짜/시간 (속성 시간대 기준) 범위에 포함됩니다.

  • start로 지정된 날짜 또는 날짜/시간은 지정된 날짜 또는 날짜/시간 이전 (또는 그와 동일) end입니다.
  • start를 지정하지 않으면 범위가 사실상 됩니다. 제한이 없습니다.
  • start가 날짜 'YYYY-MM-DD'로 채워지면 날짜/시간 'YYYY-MM-DDT00:00:00'으로 해석됩니다.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date 또는 DateTime

종료 날짜 또는 날짜/시간 (속성 시간대 기준) 범위에 포함됩니다.

  • end로 지정된 날짜 또는 날짜/시간은 이후여야 합니다. 지정된 날짜 또는 날짜/시간과 동일하거나 start입니다.
  • end를 지정하지 않으면 범위가 사실상 됩니다. 제한이 없습니다.
  • end가 날짜 'YYYY-MM-DD'로 제공되면 날짜 시간 'YYYY-MM-DDT23:59:59'로 해석됩니다.
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

기간에 허용되는 요일입니다. 지정하지 않으면 기간 내 모든 날짜가 허용됩니다. 각 문자는 일을 지정합니다. 예: 'MTWHF' 지정 선택할 수 있습니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합을 사용할 수 있습니다.

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow 다음 기간을 기준으로 예약이 이루어져야 하는 기간을 지정합니다. 체크인 날짜를 선택합니다 (숙박 시설의 시간대 기준). 예를 들어 예약 기간은 최소 7일에서 180일 이하로 설정할 수 있습니다. 를 클릭하세요.
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration 체크인 전 예약이 이루어지는 최소 시간입니다. 확인해야 합니다 지정되지 않거나 값이 0이면 최솟값이 없습니다.

유효한 값 유형은 다음과 같습니다.

  • 정수: 체크인 전 남은 일수 있습니다. 예를 들어 값이 30이면 프로모션이 체크인 날짜로부터 30일 이상 지난 예약에만 적용됨을 나타냅니다.
  • ISO 8601 기간 (일, 시간, 분): 체크인 날짜 전 일 (및 원하는 경우 시간/분) 대상 예를 들어 값 P30D은 프로모션만 체크인 날짜 최소 30일 전 예약에 적용됩니다. 가 P30DT6H 금액은 18:00 이전에 예약해야 합니다. 도착 전 30일 전입니다.
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration 예약할 때 체크인하기 전까지 남은 최대 일수입니다. 확인해야 합니다 지정되지 않은 경우 또는 그 값 0인 경우 최댓값이 없습니다.

유효한 값 유형은 다음과 같습니다.

  • 정수: 체크인 전 남은 일수 있습니다. 예를 들어 값이 30이면 프로모션이 체크인 날짜로부터 최대 30일 전까지의 예약에만 적용됨을 나타냅니다.
  • ISO 8601 기간(일, 시간, 분): 체크인 날짜까지의 일수(선택적으로 시간/분)입니다. 대상 예를 들어 값 P30D은 프로모션만 체크인 날짜로부터 최대 30일 전인 예약에 적용됩니다. 가 금액(P30DT6H)을 이용하려면 18:00 이후에 예약해야 합니다. 도착 전 30일 전입니다.
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

요율을 설정할 수 있는 최댓값에 대한 제한을 정의합니다. 프로모션 적용 후

프로모션에서는 항상 <Discount> 또는 <BestDailyDiscount>이므로 <Ceiling>만 적용합니다. 한 가지 옵션은 <Discount>percentage 0입니다.

스태킹이 구성된 경우 1회 숙박에 <Ceiling>의 비용이 적용될 수 있습니다. 각 프로모션 할인을 적용하고 그 직후에 상한가를 적용합니다. 이 다음 예는 각 천장이 다음 천장 시간에 어떻게 기여하는지 보여줍니다. 프로모션 계산을 지원하지 않습니다.

예:

AmountBeforeTax의 1박 가격 100이며 두 개의 프로모션이 누적됩니다.

  1. 스태킹 유형이 base인 프로모션, a 25의 fixed_amount, 천장 amount_per_night/60
  2. 누적 유형이 second이고 fixed_amount이 25이고 상한 amount_per_night이 90인 프로모션

계산 순서는 다음과 같습니다.

  1. base 프로모션이 먼저 적용되며 할인이 적용됩니다. AmountBeforeTax를 75로 내리고 천장이 낮아집니다. 60으로 설정합니다.
  2. second 프로모션은 AmountBeforeTax를 60에서 35로 변경합니다. 천장 아래 있음 두 번째 천장이 적용되지 않습니다. 최종 요율은 35입니다.

60이 전체 상한선이 더 엄격하다는 사실은 자체 프로모션에만 유효하며 전체 프로모션 스택에 걸친 천장

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

다음 날짜 이후에 1박 요금을 설정할 수 있는 최대 금액입니다. 할인이 적용됩니다.

<Floor> 요소도 지정된 경우 는 amount_per_night 속성 <Floor>

amount_per_night은(는) 다음의 경우 세금 및 수수료에 적용됩니다. AmountAfterTax를 사용하는 1박 요금에 포함되지만 TaxFeeInfo를 사용하여 지정된 정보가 아닙니다.

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

요율을 설정할 수 있는 최솟값에 대한 제한을 정의합니다. 프로모션 적용 후

프로모션은 항상 <Discount> 또는 <BestDailyDiscount>를 지정해야 하므로 <Floor>만 적용되는 프로모션을 만들려면 percentage0<Discount>를 설정하는 방법이 있습니다.

<Floor> 로직이 다음 항목에 계속 적용됨 <FreeNights> 할인(무료 숙박에 100% 할인이 적용되었습니다.

중복 적용이 구성된 경우 <Floor>가 있는 여러 프로모션이 단일 숙박에 적용될 수 있습니다. 각 프로모션은 할인을 적용한 후 즉시 가격 하한선을 적용합니다. 이 다음 예는 각 층이 다음 층에 어떻게 기여하는지 보여줍니다. 프로모션 계산을 지원하지 않습니다.

예:

AmountBeforeTax의 1박 가격 100이며 두 개의 프로모션이 누적됩니다.

  1. 스태킹 유형이 base인 프로모션, a fixed_amount/25 층 amount_per_night/90
  2. 스태킹 유형이 second인 프로모션 fixed_amount/25 층 amount_per_night/60

계산 순서는 다음과 같습니다.

  1. base 프로모션이 먼저 적용되며 할인이 적용됩니다. AmountBeforeTax를 75까지 올렸지만, 바닥은 온도를 올립니다. 최대 90입니다.
  2. second 프로모션은 AmountBeforeTax를 90에서 65로 변경합니다. 60이라는 최솟값보다 높으므로 두 번째 최솟값은 적용되지 않습니다. 최종 요율은 65입니다.

90이 전체적으로 더 엄격한 하한선이라는 사실은 자체 프로모션에만 유효하며 하한선은 전체 프로모션 스택에 걸쳐 있습니다.

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

할인이 적용된 후 1박 요금을 설정할 수 있는 최소 금액입니다.

<Ceiling> 요소도 지정된 경우 는 amount_per_night 속성 <Ceiling>

amount_per_nightAmountAfterTax를 사용하여 숙박 요금에 포함된 세금 및 수수료에 적용되지만 TaxFeeInfo를 사용하여 지정된 세금 및 수수료에는 적용되지 않습니다.

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates 체크인해야 하는 시간을 정의하는 하나 이상의 기간에 대한 컨테이너입니다. 프로모션이 적용됩니다.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

프로모션이 적용되기 위해 체크인이 이루어져야 하는 기간을 지정하는 날짜 범위입니다. 하나 이상의 프로모션을 삭제하는 경우에는 이 요소가 필요하지 않습니다.

YearlessDate 형식도 지원됩니다.

  • start 또는 end 중 하나가 연도 없는 날짜인 경우 둘 다 연도 없는 날짜로 채워야 합니다.
  • 연도가 없는 기간은 새해를 둘러싸지 않아야 합니다. 대신 인접한 두 개의 기간으로 나타냅니다. 예를 들어 {"12-29", "01-05"}{"12-29", "12-31"}로 나타낼 수 있고 {"01-01", "01-05"}입니다.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate (숙박 시설의 시간대를 기준으로 함) 시작일 확인할 수 있습니다 이 날짜는 end 날짜입니다. start를 지정하지 않으면 날짜 기간은 시작일 측면에서 사실상 무제한입니다.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0..1 Date or YearlessDate 기간을 설정할 수 있습니다. 이 날짜는 start과(와) 같거나 그 이후여야 합니다. 있습니다. end를 지정하지 않으면 날짜 종료일은 사실상 무제한입니다.
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week 0..1 string

기간에 허용되는 요일입니다. 그렇지 않은 경우 지정된 경우 기간 내의 모든 요일이 허용됩니다. 각 문자는 일을 지정합니다. 예: 'MTWHF' 지정 선택할 수 있습니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합을 사용할 수 있습니다.

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates 체크아웃 시점을 정의하는 하나 이상의 기간에 대한 컨테이너입니다. 가 발생해야 합니다.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

프로모션을 위해 체크아웃해야 하는 시간을 지정하는 기간 적용됩니다. 하나 이상의 프로모션을 삭제하는 경우에는 이 요소가 필요하지 않습니다.

YearlessDate 형식도 지원됩니다.

  • start 또는 end 중 하나가 연년인 경우 둘 다 연도가 없는 날짜로 채워져야 합니다.
  • 연도가 없는 기간은 새해를 둘러싸지 않아야 합니다. 대신 인접한 두 개의 기간으로 나타냅니다. 예를 들어 {"12-29", "01-05"}는 다음과 같이 표현할 수 있습니다. {"12-29", "12-31"}{"01-01", "01-05"}입니다.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate (숙박 시설의 시간대를 기준으로 함) 시작일 확인할 수 있습니다 이 날짜는 end 날짜입니다. start를 지정하지 않으면 날짜 기간은 시작일 측면에서 사실상 무제한입니다.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate 기간을 설정할 수 있습니다. 이 날짜는 start과(와) 같거나 그 이후여야 합니다. 있습니다. end를 지정하지 않으면 날짜 종료일은 사실상 무제한입니다.
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week 0..1 string

기간에 허용되는 요일입니다. 그렇지 않은 경우 지정된 경우 기간 내의 모든 요일이 허용됩니다. 각 문자는 일을 지정합니다. 예: 'MTWHF' 지정 선택할 수 있습니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합을 사용할 수 있습니다.

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices 프로모션 대상 사용자 기기를 나열하는 컨테이너입니다. 지정하면 나열된 기기의 대상 사용자만 할인 요금이 제공됩니다 지정하지 않으면 할인된 가격으로 제공됩니다.
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device 프로모션을 이용할 수 있는 사용자 기기 유형 중 하나를 정의합니다.
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum 기기 유형 값은 desktop, tablet 또는 mobile이어야 합니다.
Promotions / HotelPromotions / Promotion / Discount 1 Discount

Discount 중 정확히 하나 또는 BestDailyDiscount을(를) 지정해야 합니다.

이 프로모션에 적용할 할인을 지정합니다.

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

percentage 중 정확히 하나, fixed_amount, fixed_amount_per_night fixed_price 또는 fixed_price_per_night는 필요합니다.

할인율을 지정하는 0~100 사이의 십진수 값입니다. AmountAfterTax (또는 AmountAfterTax이 다음 조건을 충족하지 않는 경우 AmountBeforeTax 지정합니다.

예:

  • AmountAfterTax가 100이고 percentage인 경우 20이면

    프로모션 비율 = AmountAfterTax * (1 - 비율 할인)

    80.00 = 100 * (1 - 0.2)

  • AmountBeforeTax가 100인 경우 percentage는 20이고 TaxFeeInfo는 세금을 10으로 지정합니다. +

    프로모션 비율 = AmountBeforeTax * (1 - 비율 할인) + 세금

    90.00 = 100 * (1 - 0.2) + 10

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

percentage 중 정확히 하나, fixed_amount, fixed_amount_per_night fixed_price 또는 fixed_price_per_night는 필요합니다.

합계에서 차감할 고정 금액입니다. AmountAfterTax박 요금 (또는 다음 경우 AmountBeforeTax 1박 요금 합계 AmountAfterTax가 지정되지 않음). 가정은 1박 요금과 동일한 통화로 표시됩니다. 이 값이 1박 요금을 합하면 결과 값은 0이 됩니다.

예:

  • AmountBeforeTax가 90, AmountAfterTax가 100, fixed_amount가 20인 1박 숙박 요금을 책정하는 경우

    프로모션 요율 = AmountAfterTax - 고정 할인

    80.00 = 100 - 20

  • AmountBeforeTax이 100이고 fixed_amount이 20이며 TaxFeeInfo가 8%의 세금을 지정하는 1박 숙박 요금을 책정하는 경우

    프로모션 요금 = (AmountBeforeTax - 고정) 할인) * (1 + 세금 백분율)

    86.40 = (100 - 20) * 1.08

  • 1박 숙박 요금을 책정한다면 AmountBeforeTax는 50, fixed_amount는 60이고 TaxFeeInfo는 세금을 10으로 지정하면

    프로모션 요금 = (AmountBeforeTax - 고정) 할인) * 세금

    10.00 = 0 + 10

  • 3박 숙박 요금을 지불하는 경우 AmountAfterTax 값은 100, 110, 120입니다. 및 fixed_amount가 150이면

    프로모션 요금 = sum(AmountAfterTax) - (고정) 할인)

    180.00 = (100 + 110 + 120) - 150

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

percentage 중 정확히 하나, fixed_amount, fixed_amount_per_night fixed_price 또는 fixed_price_per_night는 필요합니다.

AmountAfterTax에 적용되는 고정 할인 1박 요금 (또는 applied_nights가 지정되면 가장 저렴한 N)입니다. 만약 AmountAfterTax이(가) 지정되지 않아 다음에 적용됩니다. AmountBeforeTax입니다. 가정은 1박 요금과 동일한 통화로 표시됩니다. 만약 fixed_amount_per_night이(가) 다음보다 큽니다. 그 1박 요금은 0으로 낮춰집니다. 할인의 경우 1박 요금이 음수가 될 수는 없습니다.

예:

  • 3박 숙박 요금을 지불하는 경우 AmountAfterTax 값은 100, 110, 120입니다. 및 fixed_amount_per_night가 10이면

    프로모션 비율 = sum(AmountBeforeTax - 고정 금액 할인)

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

  • 3박 숙박 요금을 지불하는 경우 AmountAfterTax 값은 10, 50, 100입니다. 및 fixed_amount_per_night가 20이면

    프로모션 비율 = sum(AmountAfterTax - 고정 금액 할인)

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

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

percentage, fixed_amount, fixed_amount_per_night, fixed_price 또는 fixed_price_per_night 중 하나만 필요합니다.

1박 요금을 AmountAfterTax개로 지정하면 은 세금 및 수수료를 포함한 숙박 요금을 지정합니다. AmountBeforeTax가 지정되면 AmountAfterTax가 지정되었는지 여부와 관계없이 숙박에 대한 세전 가격이 지정된 값으로 설정됩니다. 가정은 1박 요금과 동일한 통화로 표시됩니다.

AmountAfterTax가 고정 가격을 설정한 다음 AmountBeforeTax으로 인해 부정확한 세금 및 수수료가 부과될 수 있습니다. 일반적으로 TaxFeeInfo를 사용하여 숙박 시설의 세금 및 수수료를 지정하는 것이 좋습니다.

예:

  • 1박 숙박 요금을 책정한다면 AmountBeforeTax는 90입니다. AmountAfterTax는 100이고 fixed_price입니다. 이 값이 80이면 프로모션 비율은 80입니다.
  • 1박 숙박 요금을 책정한다면 AmountBeforeTax는 100, fixed_amount입니다. 80이고 TaxFeeInfo는 8%의 세금을 지정하면

    프로모션 요율 = 고정 가격 * (1 + 세금 비율)

    86.40 = 80 * 1.08

  • AmountAfterTax 값이 100, 110, 120이고 fixed_amount이 300인 3박 숙박에 가격을 책정하는 경우

    프로모션 비율 = 300

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

percentage 중 정확히 하나, fixed_amount, fixed_amount_per_night fixed_price 또는 fixed_price_per_night는 필요합니다.

AmountAfterTax 1박 요금이 지정되면 세금 및 수수료를 포함한 숙박 일별 가격이 지정된 값으로 설정됩니다. AmountBeforeTax을 지정하면 AmountAfterTax가 지정되었는지 여부와 관계없이 지정된 가격까지 숙박 일수에 대한 세전 가격입니다. 그것은 1박 요금과 동일한 통화로 간주됩니다.

AmountAfterTax가 고정 가격을 설정한 다음 AmountBeforeTax으로 인해 부정확한 세금 및 수수료가 부과될 수 있습니다. 일반적으로 TaxFeeInfo를 사용하는 것이 좋습니다. 를 사용하여 숙박 시설의 세금 및 수수료를 지정합니다.

applied_nights이 지정되면 새 가격은 다음과 같습니다. 최저가 N박에 적용됩니다.

예:

  • AmountBeforeTax 값이 90, 90이고, AmountAfterTax 값이 100, 100이며, fixed_price가 80인 2박 숙박 요금을 책정하는 경우 프로모션 요금은 80 + 80 = 160입니다.
  • 2박 숙박 요금을 제시하는 경우 AmountBeforeTax는 100, 100입니다. fixed_amount 세금이 80이고 TaxFeeInfo가 8%로 지정된 경우 프로모션 요율이 적용됩니다. = (80 + 80) * 1.08 = 172.8입니다.
  • AmountAfterTax 값이 100, 110, 120이고 fixed_amount이 110인 3박 숙박에 가격을 책정하는 경우 프로모션 요율은 110 * 3 = 330입니다.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

이것은 percentage 또는 fixed_amount_per_night

할인이 적용되는 숙박 일수로, 다음으로 시작합니다. 가장 저렴합니다 1~99 사이의 정수여야 합니다. 지정하지 않으면 모든 숙박에 할인이 적용됩니다.

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights 최소 숙박 일수인 경우 특정 숙박일의 할인을 지정합니다. 사용할 수 있습니다. 상위 Discount 요소의 속성 이 요소가 사용되는 경우 허용되지 않습니다.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

할인을 적용하기 위해 필요한 숙박 일수입니다. 각 할인은 별도의 숙박 일수 세그먼트에 적용됩니다.

예를 들어 stay_nights이(가) 다음에 해당하는 10박 숙박의 경우 4 (그리고 repeats이 true), 2박 숙박 세그먼트: 1일~4일 및 5~8일 밤 9일 및 10일 밤은 숙박 기간에 포함되지 않습니다.

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer 숙박 일수의 각 세그먼트 내에서 할인된 숙박 일수입니다.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float 할인 숙박 일수에 적용되는 할인입니다. 이 값이 50인 경우 선택한 1박당 50% 할인됩니다.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string cheapest 또는 last여야 합니다. 만약 last, 이후 숙박 기간 종료 시 숙박 일수 1박 요금이 할인됩니다. cheapest인 경우 최저가 숙박 일수 세그먼트 내 숙박 일수는 할인됩니다.
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

2박 이상 숙박에 할인이 적용되는지 여부입니다. 세그먼트. false인 경우 숙박 일수 세그먼트만 여행 일정 시작 시 할인됩니다. true인 경우 숙박 일수의 모든 세그먼트에 할인됩니다.

예를 들어 stay_nights가 4이고 일정이 10인 경우 밤, repeatstrue이면 2 세그먼트는 할인됩니다 (1~4박, 5~8박). 그러나 repeats이(가) false, 다음 중 1개 세그먼트만 할인됩니다 (1~4박).

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer 이 프로모션에 순위를 할당하고 순위가 지정된 선택에 선택합니다. 순위가 가장 낮은 프로모션만 적용되도록 선택됩니다. 값 1 이상 99 이하여야 합니다. 여러 프로모션이 동일한 순위를 공유하는 경우 하나가 임의로 선택되어 적용됩니다.
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

Discount 중 정확히 하나 또는 BestDailyDiscount을(를) 지정해야 합니다.

다음을 지정합니다. 숙박 1박에 적용될 수 있는 일일 할인. 이 내용은 할인을 적용하는 Discount와는 대조됩니다. 있습니다.

숙박 시설마다 '매일 최고 인기'로 간주됩니다. 즉, 숙박 기간 중 매일 숙박할 때마다 싱글 '베스트 일일' 가장 높은 실적을 기록하는 프로모션 할인이 선택되어 적용될 수 있습니다.

Stacking는 다음으로 지정할 수 있습니다. BestDailyDiscount입니다. 이 속성은 base 또는 none '최고의 일일' 할인 각 숙박 일수에 대한 가장 큰 할인을 산출하는 경우 1회 숙박 할인 (예: Discount)이 적용되는 동안 구성된 스태킹 유형입니다. 이 통합 할인은 요건을 충족하는 다른 <Discount> 이러한 프로모션으로 전환 가능성이 가장 높은 할인입니다. BestDailyDiscount 또는 단일 Discount 중 낮은 가격을 산출하는 것이 base 스태킹 유형에 선택되어 적용되었습니다.

StayDates는 이 유형의 할인으로 지정할 수 있습니다. 하지만 application는 다음과 같이 설정해야 합니다. <ph type="x-smartling-placeholder">overlap</ph>

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

percentage 중 정확히 하나, fixed_amount 또는 fixed_price는 필수 항목입니다.

할인율을 지정하는 0~100 사이의 십진수 값입니다. AmountAfterTax(또는 AmountAfterTax가 지정되지 않은 경우 AmountBeforeTax)에 적용됩니다.

예:

  • 1박 AmountAfterTax가 100이고 percentage가 20이면

    프로모션 비율 = AmountAfterTax * (1 - 비율 할인)

    80.00 = 100 * (1 - 0.2)

  • 숙박 시설 AmountBeforeTax가 100인 경우 percentage는 20이고 TaxFeeInfo는 세금을 10으로 지정합니다. +

    프로모션 비율 = AmountBeforeTax * (1 - 비율 할인) + 세금

    90.00 = 100 * (1 - 0.2) + 10

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

percentage 중 정확히 하나, fixed_amount 또는 fixed_price는 필수 항목입니다.

단일 AmountAfterTax 1박 요금(또는 AmountAfterTax가 지정되지 않은 경우 AmountBeforeTax 1박 요금)에서 공제할 고정 금액입니다. 가정은 1박 요금과 동일한 통화로 표시됩니다. 이 값이 1박 요금을 합하면 결과 값은 0이 됩니다.

예:

  • 하룻밤의 AmountBeforeTax가 90이면 AmountAfterTax는 100이고 fixed_amount입니다. 20이면

    프로모션 요율 = AmountAfterTax - 고정 할인

    80.00 = 100~20

  • 하룻밤의 AmountBeforeTax가 100이면 fixed_amount는 20이며 TaxFeeInfo는 8% 이후

    프로모션 요금 = (AmountBeforeTax - 고정) 할인) * (1 + 세금 백분율)

    86.40 = (100 - 20) * 1.08

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

percentage, fixed_amount 또는 fixed_price 중 하나만 필요합니다.

1박 요금을 AmountAfterTax개로 지정하면 은 세금 및 수수료를 포함한 숙박 요금을 지정합니다. AmountBeforeTax을 지정하면 AmountAfterTax가 지정되었는지 여부와 관계없이 지정된 값까지 숙박에 대한 세전 가격입니다. 가정은 1박 요금과 동일한 통화로 표시됩니다.

예:

  • 하룻밤의 AmountBeforeTax가 90이면 AmountAfterTax는 100이고 fixed_price입니다. 이 값이 80이면 프로모션 비율은 80입니다.
  • 하룻밤의 AmountBeforeTax가 100이면 fixed_amount는 80이며 TaxFeeInfo는 8% 이후

    프로모션 가격 = 고정 가격 * (1 + 세율)

    86.40 = 80 * 1.08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount 다음에서 사용할 수 있어야 하는 방 수에 대한 제한을 정의합니다. 이 프로모션을 적용할 수 있습니다. 할인은 제약 조건을 충족하는 밤일 수 있습니다. 함께 사용할 수 없는 항목: fixed_amount 할인됩니다. 사용 가능한 객실 수는 OTA_HotelInvCountNotifRQ(InvCount) 또는 OTA_HotelAvailNotifRQ(BookingLimit)로 지정됩니다.
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer 프로모션에 제공되어야 하는 최소 객실 수 1박 요금에 적용됩니다. 지정하지 않으면 최소
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer 프로모션에 사용할 수 있어야 하는 최대 객실 수 1박 요금에 적용됩니다. 지정하지 않으면 있습니다.
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay 이 프로모션이 적용될 수 있는 숙박 기간 한도를 정의합니다. 적용됩니다. 숙박 기간이 최솟값과 최댓값을 벗어나면 프로모션이 적용되지 않습니다.
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer 프로모션에 허용되는 최소 숙박 일수입니다. 적용됩니다. 지정하지 않으면 최솟값은 없습니다.
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer 프로모션에서 허용되는 최대 숙박 일수입니다. 적용됩니다. 지정되지 않으면 최댓값이 없습니다.
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

특정 UI를 트리거하는 멤버십 요금 규칙의 컨테이너 관련 할인의 전체 처리입니다.

이 요소는 다음 경우에만 지정되어야 합니다. <Discount>도 지정됩니다.

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

멤버십 프로그램과 연결된 요금 규칙의 ID입니다.

Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount 일일 객실 요금의 최소 합계를 지정합니다( AmountBeforeTax 또는 AmountAfterTax)이 있어야 합니다. 초과해서는 안 됩니다.
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 integer 프로모션을 적용하려면 초과해야 하는 값입니다.
Promotions / HotelPromotions / Promotion / Occupancy 0..1 Occupancy 이 프로모션의 숙박 인원에 대한 제한사항을 정의합니다. 적용됩니다. 숙박 인원이 다음 지역을 벗어나면 프로모션이 적용되지 않습니다. 최소 및 최대 한도
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer 사용자가 지정한 숙박 인원이 이 값 이상이어야 합니다. 적용할 할인입니다.
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer 할인을 적용하려면 사용자가 지정한 숙박 인원이 이 값 이하여야 합니다.
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans 프로모션이 적용되는 요금제 목록의 컨테이너입니다. <RatePlans>을 지정하지 않으면 프로모션이 는 모든 요금제에 적용됩니다.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan 1..n RatePlan 요금제를 지정합니다. 요금제는 거래에 정의된 패키지, 요금, 예약 가능 여부 (숙박 시설 데이터), OTA_HotelRateAmountNotifRQ, OTA_HotelAvailNotifRQ 패키지 ID로 식별됩니다.
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 string 요금제의 고유 식별자입니다. 이 값은 거래(숙박 시설 데이터) 메시지의 <PackageData>에 있는 PackageID 값과 <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 메시지 모두의 <StatusApplicationControl>에 있는 RatePlanCode 속성에 매핑됩니다. 허용되는 최대 문자 수는 50자(영문 기준)입니다.
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes 프로모션이 적용되는 객실 유형 목록의 컨테이너입니다. 프로모션은 각 <RoomType>에 적용됩니다. 지정합니다. <RoomTypes>를 지정하지 않으면 모든 객실에 적용됩니다.
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType 방 유형을 지정합니다. 객실 유형은 다음의 <RoomData> 요소 트랜잭션 (숙박 시설 데이터) 메시지에 포함되어 있으며 <RoomID> 값을 사용하여 참조됩니다. ( <RoomID> 값은 OTA_HotelRateAmountNotifRQ의 InvTypeCode 속성 messages.)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string 인벤토리의 고유 식별자입니다 (방 유형). 이 값은 트랜잭션 (숙박 시설 데이터) 메시지에서 <RoomID>로 전송됩니다. 허용되는 최대 문자 수는 50자(영문 기준)입니다.
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking 프로모션 결합 방법을 지정합니다. 지정하지 않으면 'type'이 base인 것으로 가정됩니다.
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

다음에 따라 여러 프로모션을 단일 요율에 적용할 수 있습니다. 이 설정을 적용할 수 있습니다.

  • any: 다른 프로모션(none 제외)과 함께 사용할 수 있지만 프로모션이 적용되는 순서는 보장되지 않습니다.
  • base: 자격 요건을 충족하는 가장 적합한 base 프로모션은 다른 프로모션보다 먼저 선택하여 적용할 수 있습니다. 이전 가격 이전 이름은 base_only입니다.
  • second: 자격 요건을 충족하는 가장 적합한 second 프로모션이 base 프로모션(해당하는 경우) 후 any 프로모션 전에 선택되어 적용됩니다.
  • none: 다른 프로모션과 결합할 수 없습니다.

허용되는 조합 중에서 가장 큰 할인이 요율에 적용됩니다.

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates 하나 이상의 기간에 대한 컨테이너입니다. 프로모션이 적용됩니다(예: 시즌 할인 제공).
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

프로모션을 적용하는 방법을 설명합니다.

유효한 값은 다음과 같습니다.

  • all: 각 밤에 프로모션을 적용합니다. 숙박 일정의 모든 날짜가 겹치는 경우 숙박 일정 숙박 날짜도 함께 표시됩니다
  • any: 일정에 있는 날짜가 숙박 기간입니다.
  • overlap: 숙박 기간과 겹치는 숙박 일정의 밤에만 프로모션이 적용됩니다.

이 속성은 항상 지정해야 합니다.

  • <Discount>percentage를 지정하는 경우 그리고 applicationall 또는 any이면 전체 숙박이 가능합니다.
  • <Discount>percentage을 지정하고 applicationoverlap로 설정된 경우 할인은 중복된 밤의 1박 요금에 대한 비율로 적용됩니다.
  • <Discount>(fixed_amount 지정) overlap로 설정된 application는 잘못된 조합입니다.
  • <FreeNights>application 값입니다. overlap의 경우 겹치는 숙박 일수만 할인 요건에 반영됩니다.
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

프로모션을 적용할 날짜를 지정하는 기간입니다.

YearlessDate 형식도 지원됩니다.

  • start 또는 end 중 하나가 연도 없는 날짜인 경우 둘 다 연도 없는 날짜로 채워야 합니다.
  • 연도가 없는 기간은 새해를 둘러싸지 않아야 합니다. 대신 인접한 두 개의 기간으로 나타냅니다. 예를 들어 {"12-29", "01-05"}는 다음과 같이 표현할 수 있습니다. {"12-29", "12-31"}{"01-01", "01-05"}입니다.

StayDates 범위를 다음과 같이 설정하려면 특정 요일에만 프로모션을 허용하려면 start 날짜를 end 없이 현재 날짜로 설정하므로 프로모션 만료일이 없다는 것을 의미합니다.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate (숙박 시설의 시간대를 기준으로 함) 시작일 확인할 수 있습니다 이 날짜는 end 날짜입니다. start를 지정하지 않으면 날짜 기간은 시작일 측면에서 사실상 무제한입니다.

다음과 같은 경우 start 값을 지정해야 합니다. end 값이 제공되지 않았습니다.

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate 기간을 설정할 수 있습니다. 이 날짜는 start 날짜입니다. end가 지정되지 않으면 날짜 범위는 start 날짜 이후로 사실상 무제한입니다.

다음과 같은 경우 end 값을 지정해야 합니다. start 값이 제공되지 않았습니다.

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

기간에 허용되는 요일입니다. 그렇지 않은 경우 지정된 경우 기간 내의 모든 요일이 허용됩니다. 각 문자는 일을 지정합니다. 예: 'MTWHF' 지정 선택할 수 있습니다.

유효한 문자는 다음과 같습니다.

  • 월요일의 경우 M
  • 화요일의 경우 T
  • 수요일의 경우 W
  • 목요일의 경우 H
  • 금요일의 경우 F
  • 토요일의 경우 S
  • 일요일의 경우 U

모든 문자 조합을 사용할 수 있습니다.

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries 프로모션 대상 사용자 위치(국가)를 나열하는 컨테이너입니다. 지정하면 목록에 있는 자격이 있는 사용자만 할인율이 제공되는 국가입니다. 지정하지 않으면 모든 국가의 사용자에게 할인된 요금이 제공됩니다.
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum 사용자 국가 사양의 유형입니다.

유효한 값은 includeexclude입니다.

사용자 국가 type가 다음과 같이 설정된 경우 include을(를) 이용하는 경우 이 프로모션은 없습니다.

사용자 국가 typeexclude인 경우 목록에 없는 국가의 사용자에게 프로모션이 적용됩니다. 국가.

사용자 국가 type가 설정되지 않은 경우 다음과 같이 처리됩니다. include의 사용자에게 프로모션이 적용됨 목록에 있는 국가를 선택합니다.

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country 사용자가 프로모션을 이용할 수 있는 국가를 정의합니다.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string CLDR 국가 코드가 포함된 (예: DE, FR) 일부의 경우 CLDR 국가 코드는 2자리 ISO와 다릅니다. 국가 코드. 또한 CLDR 리전 코드도 지원되지 않습니다.

프로모션은 숙박 시설당 500개로 제한됩니다. 숙박 시설에서 프로모션을 삭제하려면 '프로모션 1개 삭제' 예시를 참고하세요.

기본 메시지

다음 예는 기본 Promotions 메시지를 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <Discount percentage="20" applied_nights="2"/>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <Stacking type="base"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>


인벤토리 상태

다음 예시는 초과분이 있는 경우 할인을 만드는 방법을 보여줍니다. 도착 날짜에 근접한 인벤토리:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow max="7"/>
      <Discount percentage="10"/>
      <InventoryCount min="3"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


프로모션 1개 삭제하기

다음 예시에서는 숙박 시설의 프로모션 하나를 삭제하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1" action="delete"/>
  </HotelPromotions>
</Promotions>

모든 프로모션 삭제

다음 예시는 숙박 시설의 모든 프로모션을 삭제하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>



모든 프로모션 오버레이

다음 예는 숙박 시설의 <HotelPromotions>를 하나 이상의 새 프로모션으로 오버레이하는 방법을 보여줍니다. action="overlay"인 경우 모두 저장됨 프로모션은 정의된 모든 프로모션을 삭제하기 전에 삭제되므로 현재 메시지:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <Discount percentage="10"/>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <Stacking type="base"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

3가지 다양한 스태킹 유형

다음 예는 세 가지 서로 다른 프로모션이 적용됨 (base, second, any) none 프로모션은 다른 프로모션에서 더 나은 할인을 제공하기 때문에 적용됩니다. 원본 가격은 $100이고 할인된 가격은 $72.90입니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="second"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="4">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


스택 유형 없음

다음 예는 다른 프로모션 조합이 더 적은 할인을 제공하므로 none 프로모션이 사용되는 경우를 보여줍니다. 만약 원래 가격은 100달러였으나 할인된 가격은 75달러가 됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



예약 기간 제한

다음 예는 BookingWindow가 요소는 시작 및 종료 경계가 ISO 8601 기간으로 정의된 상태로 사용됩니다. 있습니다. 이 예약 기간 제한으로, 18:00 이전에 예약해야 합니다. 도착 전날 및 도착 전 2일 차 12시 이후 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow min="P1DT6H" max="P2DT12H"/>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


예약 날짜 날짜/시간 경계

다음 예는 BookingDates가 요소는 다음과 같이 startend 속성과 함께 사용됩니다. DateTime 유형. 예약이 필요한 예약 날짜 제한입니다. 2020년 7월 1일 06시 30분부터 2020년 7월 2일 18시 45분 사이입니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
      </BookingDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


연도가 지정되지 않은 기간

다음 예는 CheckInDates가 요소에 startDateRanges 연도가 없는 end 필드. 이 예시에서는 프로모션이 연도와 관계없이 12월 29일부터 1월 2일 사이의 체크인 날짜까지 적용됩니다. 연중 따라서 새 연도 경계를 넘는 기간이 유효하지 않으므로 DateRange는 인접한 두 개의 기간으로 표시됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <CheckInDates>
         <DateRange start="12-29" end="12-31"/>
         <DateRange start="01-01" end="01-02"/>
      </CheckInDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



FreeNights 할인

다음 예시는 숙박 일수 4박당 2박에 50% 할인 지정된 예약 날짜 범위입니다. 10박 숙박 일정으로, 총 4박은 50% 할인됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
        <DateRange start="2022-01-01" end="2022-05-31"/>
      </BookingDates>
      <Discount>
        <FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>

다음 예에서는 지정된 숙박 기간 동안 3박 숙박 시 1박에 대해 50% 할인을 제공합니다. 겹치는 숙박 일수만 할인 요건 충족에 반영됩니다. 체크인이 포함된 다음 여행 일정 2022년 1월 1일 체크인, 2022년 1월 7일 체크아웃, 숙박 및 다음과 같이 할인이 적용됩니다.

  • 2022-01-01 (숙박)
  • 2022-01-02(유지)
  • 2022-01-03
  • 2022-01-04 (할인)
  • 2022-01-05 (숙박)
  • 2022-01-06 (숙박)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <StayDates application="overlap">
        <DateRange start="2022-01-01" end="2022-01-02"/>
        <DateRange start="2022-01-04" end="2022-01-06"/>
      </StayDates>
      <Discount>
        <FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>


순위 선택

다음 예시는 20% 할인과 20% 할인이라는 두 가지 할인을 제공합니다. 15% 할인 혜택을 드립니다. 평가 중에는 15% 할인만 적용됩니다. 더 낮기 때문입니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="15" rank="25"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="20" rank="50"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

BestDailyDiscount

다음 예에서는 Discount와 함께 쌓인 BestDailyDiscount를 적용하여 2박 숙박에 할인을 제공합니다.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
 <HotelPromotions hotel_id="HotelID" action="overlay">
   <Promotion id="general">
     <BestDailyDiscount fixed_amount="20"/>
   </Promotion>
   <Promotion id="may">
     <BestDailyDiscount fixed_amount="50"/>
     <StayDates application="overlap">
        <DateRange start="2023-05-01" end="2023-05-31"/>
     </StayDates>
   </Promotion>
   <Promotion id="fiesta">
     <Discount fixed_amount_per_night="5"/>
     <Stacking type="any"/>
   </Promotion>
 </HotelPromotions>
</Promotions>

2023년 4월 30일부터 2023년 5월 2일까지 2박 숙박을 고려해 보세요. 가장 높은 매출을 내는 일일 할인의 조합은 가장 높은 할인을 먼저 찾습니다

첫날 밤, '일반' 프로모션의 유일한 자격 요건을 충족하는 금액이며 고정 할인을 제공합니다

둘째 날은 '마음에 들어' 프로모션의 할인율이 '일반' 할인입니다. 따라서 고정 할인을 선택한 다음 50입니다.

그리고 머물며 '피에스타'를 즐기세요. 프로모션 할인을 1박당 5로 할인 총 10개입니다. 일일 최고의 할인율을 조합하여 적용할 수 있습니다. 왜냐하면 '피에스타' 스택 유형이 any로 설정되어 있음 base로 설정된 경우 최적의 일일 할인 또는 'fiesta' 할인 조합만 적용됩니다. 다음에 대한 설명 보기 Stacking에서 자세한 내용을 확인하세요.

`전체 숙박 요금은 20 + 50 + 10 = 80의 고정 금액으로 계산됩니다. 할인입니다.

대답

구문

PromotionsResponse 메시지는 다음 구문을 사용합니다.

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues are populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code"
           status="issue_type">
      issue_description
    </Issue>
  </Issues>
</PromotionsResponse>

요소 및 속성

PromotionsResponse 메시지에는 다음과 같은 요소와 속성이 있습니다.

요소 / @Attribute 발생 횟수 유형 설명
PromotionsResponse 1 Complex element 수신된 프로모션 요청 메시지입니다.
PromotionsResponse / @timestamp 1 DateTime 이 메시지의 생성 날짜 및 시간입니다.
PromotionsResponse / @id 1 string 연결된 프로모션 메시지의 고유 식별자입니다.
PromotionsResponse / @partner 1 string 이 메시지의 파트너 계정입니다.
PromotionsResponse / Success 0..1 Success 프로모션 메시지가 성공적으로 처리되었음을 나타냅니다. 알림을 받아볼 수 있습니다

각 메시지에 <Success> 또는 <Issues>가 있습니다.

PromotionsResponse / Issues 0..1 Issues 처리 중에 발생한 하나 이상의 문제에 대한 컨테이너입니다. 프로모션 메시지

<Success> 또는 <Issues>가 표시됩니다.

PromotionsResponse / Issues / Issue 1..n Issue 해당 기간 동안 발생한 경고, 오류 또는 실패에 대한 설명 프로모션 메시지를 처리하는 데 사용됩니다. 이 문제에 대한 자세한 내용은 인치 피드 상태 오류 메시지.
PromotionsResponse / Issues / Issue / @code 1 integer 문제의 식별자입니다.
PromotionsResponse / Issues / Issue / @status 1 enum

발생한 문제의 유형입니다.

유효한 값은 warning, error, failure입니다.

성공

다음은 성공적으로 처리된 프로모션 메시지에 대한 응답입니다.

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

문제

다음은 이메일로 처리되지 않은 프로모션 메시지에 대한 응답입니다. 오류가 발생했습니다.

<?xml version="1.0" encoding="UTF-8"?>
<PromotionsResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</PromotionsResponse>