概览
ARI 交易(房源数据)消息用于定义每个房源的客房类型和套餐(或费率方案)的相关信息。每种客房类型数据都包含唯一标识符 (RoomID
)、本地化名称、说明和客房照片的网址。每个套餐数据都包含唯一标识符 (PackageID
)、本地化名称、说明、入住人数和增值服务。
您可以使用交易消息执行以下操作:
- 为一个或多个媒体资源定义数据。
- 为每项房源定义客房类型和套餐信息。
- 控制产品。
此外,您还可以设置操作来执行以下操作:
为房源添加客房类型和套餐。
从房源中移除客房类型和套餐。
为套餐或房源添加积分和奖励计划。
如需查看交易消息示例,请参阅交易(房源数据)示例。
必需和可选元素
XML 参考文档提供了必需元素和可选元素的说明。如需详细了解属性和子元素,请参阅交易(房源数据)元素和属性。
语法和架构
创建交易消息时,请使用交易(房源数据)语法示例作为参考,以确保您采用的格式正确无误。
您可以使用第三方 XML 工具(例如 xmllint)根据已发布的架构验证 Feed,然后再将其提交给 Google。如需了解交易消息架构,请参阅酒店广告架构。
指南
请遵循以下准则来处理交易消息:
- 操作:
delta
:用于添加或更新新的客房类型和套餐(房价方案)。overlay
:用于将房源的所有客房类型和套餐替换为新集合。必须包含您仍希望销售的所有客房类型和价格方案的信息。- 语言支持:
为“名称”“说明”和“字幕”字段指定 1 到 2 种语言(英语和房源所在地的当地语言,如有需要)。如果需要,您可以添加多于两种语言。
- 客房类型和套餐:
更新客房类型或套餐时,您必须发送该客房类型或套餐的所有相关信息。例如,添加照片时,您还必须添加名称和说明。
<AllowablePackageIDs>
和<AllowableRoomIDs>
是可选的,如果未设置,则可以组合使用任何客房类型和费率方案。您仍然需要发送包含客房类型和费率方案 ID 的空房情况和房价。借助这些元素,您可以控制产品,以及停用系统不再支持的组合。每当客房类型或套餐发生变化,或者需要添加有关客房类型或套餐的重要详细信息时,请向 Google 发送交易消息更新。
- 积分:
如需在套餐中包含或排除奖励计划,请与 Google 设置会员积分配置。系统会显示与该套餐相关联的已赚取积分。详细了解积分。
使用
<MilesIncluded>
元素定义或更新您的会员回馈活动。如需了解详情,请参阅交易(房源数据)。积分可以包含在<PackageData>
中。
示例
本部分提供了一个使用必需和可选元素的 ARI 交易消息的基本示例。如需添加或更新客房类型和套餐,您可以使用 delta
操作来添加或更新客房类型和套餐,也可以使用 overlay
操作来替换所有客房类型和套餐定义(删除旧条目)。
您需要为“名称”“说明”和“字幕”字段指定 1 到 2 种语言(英语和房源所在地的当地语言,如有需要)。然后,添加房源数据信息,包括指向照片的链接。
对于 <PropertyID>
和 <RoomID>
,请使用您在系统中为费率方案和客房类型使用的 ID(分别)。确保与您的系统保持一致至关重要,这有助于确保 Google 正确显示您的价格和数据。
准备好文件后,您必须通过 POST 消息将其发送到以下端点:https://www.google.com/travel/hotels/uploads/property_data
如需详细了解如何推送/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
操作移除客房类型。
以下是包含“King”和“Queen”客房类型的原始 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:如何使用 AllowablePackageIDs 控制商品
当套餐按客房类型分组时,如何控制商品(客房类型和套餐的组合)?
说明
您有某些套餐仅适用于特定客房类型。例如,如果您的房源有四种客房类型(包括总统套房)和六种不同的套餐,但只有少数套餐符合使用总统套房的条件,您可以指定套餐的适用条件。
解决方案
使用 <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>