本接口用于获取酒店的产品详情,在需要获取所有酒店产品和某一个酒店产品更新时使用。
支付方式
分为现付和预付
现付:分为担保与非担保:
担保:分为全额担保和首晚担保,都需要考虑取消的情况,但客户到店依然需要支付房费,担保的费用会退回用户。
预付:预付都是全额预付,也要考虑取消的情况。
现付的担保和预付的全款都需要调用支付功能。
1-返回RatePlan对应的可售卖渠道
2-返回结果中包含钟点房产品,1.32新增。
InvoiceMode
NoSense--全部
Elong--艺龙开票
Hotel--酒店开票
注:该字段只过滤预付产品。
仅用于预付产品的发票开具模式。
V1.34新增
1:特牌2:金牌3:银牌4:蓝牌0:非挂牌
此字段与之后的IsAmountGuarantee字段用法比较特殊,请仔细阅读注意事项中关于这两个字段的说明。
NeedSomeDay、允许变更/取消,需在XX日YY时之前通知
FristNight:首晚
PenaltyType为0,2时,此值为两位小数。
PenaltyType为1是,此值使用时会取整,按整数处理。
06-政府税
99-特殊早餐,有效日期内生效,优先级高于01早餐
当99特殊早餐和01早餐同时存在时,需要根据特殊早餐的有效日期判断哪种早餐生效,即在特殊早餐有效日期内99特殊早餐生效,有效日期外01早餐生效。
HongKong=港澳台客人价,需提示客人“须持港澳台身份证入住”;
ChinaGuest=中宾价,需提示客人“须持中国身份证、护照入住”;
宾客类型的适用人群:
0:不限
1:持中国身份证的居民
2:持回乡证的港澳人士
3:持台胞证的台湾人士
4:持中国护照的侨胞
5:持大陆工作证/居留许可的外籍人士
6:持非中国护照的外籍人士
7:其他
5-手机专享
6-铂涛产品,下单需提供入住人身份证(Identification字段已包含此逻辑,涉及到身份信息验证的可统一按照Identification字段来处理)
17-景酒打包产品,只能与景点门票打包销售,默认不吐出
25-床位房(床位房类型此处已无效,判断床位房请解析RatePlanName或者Room节点的Name字段,其中只要有一个字段包含“床位”字样即为床位房)
99-未知,艺龙内部使用,一般代理可忽略
版本v1.35新增,规定了每个订单最多预订多少间
存在下单订多间不通过,但是一间一间的下单可以下多单的情况,这种情况就是此字段造成的。
为0时默认按照10间处理
默认值:9999
表示本RatePlan是否为限价产品,限价产品必须按照艺龙给出的售价进行售卖,即按照hotel.data.rate接口指定的价格卖给客人。不同限价类型约束规则不同,详见下面PriceLimitedType字段,接入完成后通知商务变更,新校验规则生效。
false---非限价
true---限价
(版本1.36新增)
判断限价时与hotel.data.rate接口中IsPriceLimit字段为或关系,两者有其一为true,均为限价。
v1.31新增
3、建议实际可住时长不足一小时时不要再展示给客人
V1.61版本开始支持钟点房跨天
latestToliveTime大于24时即为钟点房跨天产品(前端具体展示格式可参考同程旅行官网)
限时抢产品规则,只对产品类型为限时抢的产品生效。
周日:0,周一:1,周二:2,周三:3,周四:4,周五:5,周六:6
在服务开始结束日期范围内,周无效代表不可服务
表示可选餐食的类型,多个类型以“,”分割,只有当餐食为固定+动态餐食时才会有值
比如餐食为早餐两份+午餐2份或晚餐2份(到店2选1),该字段有值,为"Lunch,Dinner"
A、担保条件判断优先级说明找到所有的担保规则,在店日期类型的条件优先级最高,入住日期类型的其次,仅返回一条有效的记录。
1.有没有符合条件的在店日期类型的担保条件
2.如果有含在店日期类型的担保条件,将所有在店日期依次判断,找到第一条符合星期条件的记录并返回
3.继续找出有没有符合条件的入住日期类型的担保条件
4.如果有入住日期类型的担保条件,找到第一条符合星期条件的记录并返回
5.担保规则筛选顺序:先判断IsAmountGuarantee和IsTimeGuarantee字段,再根据结果来决定最后判断的字段。IsAmountGuarantee和IsTimeGuarantee字段的详细判断如下:
B、担保规则条件判断说明(RatePlan节点下新增SupplierType,根据此字段区分供应商类别)
A类供应商判别逻辑如下:
1.1:初步筛选出满足“有效日期”、“日期类型”、“周有效”的担保规则列表。
B类供应商判别逻辑如下:
现付规则Case如下:
3间房以上(含3间)命中规则2、3;
3间房以下,命中规则2
3间房以上(含3间),需要担保;
3间房以下,15:00之前到店不需要担保,15:00~次日6:00到店需要担保。
3间房以上(含3间),FirstNightCost;
3间房以下,FirstNightCost
3间房以上(含3间),入住日24点前10个小时前可以免费取消,之后无法变更取消
;
3间房以下,入住日24点前4个小时前可以免费取消,之后无法变更取消。
1间房未命中任何规则;
2间房命中规则4;
3间房以上(含3间)命中规则3;
3间房以上(含3间)命中规则3、4;
1间房不需要担保;
2间房、3间房以上均需担保,故2间房以上(含2间)需要担保
2间房、3间房以上均需担保,故2间房以上(含2间)需要担保;
1间房无担保金额;
2间房FullNightCost;
3间房FirstNightCost
3间房FullNightCost
1间房可以免费取消;
2间房,入住日24点前5个小时可以免费取消,之后无法变更取消;
3间房,入住日24点前10个小时可以变更取消,之后无法变更取消;
1间房命中规则5
2间房以上(含2间)命中规则4;
1间房命中规则5;
2间房以上(含2间)命中规则4、5;
1间房需要担保;
2间房以上(含2间)需要担保;
合并:1间房以上均需担保。
1间房FullNightCost;
2间房以上FullNightCost;
合并:FullNightCost
1间房不可以取消;
2间房以上,入住日24点前5个小时可以免费取消,之后无法变更取消;
2间房以上,不可以取消;
合并:不可变更取消。
C、预付规则条件判断说明(RatePlan节点下新增SupplierType,根据此字段区分供应商类别)
A类供应商判别逻辑如下(不校验“日期类型”):
1.1:只判断第一天是否命中规则,即:拿客人的入住日,判断是否在规则有效期内,同时是否命中“周有效”;
1.3:如果未命中,则认为可以免费取消。
B类供应商判别逻辑如下(不校验“日期类型”):
1.1:判断每一天,即:拿客人入住日~离店日的每一天,判断是否在规则有效期,是否命中“周有效”;
预付规则Case如下:
说明:1:A类供应商,判断第一天,命中规则1,所有逻辑按规则1计算。
罚金:需要判断规则1、规则2哪个罚金多,用哪个。
说明:1:A类供应商,判断第一天,命中规则2,所有逻辑按规则2计算。
B类供应商新规则节点(PrepayRuleExtends、GuaranteeRuleExtends)解析逻辑
2.当同时存在长期规则和特殊规则时,特殊规则优先(hotel.detail、hotel.data.booking无需考虑,给出的即是命中规则)
3.Deadline按入住日24点往前推N分钟,是此段规则结果的EndTime,下一段规则结果的BeginTime;第一段1439280表示无穷小起始
示例:
条件:"ArrivalDate":"2023-07-20","DepartureDate":"2023-07-22","每晚房费":100
case1,限时免费取消,按首晚的50%扣费:
"PrepayRuleExtends":[
{
"StartDate":"2023-07-19T00:00:00+08:00",
"EndDate":"2099-01-01T00:00:00+08:00",
"WeekSet":"1,2,3,4,5,6,7,",
"NoshowPenalty":0,
"PenaltyRuleList":[
"PenaltyType":0,
"PenaltyValue":0,
"Deadline":1439280
},
"PenaltyType":2,
"PenaltyValue":0.5,
"Deadline":600
}
]
case1解析结果:
"PrepayResult":{
"CancelDescription":"您可以在2023年7月20日14:00之前免费取消或变更订单;您在2023年7月21日6:00之前变更或取消,将收取部分房费50元作为违约费用;在2023年7月21日6:00之后变更或取消,将收取全额房费作为违约费用。若您已办理入住,则订单不可变更或取消。",
"CancelTag":"入住日14点前免费取消",
"CancelType":3,
"LadderParseList":[
"BeginTime":1603512000,
"EndTime":1689832800,
"CutType":0,
"CutValue":0,
"Amount":0,
"ShortDesc":"免费取消",
"BeginTimeLocal":1603512000,
"EndTimeLocal":1689832800,
"AmountRmb":0,
"ExchangeRate":1
"BeginTime":1689832800,
"EndTime":1689890400,
"CutType":1,
"CutValue":50
"Amount":50,
"ShortDesc":"¥50",
"BeginTimeLocal":1689832800,
"EndTimeLocal":1689890400,
"AmountRmb":50,
"BeginTime":1689890400,
"EndTime":4102329600,
"CutValue":200,
"Amount":200,
"ShortDesc":"不可取消",
"BeginTimeLocal":1689890400,
"EndTimeLocal":4102329600,
"AmountRmb":200,
case2,限时免费取消,按订单总额比例80%扣费:
"PenaltyValue":0.8,
"Deadline":360
case2解析结果:
"CancelDescription":"您可以在2023年7月20日18:00之前免费取消或变更订单;您在2023年7月21日6:00之前变更或取消,将收取部分房费160元作为违约费用;在2023年7月21日6:00之后变更或取消,将收取全额房费作为违约费用。若您已办理入住,则订单不可变更或取消。",
"CancelTag":"入住日18点前免费取消",
"EndTime":1689847200,
"EndTimeLocal":1689847200,
"BeginTime":1689847200,
"CutValue":160,
"Amount":160,
"ShortDesc":"¥160",
"BeginTimeLocal":1689847200,
"AmountRmb":160,
case3,入住日24点前免费取消:
"WeekSet":"1,3,4,5,6,7,",
case3解析结果:
"CancelDescription":"您可以在2023年7月20日24点之前免费取消或变更订单;在2023年7月21日0:00之后变更或取消,将收取全额房费作为违约费用。若您已办理入住,则订单不可变更或取消。",
"CancelTag":"入住日24点前免费取消",
"EndTime":1689868800,
"EndTimeLocal":1689868800,
"BeginTime":1689868800,
"BeginTimeLocal":1689868800,
case4,不可取消:
"PenaltyValue":1,
case4解析结果:
"CancelDescription":"您的订单一经确认,不可变更或取消;如未能如约入住,将收取全额房费作为违约费用。",
"CancelType":4,
"BeginTime":-28800,
"BeginTimeLocal":-28800,
GuaranteeRuleExtends":[
"StartDate":"2023-07-18T00:00:00+08:00",
"EndDate":"2023-07-20T00:00:00+08:00",
"WeekSet":"1,2,3,4,5,6,7",
"GuaranteeType":2,
"GrtLatestCheckTime":600,
"PenaltyRuleList":
[
"PenaltyValue":1.0,
case5解析结果:
"GuaranteeResult":{
"GuaranteeMoney":0.0
"NeedGuarantee":false,
"CancelDescription":"办理入住前,您可以随时免费取消或变更订单。",
"CancelType":1,
"LadderParseList":
"BeginTime":1689651032,
"CutValue":0.0,
"Amount":0.0,
"AmountRmb":0.0,
"ExchangeRate":1.0
"GuaranteeMoney":200,
"NeedGuarantee":true,
"CancelDescription":"订单确认后,若您取消或变更订单,将收取全额担保金作为违约费用。",
"EndTime":-28800,
D、促销DRR条件判断优先级说明
1.判断日期优先级:预订日期→入住日期→在店日期。
2.判断预订日期的规则:
如果有:符合预订日期:取出此条规则,并计算优惠价。不符合预订日期:继续判断下一条预订规则,直到所有预订规则判断结束。如果没有:结束预订日期规则的判断
3.如果没有符合条件的预订日期规则,则需判断入住日期的规则:
如果有:符合入住日期:取出此条规则,并计算优惠价不符合:继续判断下一条入住规则,直到所有入住日期规则判断结束。如果没有:结束入住日期规则的判断
4.如果没有符合条件的预订日期规则或入住日期规则,则需判断在店日期的规则: