개요
이 API를 사용하면 조건이 충족될 때마다 요금에 작업을 동적으로 적용하는 방법(예: 가격 조정 또는 환불 가능 여부 사용 설정)을 정의할 수 있습니다. 가장 높은 할인으로 요건을 충족하는 프로모션만 적용할 수 있는 프로모션 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의
계정 설정 페이지에 표시된 '파트너 키' 값입니다.
참고: 여러 계정에 피드를 제공하는 백엔드가 있는 경우 이 값은 동일한 계정에 대한 |
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 |
|
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 | 지정하지 않고 동일한 지정된 경우 값은 |
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'는 기간 중 평일이 허용되는 것으로 지정합니다. 유효한 문자는 다음과 같습니다.
모든 문자 조합이 유효합니다. |
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'는 기간 중 평일이 허용되는 것으로 지정합니다. 유효한 문자는 다음과 같습니다.
모든 문자 조합이 유효합니다. |
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'는 기간 중 평일이 허용되는 것으로 지정합니다. 유효한 문자는 다음과 같습니다.
모든 문자 조합이 유효합니다. |
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 | AmountBeforeTax 및 AmountAfterTax 에 지정된 승수를 곱하여 비율을 수정합니다. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / PriceAdjustment / @multiplier | 1 | float | AmountBeforeTax 와 AmountAfterTax 가 모두 이 값으로 곱해집니다. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule | 0..1 | RateRule | 지정된 요금 규칙 ID를 적용하여 요금을 수정합니다. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / RateRule / @id | 1 | string | 이 ID는 요금을 요금 규칙 정의 파일의 정의와 일치시킵니다.
참고:
|
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable | 0..1 | Refundable | 요율의 환불 가능 여부를 지정된 값으로 덮어씁니다.
속성을 설정할 때는 다음 사항에 유의하세요.
|
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @available | 1 | boolean | (필수) 요금이 전액 환불이 허용되는지 여부를 나타내려면 1 또는 true 로 설정합니다. 그 외의 경우에는 0 또는 false 로 설정합니다. |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days | 0..1 | integer | (available 가
true 인 경우 필수사항) 체크인 전
전액 환불을 요청할 수 있는 일수를
지정합니다. refundable_until_days 값은 0에서 330 사이의 정수여야 합니다. |
RateModifications / HotelRateModifications / ItineraryRateModification / ModificationActions / Refundable / @refundable_until_time | 0..1 | Time | (available 가 true 인 경우 권장) 전액 환불 요청이 처리되는 가장 늦은 시간(호텔 현지 시간)을 지정합니다. 이를 refundable_until_days 와 함께 사용하여
예를 들어 '체크인 2일 전 오후 4:00까지 환불 가능합니다'를
지정할 수 있습니다. 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 속성에 매핑되는 PackageID 값에 매핑됩니다.
허용되는 최대 문자 수는 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 | 요금 수정이 적용되어야 하는 방식을 설명합니다. 유효한 값은 다음과 같습니다.
이 속성은 항상 지정해야 합니다. |
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'는 기간 중 평일이 허용되는 것으로 지정합니다. 유효한 문자는 다음과 같습니다.
모든 문자 조합이 유효합니다. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries | 0..1 | UserCountries | 지정하면 요금 수정은 사용자가 지정된 국가 중 한 곳에 거주하는 경우에만 적용됩니다. 지정하지 않으면 사용자의 위치에 관계없이 요금 수정이 적용됩니다. |
RateModifications / HotelRateModifications / ItineraryRateModification / UserCountries / @type | 0..1 | enum | UserCountry 사양의 유형입니다.
유효한 값은 사용자국가 사용자 국가 UserCountry |
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 메시지가 경고, 오류 또는 실패 없이 성공적으로 처리되었음을 나타냅니다.
각 메시지에 |
RateModificationsResponse / Issues | 0..1 | Issues | RateModifications 메시지를 처리하는 동안 발생한 하나 이상의 문제에 대한
컨테이너입니다.
각 메시지에 |
RateModificationsResponse / Issues / Issue | 1..n | Issue | RateModifications 메시지를 처리하는 동안 발생한 경고, 오류 또는 실패에 대한 설명입니다. 이러한 문제에 관한 자세한 내용은 피드 상태 오류 메시지에서 확인할 수 있습니다. |
RateModificationsResponse / Issues / Issue / @code | 1 | integer | 문제 식별자입니다. |
RateModificationsResponse / Issues / Issue / @status | 1 | enum | 발생한 문제의 유형입니다. 유효한 값은 |
예
성공
다음은 성공적으로 처리된 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>