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