方法名称
hotel.data.inventory
使用说明
本接口对比实时hotel.detail接口缺少折扣优惠,价格竞争力低,非必要尽量不对接此接口。
•本接口用于获取所有库存信息,在需要获取所有库存信息或库存信息有变化时使用。
•[注意] 本接口不能获取万豪集团酒店的库存数据;万豪集团酒店的报价请使用hotel.detail接口。
•库存是否可用的判断:
o通过HotelId、HotelCode、RoomTypeId、Date能唯一确定一个库存数据,
o判断Status:
False:已经售罄,库存不可用
True:还未售罄。然后判断Amount是否足够,不够再判断是否可以超售
o判断库存使用时间(废弃,见新校验逻辑):
检查当前时间是否在StartDate、EndDate的区间内
如果入住日是当天,检查当前时间的小时分钟部分是否在StartTime和EndTime的区间内
关于库存使用时间的新校验逻辑
首先需要根据hotel.data.rp接口获取hotelcode所属的SupplierType,如果SupplierType为空,默认为A
SupplierType为A类供应商判断逻辑如下:
获取当前的预定日期(年月日)
判断OverBooking是否可超售
可超售 EndDate=EndDate+12小时
不可超售 EndDate不变
若当前预定日期在StartDate和EndDate之间,则说明日期满足,再判断预定时间,若不满足,则不可定;
获取当前的预定时间(时分秒)
如果是当天预定当天,须判断当前的预定时间是否在StartTime和EndTime之间,若在,则说明时间满足,库存可定;否则不可定
如果不是当天预定当天,无须判断;
SupplierType为B类供应商的判断逻辑如下:
获取当前的预定日期+时间(年月日时分秒)
如果EndTime为23:59:59
EndDate = EndDate +6小时
否则
EndDate = EndDate - 1天 + EndTime
判断当前的预定日期+时间(年月日时分秒) 是否在StartDate和EndDate之前,如果在,则库存可定,如果不在,则不可定。
•即时确认的判断逻辑:
如果开始时间比结束时间大,则当天均不可即时确认;
开始结束时间的格式为:"00:00","23:59"
输入参数
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
HotelIds | 酒店编号 | String | N | 最多10个,逗号分隔 |
HotelCodes | 酒店编码 | String | Y | 最多10个,逗号分隔。如果输入这个参数,请确保这些HotelCodes都是HotelIds(只能输入一个)所属的 |
RoomTypeId | 供应商房型编号 | String | Y | V1.10后 对应搜索接口中的RatePlan.RoomTypeId。 加入了RoomTypeId的过滤返回结果可能对应多个HotelCode的还需要核对使用哪个HotelCode。 |
StartDate | 开始日期 | DateTime | N | 返回的结果中开始日期和结束日期间只要有一天在此范围内就会返回, 使用yyyy-MM-dd格式,例如:2022-12-09 |
EndDate | 结束日期 | DateTime | N | 使用yyyy-MM-dd格式,例如:2022-12-09 |
IsNeedInstantConfirm | 是否返回即时确认数据 | Boolean | Y | 建议不使用,返回速度会变慢。 |
响应结果
根节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
Inventories | 库存集合 | Inventory[] | Y | 包含多个Inventory节点 |
Inventory节点
节点 | 名称 | 类型 | 可为空 | 说明 |
---|---|---|---|---|
HotelID | 酒店ID | String(8) | N | 这几个属性是业务主键。 HotelCode关联搜索接口的RatePlan.HotelCode Date表示的是某天的库存。 |
RoomTypeId | 房型ID | String(10) | N | |
HotelCode | 酒店编码 | String(8) | N | |
Date | 库存时间 | Date | N | |
Status | 库存状态 | Boolean | N | False-不可用 True-可用 |
Amount | 库存数量 | Int | N | 剩余的可知库存数量 |
OverBooking | 超售状态 | Int | N | 0---可超售,1—不可超售。可超售的时候即使Amount等于0也是可以继续销售的。 |
StartDate | 可用开始日期 | Date | N | 库存可用开始日期 |
EndDate | 可用结束日期 | Date | N | 库存可用结束日期 |
StartTime | 可用开始时间 | Time | N | 预订当天库存,须校验库存可用开始时间(错误,见新校验逻辑) |
EndTime | 可用结束时间 | Time | N | 预订当天库存,须校验库存可用结束时间; 若为23:59:59则为无限制;(错误,见新校验逻辑) |
IsInstantConfirm | 库存是否支持即时确认 | Boolean | Y | V1.22新增,具体使用请见接口使用说明 |
IC_BeginTime | 即时确认可用开始时间 | Time | Y | |
IC_EndTime | 即时确认可用结束时间 | Time | Y |
输入示例
https://api-test.elong.com/rest?timestamp=1489988696&format=json&method=hotel.data.inventory &signature=d70cd5e12df22e6e0fe8f4ec46ab3fd8&user={userid}&data= {"Version":"1.28","Local":"zh_CN","Request": {"StartDate":"2017-3-21","EndDate":"2017-3-22","HotelIds":"40101025"}}
输出示例
{ "Code":"0", "Result":{ "Inventories":[ { "HotelID":"40101025", "RoomTypeId":"1114", "HotelCode":"40101025", "Date":"2017-03-21T00:00:00 08:00", "Status":true, "Amount":3, "OverBooking":0, "StartDate":"2016-04-13T14:07:36 08:00", "EndDate":"2017-03-21T23:59:59 08:00", "StartTime":"00:00:00", "EndTime":"18:00:00" } ] } "Guid":"4b59297d-1d60-457c-89f6-c8b2ee730aea" }
常见错误码
错误码 | 解释 | 解决方法 |
---|---|---|
H000997 | 未知异常 | 重试,反复出现请联系技术支持人员 |