요청
구문
Transaction (Property Data)
메시지는 다음 문법을 사용합니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="timestamp"
id="message_ID"
partner="partner_key">
<PropertyDataSet action="[overlay|delta]">
<!-- (Required) ID that matches the Hotel List Feed -->
<Property>HotelID</Property>
<RoomData>
<!-- (Required) One room ID per RoomData element -->
<RoomID>RoomID</RoomID>
<Name>
<Text text="room_name" language="language_code"/>
</Name>
<Description>
<Text text="room_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the rate plans allowed for this room type to
those listed here. If specified, don't specify AllowableRoomIDs. -->
<AllowablePackageIDs>
<AllowablePackageID>PackageID</AllowablePackageID>
</AllowablePackageIDs>
<Capacity>max_number_of_occupants</Capacity>
<AdultCapacity>max_number_of_adult_occupants</AdultCapacity>
<ChildCapacity>max_number_of_child_occupants</ChildCapacity>
<OccupancySettings>
<MinOccupancy>min_number_of_occupants</MinOccupancy>
<MinAge>min_age_of_occupants</MinAge>
</OccupancySettings>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
</Caption>
<URL>photo_location</URL>
</PhotoURL>
<RoomFeatures>
<JapaneseHotelRoomStyle>[western|japanese|japanese_western]</JapaneseHotelRoomStyle>
<Beds>
<Bed size="[single|semi_double|double|queen|king]">
<Width unit="cm" number="bed_width"/>
<Length unit="cm" number="bed_length"/>
</Bed>
<!-- Include with any additional beds. -->
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>[shared|private]</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>[smoking|non_smoking]</Smoking>
<BathAndToilet relation="[together|separate]">
<Bath bathtub="[false|true]" shower="[false|true]"/>
<Toilet electronic_bidet="[false|true]" mobility_accessible="[false|true]"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<!-- (Optional) Defines the type of views from the room. -->
<!-- Example: <OceanView/> -->
</Views>
</RoomFeatures>
</RoomData>
<PackageData>
<!-- (Required) One package ID per PackageData element -->
<PackageID>PackageID</PackageID>
<Name>
<Text text="package_name" language="language_code"/>
</Name>
<Description>
<Text text="package_description" language="language_code"/>
</Description>
<!-- (Optional) Restricts the room types allowed for this rate plan to
those listed here. If specified, don't specify AllowablePackageIDs. -->
<AllowableRoomIDs>
<AllowableRoomID>RoomID</AllowableRoomID>
</AllowableRoomIDs>
<Refundable available="[false|true]" refundable_until_days="number_of_days"
refundable_until_time="time"/>
<!-- For these next 3 elements, boolean_value can be 0/1 or true/false -->
<BreakfastIncluded>boolean_value</BreakfastIncluded>
<InternetIncluded>boolean_value</InternetIncluded>
<ParkingIncluded>boolean_value</ParkingIncluded>
<PhotoURL>
<Caption>
<Text text="photo_description" language="language_code"/>
...
</Caption>
<URL>photo_location</URL>
</PhotoURL>
...
<Meals>
<Breakfast
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
<Dinner
included="[true|false]" buffet="[true|false]"
in_room="[true|false]" in_private_space="[true|false]"/>
</Meals>
<CheckinTime>checkin_time</CheckinTime>
<CheckoutTime>checkout_time</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
요소 및 속성
거래 (속성 데이터) 메시지에는 다음 요소와 속성이 있습니다.
요소 / @Attribute | 발생 횟수 | 유형 | 설명 |
---|---|---|---|
Transaction | 1 | Complex element | ARI 구현에서 이는 단일 숙박 시설의 객실 유형 및 패키지를 정의하는 메시지의 루트 요소입니다. |
Transaction / @timestamp | 1 | DateTime | 이 메시지의 생성 날짜 및 시간입니다. |
Transaction / @id | 1 | string | 이 요청 메시지의 고유 식별자입니다. 이 값은 응답 메시지에 반환됩니다. 허용되는 문자는 a~z, A~Z, 0~9, _(밑줄), - (대시)입니다. |
Transaction / @partner | 1 | string | 이 메시지의 파트너 계정입니다. 이 문자열 값은 Hotel Center의
계정 설정 페이지에 표시된 '파트너 키' 값입니다.
참고: 여러 계정의 피드를 제공하는 백엔드가 있는 경우 이 값은 동일한 계정의 |
Transaction / PropertyDataSet | 1.. | PropertyDataSet | 단일 숙박 시설의 객실 유형 및 패키지를 정의하는 컨테이너입니다. |
Transaction / PropertyDataSet / @action | 0..1 | enum | 객실 요금 정의에 적용할 업데이트 유형입니다. 유효한 값은 다음과 같습니다.
이 속성은 선택사항이며 지정하지 않으면 기본값은 |
Transaction / PropertyDataSet / Property | 1 | string | 숙박 시설의 고유 식별자입니다. 이 값은 호텔 목록 피드의 <listing> 요소에서
<id> 를 사용하여 지정된 호텔 ID와 일치해야 합니다. 호텔 ID는 Hotel Center에도 표시됩니다. |
Transaction / PropertyDataSet / RoomData | 0..n | RoomData | 방을 설명합니다. 참고: |
Transaction / PropertyDataSet / RoomData / RoomID | 1 | RoomID | 객실 유형의 고유 식별자입니다. 이 값은 <OTA_HotelAvailNotifRQ> , <OTA_HotelRateAmountNotifRQ> , <OTA_HotelInvCountNotifRQ> 메시지의 <StatusApplicationControl> 요소에 있는 InvTypeCode 속성을 사용하여 참조됩니다. |
Transaction / PropertyDataSet / RoomData / Name | 1 | Name | 하나 이상의 언어로 된 객실 카테고리 이름을 위한 컨테이너입니다. |
Transaction / PropertyDataSet / RoomData / Name / Text | 1..n | Text | 한 언어로 객실 카테고리의 이름을 지정합니다. |
Transaction / PropertyDataSet / RoomData / Name / Text / @text | 1..n | string | language 속성으로 지정된 언어로 된 객실 카테고리의 이름입니다. |
Transaction / PropertyDataSet / RoomData / Description | 1 | Name | 하나 이상의 언어로 객실 카테고리의 설명을 위한 컨테이너입니다. |
Transaction / PropertyDataSet / RoomData / Description / Text | 1..n | Text | 한 언어로 객실 카테고리의 설명을 지정합니다. |
Transaction / PropertyDataSet / RoomData / Description / Text / @text | 1..n | string | language 속성에서 지정한 언어로 된 객실 카테고리의 설명입니다. |
Transaction / PropertyDataSet / RoomData / Description / Text / @language | 1..n | string | 두 글자로 된 언어 코드입니다. |
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs | 0..1 | AllowablePackageIDs | <AllowablePackageID> 요소의 컨테이너입니다.
|
Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID | 1..n | AllowablePackageID | 이 객실 유형과 결합할 수 있는 요금제의 PackageID를 지정합니다. 요금제는 패키지, 요금, 예약 가능 여부의 조합으로 정의됩니다. PackageID 는 OTA_HotelRateAmountNotifRQ 및 OTA_HotelAvailNotifRQ 메시지의 RatePlanCode 에 해당합니다.
|
Transaction / PropertyDataSet / RoomData / Capacity | 0..1 | integer | 객실에 실제로 숙박할 수 있는 성인 및 어린이의 최대 수입니다. 이 값은 요금과 함께 전송하는 모든 NumberOfGuests 값보다 크거나 같아야 합니다.
참고: |
Transaction / PropertyDataSet / RoomData / AdultCapacity | 0..1 | integer | 객실에 실제로 숙박할 수 있는 성인 최대 인원입니다. 이 값은 요금과 함께 전송하는 모든 NumberOfGuests 값보다 크거나 같아야 합니다.
|
Transaction / PropertyDataSet / RoomData / ChildCapacity | 0..1 | integer | 객실에 실제로 숙박할 수 있는 어린이의 최대 수입니다.
|
Transaction / PropertyDataSet / RoomData / OccupancySettings | 0..1 | OccupancySettings | 객실의 숙박 인원 요구사항을 제한하거나 수정할 수 있는 설정입니다.
<OccupancySettings> <MinOccupancy>2</MinOccupancy> <MinAge>16</MinAge> </OccupancySettings> 모든 하위 요소를 포함할 필요는 없습니다. |
Transaction / PropertyDataSet / RoomData / PhotoURL | 0..n | PhotoURL | 지정된 객실 또는 객실 패키지의 사진에 대한 URL 및 자막(선택사항)입니다. 객실 또는 객실 번들에 <PhotoURL> 를 두 개 이상 지정할 수 있습니다.
이 요소는 다음과 같은 하위 요소를 사용합니다.
<PhotoURL> <URL>http://www.example.com/image1.jpg</URL> <Caption> <Text text="A bright way to enjoy your mornin' cuppa tea." language="en"/> <Text text="Une façon lumineuse pour profiter de votre tasse de thé." language="fr"/> </Caption> </PhotoURL> |
Transaction / PropertyDataSet / RoomData / RoomFeatures | 0..1 | <RoomFeatures> |
객실 기능에 관한 정보를 포함합니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / JapaneseHotelRoomStyle | 0..1 | enum | 일본 호텔 객실의 스타일을 나타냅니다. 유효한 값은 다음과 같습니다.
|
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds | 0..1 | Object | 방의 수만큼 <Bed> 를 포함합니다. 일본식 이불은 여기에 포함되지 않습니다.
각
<Bed> 에는 다음과 같은 하위 요소가 있습니다.
<Beds> <Bed size="double"> <Width unit="cm" number="140"/> <Length unit="cm" number="195"/> </Bed> <Bed/> <!-- Size unknown --> </Beds> |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Suite | 0.. | enum | 이 객실이 스위트인 경우 이 요소를 제공합니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Capsule | 0..1 | enum | 이 객실이 캡슐 객실인 경우 이 요소를 제공합니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Roomsharing | 0..1 | enum | 이 객실이 소유자 또는 다른 투숙객과 공유되는지 여부입니다. 유효한 값은 shared , private 입니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Outdoor | 0..1 | enum | 고정된 벽, 배관, 온도 조절기가 없는 야외 숙박 시설인 경우 이 요소를 제공합니다. 예를 들어 호텔 객실은 야외 숙박 시설이 아니지만 투숙객이 텐트에서 숙박하는 캠핑장과 투숙객이 자체 RV를 가져오는 RV 캠핑장은 야외 숙박 시설입니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / MobileAccessible | 0..1 | enum | 이 공간에 휠체어 사용자의 접근이 가능한 경우 이 요소를 제공합니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Smoking | 0..1 | enum | 객실이 금연 객실인지 흡연 객실인지 여부입니다. 유효한 값은 non_smoking 및 smoking 입니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet | 0..1 | Object | 객실의 욕조 및 변기에 관한 정보를 포함합니다.
속성은 다음과 같습니다.
이 요소는 선택적으로 다음 하위 요소를 사용합니다.
예: <BathAndToilet relation="separate"> <Bath bathtub="1" shower="1"/> <Toilet electronic_bidet="1" mobility_accessible="1"/> </BathAndToilet> |
Transaction / PropertyDataSet / RoomData / RoomFeatures / OpenAirBath | 0..1 | enum | 객실에 전용 노천탕이 있는 경우 이 요소를 제공합니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / AirConditioning | 0..1 | enum | 객실에 에어컨이 있는 경우 이 요소를 제공합니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Balcony | 0..1 | enum | 객실에 발코니 또는 베란다가 있는 경우 이 요소를 제공합니다. |
Transaction / PropertyDataSet / RoomData / RoomFeatures / Views | 0..1 | Object | 유효한 옵션은 다음과 같습니다.
|
Transaction / PropertyDataSet / PackageData | 0..n | PackageData | 실제 객실 설명에 포함되지 않는 요금 특징 및 약관을 설명하는 요소의 컨테이너입니다. 참고: |
Transaction / PropertyDataSet / PackageData / PackageID | 1 | string | 이 메시지의 PackageID 는 OTA_HotelRateAmountNotifRQ 및 OTA_HotelAvailNotifRQ 메시지의 RatePlanCode 에 해당합니다. |
Transaction / PropertyDataSet / PackageData / Name | 1 | Name | 하나 이상의 언어로 된 패키지 이름을 위한 컨테이너입니다. |
Transaction / PropertyDataSet / PackageData / Name / Text | 1..n | Text | 한 언어로 패키지 이름을 지정합니다. |
Transaction / PropertyDataSet / PackageData / Name / Text / @text | 1..n | string | language 속성으로 지정된 언어의 패키지 이름입니다. |
Transaction / PropertyDataSet / PackageData / Description | 1 | Description | 하나 이상의 언어로 된 패키지 설명을 위한 컨테이너입니다. |
Transaction / PropertyDataSet / PackageData / Description / Text | 1..n | Text | 한 언어로 된 패키지 설명을 지정합니다. |
Transaction / PropertyDataSet / PackageData / Description / Text / @text | 1..n | string | language 속성으로 지정된 언어로 된 패키지 설명입니다. |
Transaction / PropertyDataSet / PackageData / Description / Text / @language | 1..n | string | 두 글자로 된 언어 코드입니다. |
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs | 0..1 | AllowableRoomIDs | <AllowableRoomID> 요소의 컨테이너입니다.
|
Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID | 1..n | AllowableRoomID | 이 요금제와 결합할 수 있는 객실 유형의 RoomID를 지정합니다. 객실 유형은 <RoomData> 요소에 정의됩니다.
|
Transaction / PropertyDataSet / PackageData / Refundable | 0..1 | Refundable | 요금을 전액 환불 가능 또는 취소 가능으로 표시할 수 있습니다. 제공하지 않으면 환불에 관한 정보가 표시되지 않습니다.
참고: 모든 속성을 설정하는 것이 좋습니다. 하나 이상의 속성이 설정되지 않으면 피드 상태 경고 메시지가 생성됩니다. 속성을 설정하지 않으면 요금이 환불 가능으로 표시되지 않습니다. 속성을 설정할 때는 다음 사항에 유의하세요.
|
Transaction / PropertyDataSet / PackageData / 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 사이의 정수여야 합니다(양 끝값 포함). |
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time | 0.. | Time | (available 이 true 인 경우 적극 권장) 전액 환불 요청이 처리될 수 있는 가장 늦은 시간(호텔 현지 시간 기준)을 지정합니다. 이 속성을 refundable_until_days 와 결합하여 '체크인 2일 전 오후 4시까지 환불 가능'과 같이 지정할 수 있습니다. refundable_until_time 가 설정되지 않으면 기본값은 자정입니다. |
Transaction / PropertyDataSet / PackageData / BreakfastIncluded | 0..1 | boolean | 이 객실 유형에 조식이 포함되는지 여부를 지정합니다.
유효한 값은 0 (또는 false ) 및 1 (또는 true )입니다.
|
Transaction / PropertyDataSet / PackageData / CheckinTime | 0..1 | Time | 호텔의 현지 시각으로 표시된 가장 이른 체크인 시간입니다. 시간은 24:00 미만이어야 합니다. |
Transaction / PropertyDataSet / PackageData / CheckoutTime | 0..1 | Time | 호텔의 현지 시간으로 표시된 체크아웃 가능 시간입니다. |
Transaction / PropertyDataSet / PackageData / InternetIncluded | 0..1 | boolean | 객실에 무료 인터넷 액세스가 포함되는지 여부를 지정합니다. 다른 객실에는 이 편의시설이 포함되지 않습니다. 모든 객실에 무료 인터넷을 제공하는 호텔에서는 이 요소를 설정하지 마세요. 이 요소는 객실 내 유선 인터넷 또는 투숙객 객실에서 이용할 수 없는 무선 인터넷에는 적용되지 않습니다. 유효한 값은 0 (또는 false ) 및 1 (또는 true )입니다.
|
Transaction / PropertyDataSet / PackageData / Meals | 0..1 | Object | 이 패키지의 식사에 관한 정보를 포함합니다.
선택적 속성은 식사 필터 ( |
Transaction / PropertyDataSet / PackageData / ParkingIncluded | 0..1 | boolean | 이 호텔에서 주차가 유료인 경우 객실에 주차가 무료로 포함되는지 여부입니다. 무료 주차를 제공하는 호텔의 경우 이 요소의 값을 지정하지 마세요.
유효한 값은 0 (또는 false ) 및 1 (또는 true )입니다. 기본값은 false 입니다.
|
Transaction / PropertyDataSet / PackageData / PhotoURL | 0..1 | Object | (<RoomData> 의 <PhotoURL> 와 동일하지만 패키지 (예: 식사 사진)에 관한 것입니다.)
|
예
객실 및 패키지 데이터
다음은 트랜잭션 (숙박 시설 데이터) 메시지에서 숙박 시설의 객실 및 패키지 데이터를 정의하는 방법을 보여주는 기본 예입니다. overlay
속성은 예기치 않게 이미 데이터가 있는 경우 기존의 모든 데이터를 삭제하고 이 메시지의 데이터로 대체하는 데 사용됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<Description>
<Text text="Room with a king bed" language="en"/>
</Description>
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a king bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<Description>
<Text text="Standard rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<Description>
<Text text="Free breakfast rate" language="en"/>
</Description>
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
객실 유형 추가
다음은 기존 <Transaction>
데이터에 객실 유형과 패키지를 추가하는 방법의 예입니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-07-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="delta">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_3</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_3</PackageID>
<Name>
<Text text="Non-Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="false"/>
</PackageData>
</PropertyDataSet>
</Transaction>
객실 유형 삭제
다음은 기존 객실 유형 및 패키지를 삭제하는 방법의 예입니다. 이 시나리오에서 '객실 및 패키지 데이터' 및 '객실 유형 추가'의 메시지가 이전에 Google에 전송된 경우 Google에서 표시된 메시지를 수신하면 King
및 Double
객실 유형이 더 이상 존재하지 않습니다. 패키지 데이터를 삭제하면 거래 (숙박 시설 데이터), OTA_HotelRateAmountNotifRQ, OTA_HotelAvailNotifRQ
메시지에서 정의된 전체 요금제에 영향을 미칩니다 (동일한 PackageID
값 참조). 따라서 PackageID_2
및 PackageID_3
가 더 이상 여기에 정의되지 않음을 반영하기 위해 다른 메시지 유형을 사용하는 상응하는 업데이트가 필요할 수 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-08-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
<Capacity>2</Capacity>
<PhotoURL>
<URL>http://www.foo.com/static/bar/image.jpg</URL>
<Caption>
<Text text="Room with a queen bed" language="en"/>
</Caption>
</PhotoURL>
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Refundable" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
요금제 제한
다음은 <AllowablePackageIDs>
요소를 사용하여 객실 유형에 허용되는 요금제를 제한하는 방법을 보여주는 예입니다. 이 예에서 Queen
객실 유형 (RoomID_2
)은 PackageID_1로 식별된 패키지 및 요금제와만 결합할 수 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="King" language="en"/>
</Name>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<RoomData>
<RoomID>RoomID_2</RoomID>
<Name>
<Text text="Queen" language="en"/>
</Name>
<AllowablePackageIDs>
<AllowablePackageID>PackageID_1</AllowablePackageID>
</AllowablePackageIDs>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Standard" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>0</BreakfastIncluded>
</PackageData>
<PackageData>
<PackageID>PackageID_2</PackageID>
<Name>
<Text text="Free Breakfast" language="en"/>
</Name>
<!-- Additional PackageData child elements omitted. -->
<Refundable available="true" refundable_until_days="7" refundable_until_time="18:00:00"/>
<BreakfastIncluded>1</BreakfastIncluded>
</PackageData>
</PropertyDataSet>
</Transaction>
회의실 수용 인원 제한
다음은 <Capacity>
, <AdultCapacity>
, <ChildCapacity>
요소를 사용하여 객실 수용 인원에 제한을 설정하는 방법의 예입니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2020-12-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<PropertyDataSet action="overlay">
<Property>Property_1</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<Name>
<Text text="Double" language="en"/>
</Name>
<Capacity>4</Capacity>
<AdultCapacity>4</AdultCapacity>
<ChildCapacity>3</ChildCapacity>
<!-- Additional RoomData child elements omitted. -->
</RoomData>
</PropertyDataSet>
</Transaction>
더블룸 유형 (RoomID_1)은 최대 4명까지 투숙할 수 있습니다. 또한 최대 4명의 성인과 최대 3명의 어린이가 숙박할 수 있습니다. 이 객실을 예약하려면 세 가지 객실 수 요구사항을 모두 충족해야 합니다. 이 구성은 2인용 침대 2개가 있는 일반적인 객실을 나타냅니다. 객실에 성인이 1명 이상 있어야 하므로 어린이 수용 인원은 총 수용 인원보다 1명이 적습니다.
<RoomFeatures>
및 식사가 포함된 확장된 예시
JapaneseHotelRoomStyle
에는 기본값이 없습니다.
값을 생략해도 XML 오류가 발생하지는 않지만 사용자가 객실 스타일 또는 침대 수를 기준으로 필터링하면 등록정보가 검색 결과에 표시되지 않습니다.
싱글 침대 2개
다음 예시에서는 <RoomFeatures>
를 사용하는 방법을 보여줍니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two single beds -->
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
<Bed size="single">
<Width unit="cm" number="97"/>
<Length unit="cm" number="195"/>
</Bed>
</Beds>
<Suite/>
<Capsule/>
<Roomsharing>private</Roomsharing>
<Outdoor/>
<MobilityAccessible/>
<Smoking>non_smoking</Smoking>
<BathAndToilet relation="separate">
<Bath bathtub="1" shower="1"/>
<Toilet electronic_bidet="1" mobility_accessible="1"/>
</BathAndToilet>
<OpenAirBath/>
<AirConditioning/>
<Balcony/>
<Views>
<LakeView/>
<MarinaView/>
<BeachView/>
<ForestView/>
<MountainView/>
<NatureView/>
</Views>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
더블 사이즈 침대 2개
다음은 double
침대 2개가 있는 western
스타일 객실의 예입니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>western</JapaneseHotelRoomStyle>
<Beds> <!-- Two double beds-->
<Bed size="double"></Bed>
<Bed size="double"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
침대 없는 일본식 객실
다음은 침대가 없는 일본식 객실의 예입니다. japanese
스타일 객실에는 침대 정보가 필요하지 않습니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
침대 있는 일본식 서양식 객실
다음은 king
크기 침대가 있는 japanese_western
스타일 객실의 예입니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
<Beds>
<Bed size="king"></Bed>
</Beds>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
파트너가 japanese_western
객실에 침대 수 정보를 제공하지 않는 경우 다음 예를 참고하세요.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2023-07-23T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<RoomData>
<RoomID>RoomID_1</RoomID>
<RoomFeatures>
<JapaneseHotelRoomStyle>japanese_western</JapaneseHotelRoomStyle>
</RoomFeatures>
</RoomData>
</PropertyDataSet>
</Transaction>
식사
다음 예에서는 식사, 사진, 체크인 및 체크아웃 시간의 객실 및 패키지 메타데이터를 정의합니다.
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Meals Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<!-- Guests can choose to have breakfast in their room or in another
space to avoid contact with other guests. -->
<Breakfast included="1" in_room="1" in_private_space="1"/>
<Dinner included="1" buffet="1"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
조식만 제공
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-07-18T16:20:00-04:00" id="42">
<PropertyDataSet>
<Property>1234</Property>
<PackageData>
<PackageID>PackageID_1</PackageID>
<Name>
<Text text="Breakfast Included" language="en"/>
</Name>
<PhotoURL>
<Caption>
<Text text="Breakfast" language="en"/>
<Text text="朝食" language="ja"/>
</Caption>
<URL>http://example.com/static/bar/image1234.jpg</URL>
</PhotoURL>
<Meals>
<Breakfast included="true"/>
<!-- Dinner not included needs to be explicitly specified -->
<Dinner included="false"/>
</Meals>
<CheckinTime>15:00</CheckinTime>
<CheckoutTime>11:00</CheckoutTime>
</PackageData>
</PropertyDataSet>
</Transaction>
대답
구문
TransactionResponse (Property Data)
메시지는 다음 문법을 사용합니다.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="timestamp"
id="message_ID"
partner="partner_key">
<!-- Either Success or Issues will be populated. -->
<Success/>
<Issues>
<Issue code="issue_code" status="issue_type">issue_description</Issue>
</Issues>
</TransactionResponse>
요소 및 속성
TransactionResponse (Property Data)
메시지에는 다음과 같은 요소와 속성이 있습니다.
요소 / @Attribute | 발생 횟수 | 유형 | 설명 |
---|---|---|---|
TransactionResponse | 1 | Complex element | 수신된 거래 요청 메시지의 성공 또는 문제를 나타내는 루트 요소입니다. |
TransactionResponse / @timestamp | 1 | DateTime | 이 메시지의 생성 날짜 및 시간입니다. |
TransactionResponse / @id | 1 | string | 연결된 거래 메시지의 고유 식별자입니다. |
TransactionResponse / @partner | 1 | string | 이 메시지의 파트너 계정입니다. |
TransactionResponse / Success | 0..1 | Success | 경고, 오류 또는 실패 없이 트랜잭션 메시지가 성공적으로 처리되었음을 나타냅니다.
각 메시지에 |
TransactionResponse / Issues | 0..1 | Issues | 트랜잭션 메시지를 처리하는 동안 발생한 하나 이상의 문제를 위한 컨테이너입니다.
각 메시지에 |
TransactionResponse / Issues / Issue | 1..n | Issue | 트랜잭션 메시지를 처리하는 동안 발생한 경고, 오류 또는 실패에 관한 설명입니다. 이러한 문제에 관한 자세한 내용은 피드 상태 오류 메시지를 참고하세요. |
TransactionResponse / Issues / Issue / @code | 1 | integer | 문제의 식별자입니다. |
TransactionResponse / Issues / Issue / @status | 1 | enum | 발생한 문제의 유형입니다. 유효한 값은 |
예
성공
다음은 처리가 완료된 거래 메시지에 대한 응답입니다.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Success/>
</TransactionResponse>
문제
다음은 오류로 인해 처리되지 않은 거래 메시지에 대한 응답입니다.
<?xml version="1.0" encoding="UTF-8"?>
<TransactionResponse timestamp="2020-05-18T16:20:00-04:00"
id="12345678"
partner="partner_key">
<Issues>
<Issue code="1001" status="error">Example</Issue>
</Issues>
</TransactionResponse>