비율 수정

개요

이 API를 사용하면 가격 조정 또는 환불 가능 여부 사용 설정과 같이 조건이 충족될 때마다 요금에 작업을 동적으로 적용하는 방법을 정의할 수 있습니다. 가장 높은 할인이 적용되는 대상 프로모션만 적용할 수 있는 Promotions API와 달리 이 API는 최종 가격을 인상할 수 있는 가격 조정을 포함하여 특정 조건이 충족될 때 모든 작업을 적용합니다.

요청

문법

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

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="partner_key"
                      id="message_ID"
                      timestamp="timestamp">
  <HotelRateModifications hotel_id="HotelID" action="[overlay]">
    <ItineraryRateModification id="ModificationID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD" days_of_week=""MTWHFSU_or_subset""/>
      </BookingDates>
      <BookingWindow min="integer" max="integer"/>
      <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>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <LengthOfStay min="integer" max="integer"/>
      <MinimumAmount before_discount="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates application="[all|any]">
        <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>
      <ModificationActions>
        <PriceAdjustment multiplier="float"/>
        <RateRule id="RateRuleID"/>
        <Refundable available="[false|true]"
                       refundable_until_days="number_of_days"
                       refundable_until_time="time"/>
        <Availability status="[unavailable]"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

요소 및 속성

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

요소 / @Attribute 발생 횟수 유형 설명
RateModifications 1 Complex element 요금 수정 메시지의 루트 요소입니다.
RateModifications / @partner 1 string 이 메시지의 파트너 계정입니다. 이 문자열 값은 Hotel Center의 계정 설정 페이지에 나열된 '파트너 키' 값입니다.

참고: 여러 계정에 피드를 제공하는 백엔드가 있는 경우 이 값은 동일한 계정의 <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 메시지의 <RequestorID> 요소에 지정된 ID 속성 값과 일치해야 합니다.

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

속성의 요금 수정입니다. 각 요금 수정은 단일 속성에 적용됩니다.

참고: 여러 속도 수정을 같은 요율에 적용할 수 있는 경우 모든 수정사항이 적용됩니다. 특정 순서는 보장되지 않습니다.

RateModifications / HotelRateModifications / @hotel_id 1 string 숙박 시설의 고유 식별자입니다. 이 값은 호텔 목록 피드의 <listing> 요소에서 <id>를 사용하여 지정된 호텔 ID와 일치해야 합니다. 호텔 ID는 Hotel Center에도 표시됩니다.
RateModifications / HotelRateModifications / @action 0..1 enum

action을 지정하지 않으면 이 호텔의 이 요소 내에서 수정사항이 추가되거나 업데이트됩니다. action="overlay"가 지정되면 이 호텔에 대해 이전에 정의된 모든 수정사항이 먼저 삭제됩니다. 그런 다음 여기에 지정된 수정사항이 작성됩니다. action="overlay"를 사용하고 이 요소 내에 수정사항이 명시되지 않은 경우 이 호텔의 모든 수정사항이 삭제됩니다.

RateModifications / HotelRateModifications / ItineraryRateModification 0..200 ItineraryRateModification

숙박 시설의 단일 요금 수정입니다.

참고: 속도 수정은 디버그하기 어려우므로 가급적 사용하지 않는 것이 좋습니다. 200개를 초과하는 비율 수정이 필요한 사용 사례는 기술계정 관리자 (TAM)에게 문의하세요.

RateModifications / HotelRateModifications / ItineraryRateModification / @id 1 string 요금 수정을 위한 고유 식별자입니다. 최대 40자(영문 기준)까지 허용됩니다. 허용되는 문자는 a~z, A~Z, 0~9, _ (밑줄), - (대시), 입니다 . (마침표)를 누릅니다.
RateModifications / HotelRateModifications / ItineraryRateModification / @action 0..1 enum

지정하지 않고 id가 동일한 요금 수정이 저장되지 않으면 요금 수정이 저장됩니다. 그 외의 경우 지정되지 않고 동일한 id의 요금 수정이 저장되면 기존 요금 수정이 업데이트됩니다.

지정된 경우 값은 "delete"여야 합니다. "delete"가 지정되면 동일한 id의 저장된 요금 수정이 삭제됩니다. "delete"를 사용할 때는 <ItineraryRateModification>에 하위 요소를 포함하지 마세요. 또한 "delete"<HotelRateModifications action="overlay"/>와 함께 사용할 수 없습니다.

RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates 0..1 BookingDates 요금 수정을 적용하려면 예약 시점을 정의하는 하나 이상의 기간에 대한 컨테이너가 발생해야 합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange 1..99 DateRange 요금 수정을 적용하려면 예약이 발생해야 하는 시기를 지정하는 기간입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @start 0..1 Date 기간의 시작 날짜 (속성 시간대를 기준으로 함)입니다. 이 날짜는 end 날짜 이전이거나 동일하거나 같아야 합니다. start을 지정하지 않으면 시작일과 관련하여 기간이 제한이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @end 0..1 Date 기간의 종료일 (속성 시간대를 기준으로 함)입니다. 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end를 지정하지 않으면 종료일이 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingDates / DateRange / @days_of_week 0..1 string

기간에 허용되는 요일입니다. 지정하지 않으면 기간에 모든 요일이 허용됩니다. 문자열의 각 문자는 날짜를 지정합니다. 예를 들어 'MTWHF'는 기간에서 평일이 허용되도록 지정합니다.

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow 0..1 BookingWindow 체크인 날짜를 기준으로 예약이 이루어져야 하는 기간을 숙박 시설의 시간대를 기준으로 지정합니다. 예를 들어 예약 기간은 체크인 전 최소 7일에서 180일 이하로 설정할 수 있습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @min 0..1 integer 요금 수정을 적용하려면 예약 시 체크인하기 전 최소 일수입니다. 지정되지 않으면 최솟값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / BookingWindow / @max 0..1 integer 요금 수정을 적용하려면 예약 시 체크인 전 최대 기간(일)이 발생해야 합니다. 지정되지 않으면 최댓값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates 0..1 CheckinDates 요금 수정을 적용하려면 체크인이 발생해야 하는 시점을 정의하는 하나 이상의 기간에 대한 컨테이너입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange 1..99 DateRange 요금 수정을 적용하려면 체크인이 발생해야 하는 시기를 지정하는 기간입니다. 하나 이상의 비율 수정을 삭제하는 경우 이 요소가 필요하지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @start 0..1 Date 기간의 시작 날짜 (속성 시간대를 기준으로 함)입니다. 이 날짜는 end 날짜 이전이거나 동일하거나 같아야 합니다. start을 지정하지 않으면 시작일과 관련하여 기간이 제한이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @end 0..1 Date 기간의 종료일 (속성 시간대를 기준으로 함)입니다. 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end를 지정하지 않으면 종료일이 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckinDates / DateRange / @days_of_week 0..1 string

기간에 허용되는 요일입니다. 지정하지 않으면 기간에 모든 요일이 허용됩니다. 문자열의 각 문자는 날짜를 지정합니다. 예를 들어 'MTWHF'는 기간에서 평일이 허용되도록 지정합니다.

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates 0..1 CheckoutDates 요금 수정을 적용하려면 체크아웃이 발생해야 하는 시기를 정의하는 하나 이상의 기간에 대한 컨테이너입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange 1..99 DateRange 요금 수정을 적용하기 위해 체크아웃해야 하는 시기를 지정하는 기간입니다. 하나 이상의 비율 수정을 삭제하는 경우 이 요소가 필요하지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @start 0..1 Date 기간의 시작 날짜 (속성 시간대를 기준으로 함)입니다. 이 날짜는 end 날짜 이전이거나 동일하거나 같아야 합니다. start을 지정하지 않으면 시작일과 관련하여 기간이 제한이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @end 0..1 Date 기간의 종료일 (속성 시간대를 기준으로 함)입니다. 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end를 지정하지 않으면 종료일이 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / CheckoutDates / DateRange / @days_of_week 0..1 string

기간에 허용되는 요일입니다. 지정하지 않으면 기간에 모든 요일이 허용됩니다. 문자열의 각 문자는 날짜를 지정합니다. 예를 들어 'MTWHF'는 기간에서 평일이 허용되도록 지정합니다.

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / Devices 0..1 Devices 요금을 수정할 수 있는 사용자 기기를 나열하기 위한 컨테이너입니다. 지정하면 사용자가 나열된 기기 중 하나와 일치하는 경우에만 요금 수정이 적용됩니다. 지정하지 않으면 요금 수정 적용이 제한되지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device 1..3 Device 요금 수정이 가능한 한 가지 사용자 기기 유형을 정의합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / Devices / Device / @type 1 enum 기기 유형입니다. 값은 desktop, tablet 또는 mobile여야 합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions 1 ModificationActions

지정된 모든 조건이 충족되는 경우 비율에 적용되는 작업입니다.

RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment 0..1 PriceAdjustment AmountBeforeTaxAmountAfterTax에 모두 지정된 승수를 곱하여 요금을 수정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier 1 float AmountBeforeTaxAmountAfterTax에 모두 이 값을 곱합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule 0..1 RateRule 지정된 요금 규칙 ID를 적용하여 요금을 수정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id 1 string 이 ID는 요금 규칙 정의 파일의 정의와 요금을 일치시킵니다. 참고:
  • 이 입력란의 글자 수 제한은 40자(영문 기준)입니다.
  • 각 요금은 하나의 요금 규칙과만 연결할 수 있습니다.
  • 요금 규칙 ID를 적용하는 수정사항이 여러 개인 경우 사전순으로 가장 작은 요금 규칙 ID가 요금에 할당됩니다.
  • 이 ID가 요금 규칙 정의 파일의 요금 규칙과 일치하지 않으면 부적격한 것으로 간주됩니다.
다양한 특별 요금 UI 처리에 관한 자세한 내용은 이 도움말을 참고하세요.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable 0..1 Refundable 요금의 환불 가능 여부를 지정된 값으로 덮어씁니다.

속성을 설정할 때는 다음 사항에 유의하세요.

  • 이 수정 작업을 수행하면 채워진 필드뿐만 아니라 요건을 충족하는 요금의 환불 가능 설정이 완전히 다시 작성됩니다.
  • available 또는 refundable_until_days를 설정하지 않으면 요금이 환불 가능으로 표시되지 않습니다.
  • available0 또는 false이면 다른 속성은 무시됩니다. 다른 속성 중 하나 또는 둘 다 설정되어 있더라도 요금이 환불 가능으로 표시되지 않습니다.
  • refundable_until_time를 설정하는 것이 좋습니다. 설정하지 않으면 가장 이른 시간 (자정)이 사용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available 1 boolean (필수사항) 1 또는 true로 설정하고 요금에서 전액 환불이 허용되는지 나타냅니다. 그렇지 않으면 0 또는 false로 설정합니다.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (availabletrue인 경우 필수) 체크인 전에 전액 환불을 요청할 수 있는 일수를 지정합니다. refundable_until_days 값은 0에서 330 사이의 정수여야 합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time 0..1 Time (availabletrue인 경우 권장) 전액 환불 요청을 처리할 가장 늦은 시간을 호텔 현지 시간으로 지정합니다. 이 속성을 refundable_until_days와 결합하여 예를 들어 '체크인 2일 전 오후 4시까지 환불 가능'을 지정할 수 있습니다. refundable_until_time를 설정하지 않으면 기본값은 자정입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability 0..1 Availability 요금의 이용 가능 여부를 지정된 값으로 덮어씁니다. 요율은 unavailable로만 설정할 수 있습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Availability / @status 1 enum status="unavailable"인 경우 이 요금은 유효한 가격이 있는지 여부와 관계없이 이용할 수 없는 것처럼 처리됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay 0..1 LengthOfStay 이 요금 수정이 적용될 수 있는 숙박 기간 한도를 정의합니다. 숙박 기간이 최소 및 최대 한도를 벗어나면 요금 수정이 적용되지 않습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @min 0..1 integer 요금 수정을 적용하기 위해 허용되는 숙박 일수입니다. 지정되지 않으면 최솟값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / LengthOfStay / @max 0..1 integer 요금 수정을 적용하기 위해 허용되는 최대 숙박 일수입니다. 지정되지 않으면 최댓값이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount 0..1 MinimumAmount 요금 수정을 적용하기 위해 초과해야 하는 일일 객실 요금의 최소 합계 (AmountBeforeTax 또는 AmountAfterTax 중 더 큰 값 사용)를 지정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / MinimumAmount / @before_discount 1 integer 적용할 비율 수정을 초과해야 하는 값입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans 0..1 RatePlans 요금 수정이 적용되는 요금제 목록의 컨테이너입니다. <RatePlans>를 지정하지 않으면 요금 수정이 모든 요금제에 적용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan 1..n RatePlan 요금제를 지정합니다. 요금제는 트랜잭션(숙박 시설 데이터), OTA_HotelRateAmountNotifRQ, OTA_HotelAvailNotifRQ 메시지에 정의되고 PackageID로 식별되는 패키지, 요금, 이용 가능 여부의 조합으로 정의됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RatePlans / RatePlan / @id 1 string 요금제의 고유 식별자입니다. 이 값은 트랜잭션 (숙박 시설 데이터) 메시지의 <PackageData><OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> 메시지의 <StatusApplicationControl>에 있는 RatePlanCode 속성에 매핑됩니다. 허용되는 최대 문자 수는 50자(영문 기준)입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes 0..1 RoomTypes 요금 수정이 적용되는 객실 유형 목록의 컨테이너입니다. 속도 수정은 지정된 각 <RoomType>에 적용됩니다. <RoomTypes>를 지정하지 않으면 요금 수정이 모든 객실에 적용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType 1..n RoomType 방 유형을 지정합니다. 객실 유형은 트랜잭션 (숙박 시설 데이터) 메시지의 <RoomData> 요소에 정의되며 <RoomID> 값을 사용하여 참조됩니다. <RoomID> 값은 OTA_HotelRateAmountNotifRQ 메시지의 InvTypeCode 속성에 의해서도 참조됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / RoomTypes / RoomType / @id 1 string 인벤토리의 고유 식별자입니다 (방 유형). 이 값은 트랜잭션 (숙박 시설 데이터) 메시지에서 <RoomID>에 매핑됩니다. 허용되는 최대 문자 수는 50자(영문 기준)입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates 0..1 StayDates 시즌성 가격 수용과 같이 요금 수정이 적용되는 방법을 결정하는 하나 이상의 기간에 대한 컨테이너입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / @application 1 enum

요금 수정이 적용되는 방식을 설명합니다.

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

  • all: 숙박 일정의 모든 날짜가 숙박 날짜와 겹치는 경우 숙박 일정의 각 숙박 기간에 요금 수정을 적용합니다.
  • any: 숙박 일정의 날짜가 숙박 기간의 날짜와 겹치는 경우 숙박 일정의 모든 숙박 일수에 요금 수정을 적용합니다.

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

RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange 1..99 DateRange 요금 수정이 적용될 날짜를 지정하는 기간입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @start 0..1 Date 기간의 시작 날짜 (속성 시간대를 기준으로 함)입니다. 이 날짜는 end 날짜 이전이거나 동일하거나 같아야 합니다. start을 지정하지 않으면 시작일과 관련하여 기간이 제한이 없습니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @end 0..1 Date 기간의 종료일 (속성 시간대를 기준으로 함)입니다. 이 날짜는 start 날짜와 같거나 그 이후여야 합니다. end를 지정하지 않으면 종료일이 사실상 무제한입니다.
RateModifications / HotelRateModifications / ItineraryRateModification / StayDates / DateRange / @days_of_week 0..1 string

기간에 허용되는 요일입니다. 지정하지 않으면 기간에 모든 요일이 허용됩니다. 문자열의 각 문자는 날짜를 지정합니다. 예를 들어 'MTWHF'는 기간에서 평일이 허용되도록 지정합니다.

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

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

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

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries 0..1 UserCountries 지정하면 사용자가 지정된 국가 중 한 곳에 거주하는 경우에만 요금 수정이 적용됩니다. 지정하지 않으면 사용자의 위치에 관계없이 요금 수정이 적용됩니다.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type 0..1 enum 사용자 국가 사양의 유형입니다.

유효한 값은 includeexclude입니다.

사용자 국가 typeinclude로 설정하면 요금 수정이 나열된 국가의 사용자에게 적용됩니다.

사용자 국가 typeexclude이면 요금 수정이 나열된 국가 외의 사용자에게 적용됩니다.

사용자 국가 type가 설정되지 않은 경우 include로 처리되며 요금 수정이 나열된 국가의 사용자에게 적용됩니다.

RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country 1..300 Country 요금을 수정할 수 있는 사용자 국가를 지정합니다.
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / Country / @code 1 string CLDR 국가 코드(예: DE 또는 FR) 일부 국가의 경우 CLDR 국가 코드가 2자리 ISO 국가 코드와 다릅니다. 또한 CLDR 리전 코드도 지원되지 않습니다.

기본 메시지

다음 예는 기본적인 RateModifications` 메시지를 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-07-01" end="2023-07-31" days_of_week="MTWHF"/>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2023-10-01" end="2023-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2023-10-08" end="2023-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


요금 수정 1개 삭제

다음 예시에서는 속성의 요금 수정 1개를 삭제하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1" action="delete"/>
  </HotelRateModifications>
</RateModifications>

모든 요금 수정사항 삭제

다음 예시에서는 속성의 모든 요금 수정을 삭제하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
</RateModifications>


모든 요금 수정 오버레이

다음 예는 하나 이상의 새로운 요금 수정을 적용하여 숙박 시설의 <HotelRateModifications>를 오버레이하는 방법을 보여줍니다. action="overlay"인 경우 현재 메시지에 지정된 속도 수정사항을 저장하기 전에 모든 저장된 속도 수정사항이 삭제됩니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1" action="overlay"/>
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-09-01" end="2023-09-30"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier="1.2"/>
      </ModificationActions>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>

여러 수정 작업

다음 예는 한 번에 여러 수정 작업을 실행하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <BookingDates>
         <DateRange start="2023-01-01" end="2023-02-28"/>
      </BookingDates>
      <ModificationActions>
        <PriceAdjustment multiplier=".95"/>
        <Refundable available="true"
                    refundable_until_days="1"
                    refundable_until_time="12:00:00"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


사용자 국가의 요금제 사용 중지

다음 예에서는 일본 (JP) 사용자로만 요금제를 제한하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<RateModifications partner="account_xyz"
                   id="123_abc"
                   timestamp="2023-05-22T16:20:00-04:00">
  <HotelRateModifications hotel_id="Property_1">
    <ItineraryRateModification id="1">
      <RatePlans>
         <RatePlan id="jp_only"/>
      </RatePlans>
      <UserCountries type="exclude">
        <Country code="JP"/>
      </UserCountries>
      <ModificationActions>
        <Availability status="unavailable"/>
      </ModificationActions>
    </ItineraryRateModification>
  </HotelRateModifications>
</RateModifications>


응답

문법

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

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

요소 및 속성

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

요소 / @Attribute 발생 횟수 유형 설명
RateModifications 1 Complex element 수신된 RateModifications 요청 메시지의 성공 또는 문제를 나타내는 루트 요소입니다.
RateModificationsResponse / @timestamp 1 DateTime 이 메시지를 작성한 날짜 및 시간입니다.
RateModificationsResponse / @id 1 string 연결된 RateModifications 메시지의 고유 식별자입니다.
RateModificationsResponse / @partner 1 string 이 메시지의 파트너 계정입니다.
RateModificationsResponse / Success 0..1 Success RateModifications 메시지가 경고, 오류 또는 실패 없이 성공적으로 처리되었음을 나타냅니다.

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

RateModificationsResponse / Issues 0..1 Issues RateModifications 메시지를 처리하는 동안 발생한 하나 이상의 문제에 대한 컨테이너입니다.

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

RateModificationsResponse / Issues / Issue 1..n Issue RateModifications 메시지를 처리하는 동안 발생한 경고, 오류 또는 실패에 관한 설명입니다. 이 문제에 관한 자세한 내용은 피드 상태 오류 메시지에서 확인할 수 있습니다.
RateModificationsResponse / Issues / Issue / @code 1 integer 문제의 식별자입니다.
RateModificationsResponse / Issues / Issue / @status 1 enum

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

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

성공

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

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

문제

다음은 오류로 인해 처리되지 않은 RateModifications 메시지에 대한 응답입니다.

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