거래 (숙박 시설 데이터) 메시지

개요

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

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

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

또한 다음과 같은 작업을 수행하도록 작업을 설정할 수 있습니다.

  • 숙박 시설에 객실 유형과 패키지를 추가합니다.

  • 숙박 시설에서 객실 유형과 패키지를 삭제합니다.

  • 패키지 또는 숙박 시설에 포인트 멤버십, 리워드 프로그램을 추가합니다.

거래 메시지의 예는 거래 (숙박 시설 데이터) 예를 참고하세요.

필수 요소 및 선택 요소

XML 참조에서는 필수 요소와 선택적 요소를 설명합니다. 속성 및 하위 요소에 관한 자세한 내용은 거래 (숙박 데이터) 요소 및 속성을 참고하세요.

구문 및 스키마

거래 메시지를 만들 때 거래 (숙박 시설 데이터) 구문 예를 참고하여 올바른 형식을 따르고 있는지 확인하세요.

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

가이드라인

트랜잭션 메시지에 다음 가이드라인을 사용하세요.

액션 아이템:

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

overlay: 속성의 모든 객실 유형과 패키지를 새 세트로 대체하는 데 사용합니다. 여전히 판매하려는 모든 객실 유형과 요금제의 정보를 포함해야 합니다.

언어 지원:

이름, 설명, 자막 필드에 사용할 언어를 1~2개 지정합니다 (영어, 필요에 따라 숙박 시설의 현지 언어). 필요한 경우 두 개 이상의 언어를 추가할 수 있습니다.

객실 유형 및 패키지:

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

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

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

적립 포인트:

패키지에 리워드 프로그램을 포함하거나 제외하려면 Google과 함께 포인트 구성 설정을 진행하세요. 이 패키지와 연결된 획득한 포인트가 표시됩니다. 적립 포인트에 대해 자세히 알아보세요.

<MilesIncluded> 요소를 사용하여 포인트 캠페인을 정의하거나 업데이트합니다. 자세한 내용은 거래(숙박 데이터)를 참고하세요. 적립 포인트는 <PackageData>와 함께 포함될 수 있습니다.

이 섹션에서는 필수 요소와 선택적 요소를 사용하여 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의 야간 이용 가능 여부, 요금 또는 인벤토리를 업데이트할 필요가 없습니다.
  • 객실 유형 또는 패키지가 삭제되거나 비활성화된 경우 여전히 활성 상태인 객실 유형 및 패키지만 포함하고 삭제된 객실 유형 또는 패키지는 제외하는 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를 설정하여 Queen 객실 유형을 삭제하고 King 객실 유형을 유지할 수 있습니다.

  <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: 허용된 패키지 ID를 사용하여 제품을 제어하는 방법

패키지가 객실 유형별로 그룹화된 경우 제품 (객실 유형과 패키지의 조합)을 어떻게 관리하나요?

설명

특정 객실 유형에서만 사용할 수 있는 패키지가 있습니다. 예를 들어 속성에 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: AllowableRoomIDs를 사용하여 제품을 제어하는 방법

패키지별로 객실 유형이 그룹화된 경우 제품 (객실 유형과 패키지의 조합)을 어떻게 관리하나요?

설명

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

솔루션

<AllowableRoomIDs> 요소를 사용하여 패키지에 포함된 정확한 제품을 지정하는 업데이트된 트랜잭션 메시지를 전송합니다.

샘플

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

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