创建价格源
若要提供必应酒店定价和可用性数据,请创建包含价格源的 XML 文档。 价格源包含检查日期、停留时长和定价的列表。
价格源最多可以包含 180 天的提前预订,每个预订可以指定最多 14 晚的住宿。 检查日期和停留时长称为行程。 如果指定最大行程数,则消息将包含 2,520 条行程。
使用 GZip 压缩) ,价格源限制为 100 MB 的未压缩数据或 10 MB 的压缩数据 (。 若要减少网络流量,应发送压缩数据。
价格源应仅包含要添加或更新的行程,不包括自上次发送消息以来未更改的行程。
文档必须使用 UTF-8 编码,并且必须符合 事务 XSD。
重要
必须阅读并遵循所有酒店价格广告政策。 有关策略列表,请参阅 试点计划策略。
注意
必应不支持所有事务 XSD 元素。 必应忽略消息中它不支持的任何元素或属性。 价格源参考仅包括必应支持的元素和属性。
注意
消息必须按照 Transaction XSD (中定义的顺序指定元素,或如引用) 所示。
顶级事务元素
价格源包含单个顶级 Transaction 元素。
<Transaction timestamp="2017-05-25T20:44:56-04:00" id="de0be689-d094-406e-
8027-724309deb373">
必须指定 timestamp
和 id
属性。
属性 timestamp
应标识提交消息的时间。 必应使用时间戳来确保它只处理最新的行程。 例如,如果必应处理时间戳为 14:10 的消息,然后处理时间戳为 14:09 的消息,则必应仅处理 14:09 邮件中未包含在 14:10 消息中的行程。
属性 id
是用户定义的 ID,用于唯一标识向广告客户发送的消息。 广告客户使用该 ID 在属性源状态报告列表中标识消息。
指定行程列表
元素 Transaction
包含 Result 元素的列表,它定义的每个行程都有一个。 该消息应仅包括新行程或已更改的行程。
下面显示了一个 Result
指定所需子元素的元素。
<Result>
<Property>13579</Property>
<Checkin>2017-06-10</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">159.99</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">4.00</OtherFees>
</Result>
该 Property
ID 必须与属性源文件中属性的 ID 匹配。 该 Checkin
日期必须在提前 90 天预订时段内,并且 Nights
必须在 1 到 14 范围内。
指定 Baserate
整个住宿时间的成本,而不是每晚房价。
如果允许提前 5 天预订且最多保留 3 晚,则消息将包含 15 Result
个元素。 以下示例显示一天的行程。
<?xml version="1.0" encoding="UTF-8"?>
<Transaction timestamp="2017-05-25T20:44:56-04:00" id="de0be689-d094-406e-
8027-724309deb373">
<Result>
<Property>13579</Property>
<Checkin>2017-05-26</Checkin>
<Nights>1</Nights>
<Baserate currency="USD">159.99</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">4.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="mobile"/>
<PointOfSale id="desktop"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>13579</Property>
<Checkin>2017-05-26</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">159.99</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">4.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="mobile"/>
<PointOfSale id="desktop"/>
</AllowablePointsOfSale>
</Result>
<Result>
<Property>13579</Property>
<Checkin>2017-05-26</Checkin>
<Nights>3</Nights>
<Baserate currency="USD">159.99</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">4.00</OtherFees>
<AllowablePointsOfSale>
<PointOfSale id="mobile"/>
<PointOfSale id="desktop"/>
</AllowablePointsOfSale>
</Result>
</Transaction>
定义 15 个行程后,每个后续消息将仅包括已更改的行程。 例如,定价或可用性更改。
删除行程
若要删除行程,请将其 Baserate
、 Tax
和 OtherFees
元素设置为 -1.00。 必应会自动删除已过日期中检查的行程。
使用可选的 Result 元素
下面显示了一个 Result
包含可选子元素的元素。
<Result>
<Property>13579</Property>
<Checkin>2017-05-26</Checkin>
<Nights>2</Nights>
<Baserate currency="USD">159.99</Baserate>
<Tax currency="USD">20.00</Tax>
<OtherFees currency="USD">4.00</OtherFees>
<ExpirationTimestamp>2017-05-28T09:00:34Z</ExpirationTimestamp>
<ChargeCurrency>deposit</ChargeCurrency>
<Custom1>summer2017</Custom1>
<AllowablePointsOfSale>
<PointOfSale id="mobile"/>
<PointOfSale id="desktop"/>
</AllowablePointsOfSale>
</Result>
使用 ExpirationTimestamp
指定行程的到期日期。 例如,在案例 1 中,提供行程。
案例 1:
今天 = 2018/3/16
CheckInDate = 4/1/2018
ExpirationTimestamp = 2018/3/20
但在案例 2 中,不提供行程。
案例 2:
今天 = 2018/3/21
CheckInDate = 4/1/2018
ExpirationTime = 2018/3/20
ChargeCurrency
使用 元素指定何时向用户收取预订费用。 默认情况下,用户在预订时付费, (这是 Web 选项) 。 此示例使用定金,它要求用户在预订时支付一部分,其余部分稍后 (例如,当他们检查) 。
使用五 Custom
个元素中的一个或多个为销售点中的动态参数提供替换值, (POS) URL。 例如,如果 POS URL 为 https://www.partnerdomain.com?promo=(CUSTOM1) 并将 Custom1
设置为 summer2017,则必应使用的 POS URL 为 https://www.partnerdomain.com?promo=summer2017. 有关详细信息,请参阅 使用动态查询参数。
所有 Custom[1-5] 值的总和限制为最多 1,000 个字符,但请记住,鉴于 URL 的最大长度,实际限制可能较小。
AllowablePointsOfSale
使用 元素指定用户可用于预订的特定 POS URL。 默认情况下,用户可以在合作伙伴的登陆页面源文件中使用任何 POS。 属性 id
必须与源文件中的 POS 匹配。
后续步骤
在发送价格源之前,请确保属性源文件和登陆页文件是最新的。 若要更新这些文件,请与 TAM 联系。 TAM 将数据导入必应后,你可以开始发送价格源。 导入数据之前发送的价格源将失败。
在将价格源发送到必应之前对其进行验证。 有关信息,请参阅 验证价格源。