거래 (숙박 시설 데이터)

요청

구문

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

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

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

<PropertyDataSet>는 한 번만 전송하는 것이 좋으며 수정이 필요한 경우에만 업데이트해야 합니다.

Transaction / PropertyDataSet / @action 0..1 enum

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

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

  • overlay :은 속성에 대해 이전에 정의된 모든 <RoomData><PackageData>을 대체합니다. 현재 메시지의 <RoomData><PackageData>만 유효합니다.
  • delta : 이전에 정의되지 않은 <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: 이불 침대가 있는 일본식 객실입니다.
  • japanese_western: 서양식 침대와 일본식 이불이 모두 있는 일본 서양식 객실입니다.
Transaction / PropertyDataSet / RoomData / RoomFeatures / Beds 0..1 Object 방에 있는 만큼의 <Bed>를 포함합니다. 일본식 요는 여기에 포함되지 않습니다.

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

  • size (선택사항): 유효한 값은 single, semi_double, double, queen, king입니다.
<Bed>에는 다음 하위 요소가 있습니다.
  • <Width> (선택사항): 침대 너비를 지정합니다. cm 값이 있는 unit 속성과 침대의 너비가 정수 센티미터인 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_smoking, smoking입니다.
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 / MilesIncluded 0..1 MilesIncluded 요금제 또는 패키지가 정의된 방식에 따라 패키지에 포인트 멤버십 정보를 추가합니다. 요금제를 정의하는 <PackageData> 요소 내에서 <MilesIncluded> 요소를 지정합니다. <MilesIncluded>에는 다음 하위 요소가 있습니다.
  • LoyaltyCampaignID: Google에서 구성되고 업데이트된 특정 포인트 캠페인을 식별하는 고유 ID입니다. 호텔 가격에 포인트가 추가됩니다.

    <MilesIncluded> 요소를 포함하려면 충성도 캠페인 구성에 캠페인 ID를 구성해야 합니다. Google에서 결과에 포인트가 표시되는 방식에 관한 구체적인 세부정보는 포인트 캠페인 구성에 따라 결정됩니다.

    <MilesIncluded>
      <LoyaltyCampaignID>my_campaign</LoyaltyCampaignID>
    </MilesIncluded>

    참고: 드물지만 <MilesIncluded> 요소 아래에 <NumberOfMiles>를 포함하여 여정과 관계없이 계획에서 항상 고정된 포인트가 적립되도록 지정할 수 있습니다. <PackageData>에서 <MilesIncluded>에 대해 자세히 알아보세요.

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>
      <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에서 표시된 메시지를 수신하면 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개 있는 일반적인 객실을 나타냅니다. 객실에는 성인이 한 명 이상 있어야 하므로 어린이 수용 인원은 총 수용 인원보다 한 명 적습니다.

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