요청
구문
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>
<!-- Add Loyalty point information -->
<MilesIncluded>
<LoyaltyCampaignID>campaign-ID</LoyaltyCampaignID>
<!-- (Optional) Use <NumberOfMiles> if the rate plan earns fixed loyalty rewards-->
<NumberOfMiles>integer</NumberOfMiles>
</MilesIncluded>
<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 / MilesIncluded | 0..1 | MilesIncluded | 요금제 또는 패키지가 정의된 방식에 따라 패키지에 포인트 멤버십 정보를 추가합니다. 요금제를 정의하는 <PackageData> 요소 내에서 <MilesIncluded> 요소를 지정합니다.
<MilesIncluded>에는 다음 하위 요소가 있습니다.
|
| 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>
<MilesIncluded>
<LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
</MilesIncluded>
<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개 있는 일반적인 객실을 나타냅니다. 객실에는 성인이 한 명 이상 있어야 하므로 어린이 수용 인원은 총 수용 인원보다 한 명 적습니다.
<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>