거래 (속성 데이터) 메시지

개요

ARI 거래 (숙박 시설 데이터) 메시지는 각 숙박 시설의 객실 유형 및 패키지 (또는 요금제)에 관한 정보를 정의합니다. 각 객실 유형 데이터에는 고유 식별자 (RoomID), 현지화된 이름, 설명, 객실 사진 URL이 포함됩니다. 각 패키지 데이터에는 고유 식별자 (PackageID), 현지화된 이름, 설명, 숙박 인원, 부가 가치가 포함됩니다.

거래 메시지를 사용하여 다음 작업을 할 수 있습니다.

  • 하나 이상의 속성에 대한 데이터를 정의합니다.
  • 각 숙박 시설의 객실 유형 및 패키지 정보를 정의합니다.
  • 제공되는 제품 관리

또한 다음과 같은 작업을 실행할 수 있습니다.

  • 숙박 시설에 객실 유형 및 패키지를 추가합니다.
  • 속성에서 객실 유형 및 패키지를 삭제하세요.

트랜잭션 메시지의 예시는 트랜잭션 (숙박 시설 데이터) 예시를 참조하세요.

필수 및 선택 요소

XML 참조는 필수 및 선택적 요소에 대한 설명을 제공합니다. 속성과 하위 요소에 관한 자세한 내용은 트랜잭션 (숙박 시설 데이터) 요소 및 속성을 참고하세요.

구문 및 스키마

트랜잭션 메시지를 만들 때 트랜잭션 (속성 데이터) 구문 예를 참조로 사용하여 올바른 형식을 따릅니다.

Google에 피드를 제출하기 전에 xmllint와 같은 서드 파티 XML 도구를 사용하여 게시된 스키마로 피드를 검증할 수 있습니다. 거래 메시지 스키마는 호텔 광고 스키마를 참고하세요.

가이드라인

거래 메시지에 다음 가이드라인을 따르세요.

조치:

delta: 새로운 객실 유형 및 패키지 (요금제)를 추가하거나 업데이트하는 데 사용합니다.

overlay: 숙박 시설의 모든 객실 유형 및 패키지를 새 세트로 교체하는 데 사용합니다. 판매하려는 모든 객실 유형 및 요금제에 대한 정보를 포함해야 합니다.

언어 지원:

이름, 설명, 자막 필드에 언어 1~2개 (필요한 경우 영어와 현지 언어)를 지정합니다. 필요한 경우 언어를 2개 이상 추가할 수 있습니다.

객실 유형 및 패키지:

객실 유형 또는 패키지를 업데이트할 때 해당 객실 유형 또는 패키지와 관련된 모든 정보를 전송해야 합니다. 예를 들어 사진을 추가할 때는 이름과 설명도 포함해야 합니다.

<AllowablePackageIDs><AllowableRoomIDs>는 선택사항이며, 설정하지 않은 경우 객실 유형과 요금제를 원하는 대로 조합하여 만들 수 있습니다. 객실 유형 및 요금제 ID를 포함하여 예약 가능 여부 및 요금을 전송해야 합니다. 이러한 요소를 사용하면 제품을 제어하고 시스템에서 더 이상 지원하지 않는 조합을 비활성화할 수 있습니다.

객실 유형이나 패키지가 변경되거나 추가해야 하는 객실 유형이나 패키지에 관한 중요한 세부정보가 있을 때마다 Google에 트랜잭션 메시지 업데이트를 전송합니다.

이 섹션에서는 필수 및 선택적 요소를 사용하는 ARI 트랜잭션 메시지의 기본 예를 제공합니다. 객실 유형과 패키지를 추가하거나 업데이트하려면 delta에 작업을 사용하여 객실 유형 및 패키지를 추가 또는 업데이트하거나 overlay 작업을 사용하여 모든 객실 유형 및 패키지 정의를 대체합니다 (이전 항목 삭제).

이름, 설명, 자막 필드에 1~2개 언어 (영어, 필요한 경우 속성에 현지 언어)를 지정해야 합니다. 그런 다음 사진 링크를 포함한 속성 데이터 정보를 추가합니다.

<PropertyID><RoomID>의 경우 시스템 내에서 요금제와 객실 유형에 사용하는 것과 동일한 ID를 각각 사용합니다. Google에서 가격과 데이터를 올바르게 표시하려면 시스템과의 일관성이 중요합니다.

파일이 준비되면 https://www.google.com/travel/hotels/uploads/property_data 엔드포인트에 POST 메시지를 통해 Google에 파일을 보내야 합니다.

메시지를 푸시/POST하는 방법에 관한 자세한 내용은 메시지 푸시를 참조하세요.

다음 예에서는 delta 작업을 사용하여 트랜잭션 메시지를 설정하는 방법을 보여줍니다.

<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="202X-XX-XXT00:00:00-0X:00" id="12345678" partner="partner_key">
  <PropertyDataSet action="delta">
    <Property>PROPERTYID</Property>
      <RoomData>
        <RoomID>ROOMID</RoomID>
        <Name><Text text="ROOM NAME" language="en"/></Name>
        <Description>
          <Text text="ROOM DESCRIPTION TEXT" language="en"/>
        </Description>
        <Capacity>4</Capacity>
        <PhotoURL>
          <Caption><Text text="ROOM PHOTO CAPTION TEXT" language="en"/></Caption>
          <URL>https://LINK TO PHOTO</URL>
        </PhotoURL>
      </RoomData>
      <PackageData>
        <PackageID>BASE</PackageID>
        <Name><Text text="Internet Special" language="en"/></Name>
        <Description><Text text="Direct Booking through Hotel Website" language="en"/></Description>
        <Refundable available="true" refundable_until_days="2" refundable_until_time="12:00"/>
      </PackageData>
  </PropertyDataSet>
</Transaction>

overlay 작업을 사용하고, 기존 숙박 시설 데이터에 객실 유형과 패키지를 추가하고, 기존 객실 유형과 패키지를 삭제하는 방법과 같은 더 많은 예는 거래 (숙박 시설 데이터) 예시를 참고하세요.

방법

이 섹션에서는 거래 메시지를 보낼 때 발생할 수 있는 시나리오에 대한 해결 방법을 제공합니다.

시나리오 1: 객실 유형 데이터를 삭제하는 방법

기존 객실 유형 또는 패키지 데이터를 삭제하려면 어떻게 해야 하나요?

설명

킹 및 퀸 객실을 비롯한 여러 객실 유형을 숙박 시설에 보냈습니다. 리모델링 중에는 모든 퀸 객실 유형을 이용할 수 없으며 킹룸 유형만 이용할 수 있습니다.

해결 방법

  • 삭제되거나 비활성화된 객실 유형 및 패키지 ID의 경우 1박 예약 가능 여부, 요금 또는 인벤토리를 업데이트할 필요가 없습니다.
  • 객실 유형이나 패키지가 삭제되었거나 비활성화된 경우 action="overlay"를 사용하여 새 트랜잭션 메시지를 전송합니다. 이 메시지에는 아직 활성 상태인 객실 유형과 패키지만 포함되고 삭제된 객실 유형이나 패키지는 제외됩니다.

샘플

다음 XML 스니펫은 overlay 작업을 사용하여 객실 유형을 삭제하는 방법을 보여줍니다.

다음은 킹 및 퀸 객실 유형이 포함된 기존 delta 작업입니다.

  <PropertyDataSet action="delta">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</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>
    <RoomData>
      <RoomID>Queen</RoomID>
      <Name>
        <Text text="Queen" language="en"/>
      </Name>
      <Capacity>2</Capacity>
      <!-- Additional RoomData child elements omitted. -->
    </RoomData>
  </PropertyDataSet>

그런 다음 overlay를 설정하여 퀸 객실 유형을 삭제하고 킹 객실 유형을 유지할 수 있습니다.

  <PropertyDataSet action="overlay">
    <Property>Property_1</Property>
    <RoomData>
      <RoomID>King</RoomID>
      <Name>
        <Text text="King" language="en"/>
      </Name>
      <Capacity>2</Capacity>
    </RoomData>
    <PackageData>
      <PackageID>Standard</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>
  </PropertyDataSet>

시나리오 2: AllowablePackageID를 사용하여 제품을 제어하는 방법

패키지를 객실 유형별로 그룹화할 때 제품 (객실 유형 및 패키지 조합)을 관리하려면 어떻게 해야 하나요?

설명

특정 객실 유형만 이용할 수 있는 특정 패키지가 있습니다. 예를 들어 숙박 시설에 4가지 객실 유형 (프레지덴셜 스위트룸 포함)과 6개의 서로 다른 패키지가 있지만 일부 패키지만 프레지덴셜 스위트룸을 사용할 수 있는 경우 자격요건을 지정할 수 있습니다.

해결 방법

<AllowablePackageIDs>를 사용하여 패키지에 포함되는 제품을 지정하는 업데이트된 트랜잭션 메시지를 보냅니다.

샘플

이 XML 스니펫은 <AllowablePackageIDs>를 사용하여 특정 객실 유형에 사용되는 패키지를 지정하는 방법을 보여줍니다. 펜트하우스 스위트룸 객실 유형에는 펜트하우스 올인클루시브 패키지 또는 무료 조식 패키지만 허용되지만 킹 스위트룸 유형의 객실 유형에는 킹 올인클루시브 패키지 또는 반려동물 패키지만 허용됩니다.

<RoomData>
  <RoomID>penthouse_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>penthouse_all_inclusive</AllowablePackageID>
    <AllowablePackageID>free_breakfast</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<RoomData>
  <RoomID>king_suite</RoomID>
  <AllowablePackageIDs>
    <AllowablePackageID>king_all_inclusive</AllowablePackageID>
    <AllowablePackageID>pet_friendly</AllowablePackageID>
  </AllowablePackageIDs>
  <!-- Additional child elements omitted. -->
</RoomData>
<PackageData>
  <PackageID>penthouse_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>free_breakfast</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>king_all_inclusive</PackageID>
</PackageData>
<!-- Additional child elements omitted. -->
<PackageData>
  <PackageID>pet_friendly</PackageID>
</PackageData>

시나리오 3: AllowableRoomID를 사용하여 제품을 제어하는 방법

객실 유형이 패키지별로 그룹화될 때 제품 (객실 유형과 패키지 조합)을 제어하려면 어떻게 해야 하나요?

설명

객실 유형 및 패키지 조합이 더 이상 제품으로 판매되지 않거나 새 패키지에 포함되는 항목을 관리하려는 경우 예를 들어 바다 전망의 킹 및 퀸 객실과 같은 특정 객실 유형만 패키지를 사용하여 지정하려고 합니다.

해결 방법

<AllowableRoomIDs> 요소를 사용하여 패키지에 포함된 정확한 제품을 지정하는 업데이트된 거래 메시지를 보냅니다.

샘플

이 XML 스니펫은 <AllowableRoomID>를 사용하여 패키지에 오션뷰 킹 및 퀸 객실 유형을 지정하는 방법을 보여줍니다.

<PackageID>RO</PackageID>
<AllowableRoomIDs>
  <AllowableRoomID>king_oceanview</AllowableRoomID>
  <AllowableRoomID>queen_oceanview</AllowableRoomID>
</AllowableRoomIDs>