거래 (숙박 시설 데이터)

요청

구문

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의 계정 설정 페이지에 표시된 '파트너 키' 값입니다.

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

Transaction / PropertyDataSet 1.. PropertyDataSet 단일 숙박 시설의 객실 유형 및 패키지를 정의하는 컨테이너입니다.
Transaction / PropertyDataSet / @action 0..1 enum

객실 요금 정의에 적용할 업데이트 유형입니다.

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

  • overlay : 속성에 대해 이전에 정의된 모든 <RoomData><PackageData>를 대체합니다. 현재 메시지의 <RoomData><PackageData>만 유효합니다.
  • delta : 이전에 정의되지 않은 <RoomData><PackageData>를 추가하거나 기존 <RoomData><PackageData>를 수정합니다.

이 속성은 선택사항이며 지정하지 않으면 기본값은 delta입니다.

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

방을 설명합니다.

참고: <RoomData> 또는 <PackageData> 중 하나 이상이 필요합니다.

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> 요소의 컨테이너입니다.

<AllowablePackageIDs>가 지정된 경우 상위 <RoomData> 요소의 <RoomID>로 식별된 객실 유형은 <AllowablePackageID> 요소로 정의된 요금제와만 결합할 수 있습니다.

<AllowablePackageIDs>가 지정되지 않으면 상위 <RoomData> 요소의 <RoomID>로 식별된 객실 유형을 모든 요금제와 결합할 수 있습니다.

<AllowablePackageIDs> 또는 <AllowableRoomIDs> 중 하나만 사용합니다.

Transaction / PropertyDataSet / RoomData / AllowablePackageIDs / AllowablePackageID 1..n AllowablePackageID 이 객실 유형과 결합할 수 있는 요금제의 PackageID를 지정합니다. 요금제는 패키지, 요금, 예약 가능 여부의 조합으로 정의됩니다. PackageID는 OTA_HotelRateAmountNotifRQ 및 OTA_HotelAvailNotifRQ 메시지의 RatePlanCode에 해당합니다.
Transaction / PropertyDataSet / RoomData / Capacity 0..1 integer 객실에 실제로 숙박할 수 있는 성인 및 어린이의 최대 수입니다. 이 값은 요금과 함께 전송하는 모든 NumberOfGuests 값보다 크거나 같아야 합니다.

<Capacity> 값은 199 사이의 양의 정수여야 합니다(양 끝값 포함). 예는 여기를 참고하세요.

참고: <Capacity>가 설정되지 않으면 허용되는 탑승자 수가 무제한으로 간주됩니다. 이 필드가 설정되지 않고 ExtraGuestCharges 또는 AdditionalGuestAmounts가 정의된 경우 숙박 인원에 관계없이 가격을 생성할 수 있습니다. ExtraGuestCharges 또는 AdditionalGuestAmounts가 정의된 경우 잘못된 숙박 인원 옵션에 가격이 표시되지 않도록 <Capacity>를 설정하는 것이 좋습니다.

Transaction / PropertyDataSet / RoomData / AdultCapacity 0..1 integer 객실에 실제로 숙박할 수 있는 성인 최대 인원입니다. 이 값은 요금과 함께 전송하는 모든 NumberOfGuests 값보다 크거나 같아야 합니다.

<AdultCapacity> 값은 199 사이의 양의 정수여야 합니다(양 끝값 포함). 예는 여기를 참고하세요.

Transaction / PropertyDataSet / RoomData / ChildCapacity 0..1 integer 객실에 실제로 숙박할 수 있는 어린이의 최대 수입니다.

<ChildCapacity>의 값은 1과 99 사이의 양의 정수여야 합니다(양 끝값 포함). 예는 여기를 참고하세요.

Transaction / PropertyDataSet / RoomData / OccupancySettings 0..1 OccupancySettings 객실의 숙박 인원 요구사항을 제한하거나 수정할 수 있는 설정입니다.

<OccupancySettings> 요소는 다음과 같은 하위 요소를 사용합니다.

  • <MinOccupancy>: 객실에 숙박할 수 있는 최소 투숙객 수입니다. 예를 들어 이 값이 2로 설정된 경우 이 객실을 1인 투숙객으로 예약할 수 없습니다.

    <MinOccupancy>의 값은 1과 99 사이의 양의 정수여야 합니다(양 끝값 포함).

  • <MinAge>: 객실에 숙박하는 모든 투숙객의 최소 연령입니다. 예를 들어 이 값이 18로 설정된 경우 모든 투숙객이 18세 이상인 그룹에 대해서만 이 객실을 예약할 수 있습니다.

    <MinAge>의 값은 0과 99 사이의 양의 정수여야 합니다(양 끝값 포함).

<OccupancySettings>
  <MinOccupancy>2</MinOccupancy>
  <MinAge>16</MinAge>
</OccupancySettings>

모든 하위 요소를 포함할 필요는 없습니다.

Transaction / PropertyDataSet / RoomData / PhotoURL 0..n PhotoURL 지정된 객실 또는 객실 패키지의 사진에 대한 URL 및 자막(선택사항)입니다. 객실 또는 객실 번들에 <PhotoURL>를 두 개 이상 지정할 수 있습니다.

이 요소는 다음과 같은 하위 요소를 사용합니다.

  • <URL>: 사진의 위치를 지정합니다. 위치는 공개되어야 하며 (방화벽 뒤에 있어서는 안 됨) 프로토콜 (http://)을 포함해야 합니다.
  • <Caption>: 사진의 자막을 정의합니다. 이 요소는 Textlanguage의 두 가지 필수 속성이 있는 단일 하위 요소 <Text>를 사용합니다. Text 속성은 자막이고 language 속성은 en와 같은 두 글자 언어 코드를 지정합니다.
<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

일본 호텔 객실의 스타일을 나타냅니다.

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

  • western: 침대가 있는 서양식 객실입니다.
  • japanese: futon beds가 있는 일본식 객실입니다.
  • japanese_western: 서양식 침대와 일본식 futon이 모두 있는 일본식 서양식 객실입니다.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object 방의 수만큼 <Bed>를 포함합니다. 일본식 이불은 여기에 포함되지 않습니다.

<Bed>에는 다음과 같은 속성이 있습니다.

  • size (선택사항): 유효한 값은 single, semi_double, double, queen, king입니다.
<Bed>에는 다음과 같은 하위 요소가 있습니다.
  • <Width> (선택사항): 침대 너비를 지정합니다. 값이 cmunit 속성과 침대 너비가 정수 센티미터인 number 속성이 있어야 합니다.
  • <Length> (선택사항): 침대 길이를 지정합니다. 값이 cmunit 속성과 침대 길이가 정수(센티미터)인 number 속성이 있어야 합니다.
예:
<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_smokingsmoking입니다.
Transaction / PropertyDataSet / RoomData / RoomFeatures / BathAndToilet 0..1 Object 객실의 욕조 및 변기에 관한 정보를 포함합니다.

속성은 다음과 같습니다.

  • relation (선택사항): 욕실과 화장실이 서로 어떻게 배치되어 있는지 나타냅니다. 유효한 값은 together입니다(예: 욕실과 화장실이 모두 같은 공간에 있는 욕실). separate도 유효한 값입니다(예: 욕실과 화장실이 각각 전용 공간에 있는 욕실). 객실에 욕조와 화장실이 모두 없는 경우 이 속성을 설정하면 안 됩니다.

이 요소는 선택적으로 다음 하위 요소를 사용합니다.

  • <Bath> (선택사항): 이 요소가 있으면 객실에 욕조가 있음을 나타냅니다.

    속성은 다음과 같습니다.

    • bathtub (선택사항): 욕실에 욕조가 있음을 나타냅니다. 유효한 값은 0(또는 false) 및 1 (또는 true)입니다.
    • shower (선택사항): 욕실에 샤워 시설이 있음을 나타냅니다. 유효한 값은 0 (또는 false) 및 1 (또는 true)입니다.
  • <Toilet> (선택사항): 이 요소가 있으면 이 객실에 화장실이 있음을 나타냅니다.

    속성은 다음과 같습니다.

    • electronic_bidet (선택사항): 화장실에 전자 비데가 있음을 나타냅니다. 유효한 값은 0 (또는 false) 및 1 (또는 true)입니다.
    • mobility_accessible (선택사항): 장애인 편의시설이 있는 화장실임을 나타냅니다. 유효한 값은 0(또는 false) 및 1 (또는 true)입니다.

예:

<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 유효한 옵션은 다음과 같습니다.

<AirportView/>
<BayView/>
<BeachView>/>
<CastleView/>
<CityView/>
<CountrysideView/>
<CourtyardView/>
<DuneView/>
<ForestView/>
<GardenView/>
<GolfCourseView/>
<HarborView/>
<LagoonView/>
<LakeView/>
<MarinaView/>
<MountainView/>
<NatureView/>
<OceanView/>
<ParkView/>
<PartialOceanView/>
<PisteView/>
<PoolView/>
<PyramidView/>
<RiverView/>
<StreetView/>

Transaction / PropertyDataSet / PackageData 0..n PackageData

실제 객실 설명에 포함되지 않는 요금 특징 및 약관을 설명하는 요소의 컨테이너입니다.

참고: <RoomData> 또는 <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> 요소의 컨테이너입니다.

<AllowableRoomIDs>가 지정된 경우 상위 <PackageData> 요소의 <PackageID>로 식별된 요금제는 <AllowableRoomID> 요소로 정의된 객실 유형과만 결합할 수 있습니다.

<AllowableRoomIDs>가 지정되지 않으면 상위 <PackageData> 요소의 <PackageID>로 식별된 요금제를 모든 객실 유형과 결합할 수 있습니다.

<AllowablePackageIDs> 또는 <AllowableRoomIDs> 중 하나만 사용합니다.

Transaction / PropertyDataSet / PackageData / AllowableRoomIDs / AllowableRoomID 1..n AllowableRoomID 이 요금제와 결합할 수 있는 객실 유형의 RoomID를 지정합니다. 객실 유형은 <RoomData> 요소에 정의됩니다.
Transaction / PropertyDataSet / PackageData / Refundable 0..1 Refundable 요금을 전액 환불 가능 또는 취소 가능으로 표시할 수 있습니다. 제공하지 않으면 환불에 관한 정보가 표시되지 않습니다.

참고: 모든 속성을 설정하는 것이 좋습니다. 하나 이상의 속성이 설정되지 않으면 피드 상태 경고 메시지가 생성됩니다.

속성을 설정하지 않으면 요금이 환불 가능으로 표시되지 않습니다.

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

  • available 또는 refundable_until_days이 설정되지 않으면 요금이 환불 가능으로 표시되지 않습니다.
  • available0 또는 false이면 다른 속성은 무시됩니다. 다른 속성 중 하나 또는 둘 다 설정되어 있더라도 요금이 환불 가능으로 표시되지 않습니다.
Transaction / PropertyDataSet / PackageData / Refundable / @available 1 boolean (필수) 요금이 전액 환불을 허용하는지 나타내려면 1 또는 true로 설정합니다. 그렇지 않으면 0 또는 false로 설정합니다.
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_days 0..1 integer (availabletrue인 경우 필요) 체크인 전에 전액 환불을 요청할 수 있는 일 수를 지정합니다. refundable_until_days의 값은 0과 330 사이의 정수여야 합니다(양 끝값 포함).
Transaction / PropertyDataSet / PackageData / Refundable / @refundable_until_time 0.. Time (availabletrue인 경우 적극 권장) 전액 환불 요청이 처리될 수 있는 가장 늦은 시간(호텔 현지 시간 기준)을 지정합니다. 이 속성을 refundable_until_days와 결합하여 '체크인 2일 전 오후 4시까지 환불 가능'과 같이 지정할 수 있습니다. refundable_until_time가 설정되지 않으면 기본값은 자정입니다.
Transaction / PropertyDataSet / PackageData / BreakfastIncluded 0..1 boolean 이 객실 유형에 조식이 포함되는지 여부를 지정합니다. 유효한 값은 0 (또는 false) 및 1(또는 true)입니다.

<BreakfastIncluded> 대신 <Meals>를 사용하는 것이 좋습니다.

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 이 패키지의 식사에 관한 정보를 포함합니다.

<Meals> 요소는 다음과 같은 속성이 있는 선택적 하위 요소인 <Breakfast><Dinner>를 사용합니다.

  • included (필수): 요금에 조식/저녁 식사가 포함된 경우 1 (또는 true)로 설정하고, 그렇지 않은 경우에는 0 또는 false로 설정합니다.
  • in_room (선택사항): 투숙객이 숙박하는 객실에서 아침식사/저녁식사를 할 수 있는 옵션이 있는 경우 1 (또는 true)로 설정하고, 그렇지 않은 경우 0 (또는 false)로 설정합니다.
  • in_private_space (선택사항): 투숙객이 다른 투숙객과의 접촉을 피할 수 있는 스페이스(투숙객이 숙박하는 객실을 제외)에서 아침식사/저녁식사를 할 수 있는 옵션이 있는 경우 1 (또는 true)로 설정합니다. 그 외의 경우에는 0 (또는 false)로 설정합니다.
  • buffet (선택사항): 조식/저녁 식사가 뷔페로 제공되는 경우 1 (또는 true)로 설정하고 그렇지 않은 경우 0 (또는 false)로 설정합니다.

선택적 속성은 included가 true인 경우에만 사용됩니다.

식사 필터 (no meals, breakfast only, dinner only, breakfast and dinner)가 작동하려면 <Breakfast><Dinner> 모두에 included 속성을 제공해야 합니다.

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에서 표시된 메시지를 수신하면 KingDouble 객실 유형이 더 이상 존재하지 않습니다. 패키지 데이터를 삭제하면 거래 (숙박 시설 데이터), OTA_HotelRateAmountNotifRQ, OTA_HotelAvailNotifRQ 메시지에서 정의된 전체 요금제에 영향을 미칩니다 (동일한 PackageID 값 참조). 따라서 PackageID_2PackageID_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 경고, 오류 또는 실패 없이 트랜잭션 메시지가 성공적으로 처리되었음을 나타냅니다.

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

TransactionResponse / Issues 0..1 Issues 트랜잭션 메시지를 처리하는 동안 발생한 하나 이상의 문제를 위한 컨테이너입니다.

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

TransactionResponse / Issues / Issue 1..n Issue 트랜잭션 메시지를 처리하는 동안 발생한 경고, 오류 또는 실패에 관한 설명입니다. 이러한 문제에 관한 자세한 내용은 피드 상태 오류 메시지를 참고하세요.
TransactionResponse / Issues / Issue / @code 1 integer 문제의 식별자입니다.
TransactionResponse / Issues / Issue / @status 1 enum

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

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

성공

다음은 처리가 완료된 거래 메시지에 대한 응답입니다.

<?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>