交易 (資源資料) 訊息

總覽

ARI 交易 (資源資料) 訊息定義了每個房源的房型和套裝行程 (或房價方案) 的相關資訊。每種房型資料都含有專屬 ID (RoomID)、本地化名稱、說明和客房相片網址。每個套件資料都包含專屬 ID (PackageID)、本地化名稱、說明、可住人數和增值。

您可以使用交易訊息執行以下操作:

  • 為一或多項資源定義資料。
  • 定義每個屬性的房型和包裹資訊。
  • 控管產品。

此外,您還可以設定可執行下列動作:

  • 在房源中新增房型和包裹。
  • 從資源中移除房型和包裹。

如需交易訊息的範例,請參閱交易 (資源資料) 範例

必要和選用元素

XML 參考資料提供必要及選用元素的說明。如要進一步瞭解屬性和子元素,請參閱「交易 (資源資料) 元素和屬性」一文。

語法和結構定義

建立交易訊息時,請使用交易 (資源資料) 語法範例做為參考,確保遵循正確的格式。

您可以使用第三方 XML 工具 (例如 xmllint) 使用已發布的結構定義來驗證動態饋給,再提交給 Google。如需瞭解交易訊息結構定義,請參閱飯店廣告結構定義

規範

請依照以下準則處理交易訊息:

行動:

delta:用於新增或更新新的房型和套裝方案 (房價方案)。

overlay:使用新組合取代屬性的所有房型和套裝方案。你必須針對仍要銷售的所有房型和房價方案提供相關資訊。

支援的語言:

在「名稱」、「說明」和「字幕」欄位指定一到兩種語言 (如果有英文,屬性可使用當地語言)。您可以視需要新增兩種以上的語言。

房型和套裝行程:

更新房型或套件時,您必須傳送該房型或套件的所有相關資訊。舉例來說,新增相片時,您還必須提供相片的名稱和說明。

<AllowablePackageIDs><AllowableRoomIDs> 為選用項目,如未設定,則可建立房型和房價方案的任意組合。但仍須提供包含房型和房價方案 ID 的空房資訊和房價。您可以利用這些元素控管產品,以及停用系統不再支援的組合。

每當房間類型或包裹發生變更,或是需要新增的房型或套件等重要詳細資料時,都傳送交易訊息更新給 Google。

範例

本節提供使用必要和選用元素,提供 ARI 交易訊息的基本範例。如要新增或更新房型和包裹,您可以使用 delta 動作來新增或更新房型和包裹,或使用 overlay 來取代所有房型和套件定義 (刪除舊項目)。

您必須為「名稱」、「說明」和「字幕」欄位指定一到兩種語言 (英文,以及視需要為屬性指定當地語言)。然後新增房源資料資訊,包括相片連結。

針對 <PropertyID><RoomID>,請分別針對房價方案和房型類型使用系統內的 ID。與系統的一致性是確保 Google 正確顯示價格和資料的關鍵。

備妥檔案後,您必須透過 POST 訊息,將檔案傳送給 Google:https://www.google.com/travel/hotels/uploads/property_data

如要進一步瞭解如何推送/發布訊息,請參閱「推送訊息」。

以下範例說明如何使用 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:如何移除房型資料

如何移除現有的房型和/或包裹資料?

說明

您為房源傳送多種房型,包括國王和皇后區的房型。重新翻新期間不提供所有 Queen 房型,且目前僅提供國王客房類型。

解決方法

  • 您不需要針對已移除或停用的房型和套件 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 來移除「加大雙人」房間類型,並保留「國王」客房類型:

  <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 種房型 (包括總統套房),以及六種不同套件,但只有少數套件適用總統套件,您可以指定資格。

解決方法

使用 <AllowablePackageIDs> 傳送更新後的交易訊息,指定套件中包含哪些產品。

範例

這個 XML 程式碼片段說明如何使用 <AllowablePackageIDs> 指定搭配特定房型的套件。在本例中,Penthouse 套房房型僅支援 Penthouse 全包式套裝方案或免費早餐套件,而 King 套房類型則只允許國王全包式套裝方案或寵物友善套裝方案。

<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> 在套件中指定 Oceanview King 和 Queen 房型類型。

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