요청
문법
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> 메시지의 <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명 적습니다.
<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>
false
응답
문법
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>