文档中心 > API类目 > 酒店API(新)

taobao.xhotel.multiplerates.update (复杂价格推送接口(批量全量))

批量更新复杂价格 涵盖了taobao.xhotel.rates.update的功能

公共参数

请求参数

名称 类型 是否必须 示例值 更多限制 描述
rate_quota_map String 必须 [ { "useRoomInventory": false, "outRoomId": "abc", "ratePlanCode": "WHL03", "vendor": "", "currencyCode": "CNY", "childAges": "2~5", "childRule": [ { "calculateType": "1", "ageRange": "4~6", "numRange": "1", "feeType": "10" }, { "calculateType": "2", "ageRange": "2~6", "numRange": "2", "feeType": "0.2" } ], "priceCalendar": [ { "date": "2017-04-16", "inventoryPrice": [ { "lengthOfStay": 1, "rateSwitch": 0, "quota": 100, "price": [ { "occupancy": 5, "basePrice": 310000, "taxAndFee": 100, "twoTax": 200, "threeTax": 300, "fourTax": 400, "fiveTax": 500 } ] } ] } ], "rateCalDataList":[ { "nod":1, "nop":1, "breakfastCal":"[{\"date\":\"yyyy-MM-dd\",\"startDate\":\"yyyy-MM-dd\",\"endDate\":\"yyyy-MM-dd\",\"breakfast_count\":0},{\"date\":\"yyyy-MM-dd\",\"startDate\":\"yyyy-MM-dd\",\"endDate\":\"yyyy-MM-dd\",\"breakfast_count\":1}]", "cancelPolicyCal":"[{\"date\":\"yyyy-MM-dd\",\"startDate\":\"yyyy-MM-dd\",\"endDate\":\"yyyy-MM-dd\",\"cancel_policy\":{\"cancelPolicyType\":1} },{\"date\":\"yyyy-MM-dd\",\"startDate\":\"yyyy-MM-dd\",\"endDate\":\"yyyy-MM-dd\",\"cancel_policy\":{\"cancelPolicyType\":4,\"policyInfo\":{\"48\":10,\"24\":20}}}]" } ] } ] 批量全量修改价格和库存信息,会以请求参数中的数据覆盖掉原来报价库存数据。A:useRoomInventory:是否使用room级别共享库存,可选值 true false 2、false时:使用rate级别私有库存,此时如果填写了库存,那么会写入库存表。B:date 日期必须为 T---T+180 日内的日期(T为当天),且不能重复C:basePrice 基本价格 int类型 取值范围1-99999999 单位为分D:quota 库存 int 类型 取值范围 0-999(数量库存) 支持状态库存, 60000(状态库存关) 61000(状态库存开);E:occupancy为入住人数,范围为1~10;F:lengthofStay为连住天数,范围为1~10;G:taxAndFee为总税费;H:addBedPrice为加床价;I:addPersonPrice为加人价;J:rateSwitch为开关房状态,1为开房,0为关房。K:支持outRoomId和ratePlanCode来更新报价库存。L:childnum为儿童人数。M:infantnum为婴儿人数。N:ckinSwitch为入住开关(0,关闭;1,打开) O:ckoutSwitch为离店开关 (0,关闭;1,打开) P:lockStartTime锁库存开始时间 Q:lockEndTime锁库存截止时间。 childRule:儿童价规则。其中calculateType为计算类型1为固定金额,2为房费的百分比;ageRange为适用儿童的年龄范围,格式为:2~10,即适用2到10岁的儿童;childRange适用几位儿童,格式为1即适用1位儿童;feeType费用类型,如果calculateType=1那么feeType存一固定金额,单位为分,如果calculateType=2那么feeType存房费的百分比,格式为0.2。childAges:儿童年龄范围,格式为2~10,意味着所有儿童价格规则中的适用儿童年龄必须在这个范围之内。rateCalDataList:存储日历化早餐和退改。breakfastCal、cancelPolicyCal格式与原rp格式相同。
standard_xitem_infos String 可选 [ { "actionType": "BOUND", "outXCode": "123456", "subTypeCode": "70000_200", "name": "下午茶更新", "poi": "杭州西湖", "poiAddition": "杭州西湖addition", "subProducts": [ { "name": "早餐", "amount": 1,#如果子产品是早餐,份数建议与rate_quota_map这个价库字段的nop一致;若加赠早餐场景下,份数可自行控制 "price": 38 } ], "availableSubAmount": 3, "priceValue": { "price": 100, "sellingPrice": 100 }, "useRule": { "receptionTime": [ { "startTime": "00:00", "endTime": "01:00" }, { "startTime": "02:00", "endTime": "03:00" }, { "startTime": "03:00", "endTime": "04:00" } ], "adultAmount": 2, "childAmount": 1, "childHeight": "120", "childAge": "8", "bookingRule": 1, "bookingMinAmount": 2, "bookingUnit": 1, "contactNumber": "05316776678", "acquireType": 1, "effectiveType": 0, "additionalReminder": "补充提醒" }, "actionDimension": 1, "startDateTime": "2023-07-13 00:00:01", "endDateTime": "2024-07-13 00:00:01", "displayStartTime": "2023-07-13 00:00:01", "displayEndTime": "2024-07-13 00:00:01", "availableWeekDays": "1,2,3,4,5,6,7", "amount": 2, "childAmount": 2 } ] 是一个JSONArray 字符串。actionType :操作类型,枚举 :BOUND:绑定,UNBOUND解绑; outXcode 外部Code直连场景下需求的x元素编码 ; subTypeCode x 元素子类目;name:x元素名称;productPic: 图片;{url图片url;mainPic是否为主图};poi:位置信息;subProducts:X元素子产品信息;{name:子产品名称,amount:数量,price:单价}priceValue价格信息;{retailPrice:门市价,sellingPricet:售卖价,currencyCode:销售币种默认CNY;valueCertificatePic价值凭证图片};saleRule售卖规则;{receptionTime:接待时间段:支持多个,adultAmount建议成人数量,childAmount建议儿童数量,childHeight儿童身高限制;childAge儿童身高限制;bookingRule预约类型,枚举0无需预约/1需预约;bookingAmount最小预约单位(预约类型为1时有);bookingUnit预约单位,枚举天、小时(预约类型为1时有);contactPhone联系电话;acquireType获取方式,枚举1:酒店前台,2:其他;effectiveType是否入住期间有效,枚举,0入住期间,1入住首日;additionalReminder补充提醒};actionDimension使用维度 1:每间房维度 2:每间夜维度;startDateTime上架日期;displayStartTime权益可用开始时间;displayEndTime权益可用结束时间;amount打包数量;childAmount儿童打包数量;nop:如果推送x元素包含早餐,nop建议与早餐份数保持一致;若加赠早餐场景下,份数可自行控制;子产品份数:子产品中若包含早餐,份数建议与rate_quota_map中的nop一致;若加赠早餐场景下,份数可自行控制。

响应参数

名称 类型 示例值 描述
gid_and_rpid_occupancy_lengthofstay String [] 1000-12300-1-1 商品id,房价id,入住人数,连住天数
warnmessage String [{gid:123,rpId:234,occupancy:2,lengthofstay:2,code:-1,msg:参数格式错误}] 批量更新的时候,如果部分更新失败,会展示部分失败的原因

请求示例

  • JAVA
  • .NET
  • PHP
  • CURL
  • Python
  • C/C++
  • NodeJS
TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret);
XhotelMultipleratesUpdateRequest req = new XhotelMultipleratesUpdateRequest();
req.setRateQuotaMap("[     {         \"useRoomInventory\": false,         \"outRoomId\": \"abc\",         \"ratePlanCode\": \"WHL03\",         \"vendor\": \"\",         \"currencyCode\": \"CNY\",         \"childAges\": \"2~5\",         \"childRule\": [             {                 \"calculateType\": \"1\",                 \"ageRange\": \"4~6\",                 \"numRange\": \"1\",                 \"feeType\": \"10\"             },             {                 \"calculateType\": \"2\",                 \"ageRange\": \"2~6\",                 \"numRange\": \"2\",                 \"feeType\": \"0.2\"             }         ],         \"priceCalendar\": [             {                 \"date\": \"2017-04-16\",                 \"inventoryPrice\": [                     {                         \"lengthOfStay\": 1,                         \"rateSwitch\": 0,                         \"quota\": 100,                         \"price\": [                             {                                 \"occupancy\": 5,                                 \"basePrice\": 310000,                                 \"taxAndFee\": 100,                                 \"twoTax\": 200,                                 \"threeTax\": 300,                                 \"fourTax\": 400,                                 \"fiveTax\": 500                             }                         ]                     }                 ]             }         ],       \"rateCalDataList\":[         {         	\"nod\":1,           	\"nop\":1,           	\"breakfastCal\":\"[{\\"date\\":\\"yyyy-MM-dd\\",\\"startDate\\":\\"yyyy-MM-dd\\",\\"endDate\\":\\"yyyy-MM-dd\\",\\"breakfast_count\\":0},{\\"date\\":\\"yyyy-MM-dd\\",\\"startDate\\":\\"yyyy-MM-dd\\",\\"endDate\\":\\"yyyy-MM-dd\\",\\"breakfast_count\\":1}]\",         	\"cancelPolicyCal\":\"[{\\"date\\":\\"yyyy-MM-dd\\",\\"startDate\\":\\"yyyy-MM-dd\\",\\"endDate\\":\\"yyyy-MM-dd\\",\\"cancel_policy\\":{\\"cancelPolicyType\\":1} },{\\"date\\":\\"yyyy-MM-dd\\",\\"startDate\\":\\"yyyy-MM-dd\\",\\"endDate\\":\\"yyyy-MM-dd\\",\\"cancel_policy\\":{\\"cancelPolicyType\\":4,\\"policyInfo\\":{\\"48\\":10,\\"24\\":20}}}]\"         }       ]     } ]");
req.setStandardXitemInfos("[ { \"actionType\": \"BOUND\", \"outXCode\": \"123456\", \"subTypeCode\": \"70000_200\", \"name\": \"下午茶更新\", \"poi\": \"杭州西湖\", \"poiAddition\": \"杭州西湖addition\", \"subProducts\": [ { \"name\": \"早餐\", \"amount\": 1,#如果子产品是早餐,份数建议与rate_quota_map这个价库字段的nop一致;若加赠早餐场景下,份数可自行控制 \"price\": 38 } ], \"availableSubAmount\": 3, \"priceValue\": { \"price\": 100, \"sellingPrice\": 100 }, \"useRule\": { \"receptionTime\": [ { \"startTime\": \"00:00\", \"endTime\": \"01:00\" }, { \"startTime\": \"02:00\", \"endTime\": \"03:00\" }, { \"startTime\": \"03:00\", \"endTime\": \"04:00\" } ], \"adultAmount\": 2, \"childAmount\": 1, \"childHeight\": \"120\", \"childAge\": \"8\", \"bookingRule\": 1, \"bookingMinAmount\": 2, \"bookingUnit\": 1, \"contactNumber\": \"05316776678\", \"acquireType\": 1, \"effectiveType\": 0, \"additionalReminder\": \"补充提醒\" }, \"actionDimension\": 1, \"startDateTime\": \"2023-07-13 00:00:01\", \"endDateTime\": \"2024-07-13 00:00:01\", \"displayStartTime\": \"2023-07-13 00:00:01\", \"displayEndTime\": \"2024-07-13 00:00:01\", \"availableWeekDays\": \"1,2,3,4,5,6,7\", \"amount\": 2, \"childAmount\": 2 } ]");
XhotelMultipleratesUpdateResponse rsp = client.execute(req, sessionKey);
System.out.println(rsp.getBody());

响应示例

  • XML示例
  • JSON示例
<xhotel_multiplerates_update_response>
    <gid_and_rpid_occupancy_lengthofstay>
        <string>1000-12300-1-1</string>
    </gid_and_rpid_occupancy_lengthofstay>
    <warnmessage>[{gid:123,rpId:234,occupancy:2,lengthofstay:2,code:-1,msg:参数格式错误}]</warnmessage>
</xhotel_multiplerates_update_response>

异常示例

  • XML示例
  • JSON示例
<error_response>
    <code>50</code>
    <msg>Remote service error</msg>
    <sub_code>isv.invalid-parameter</sub_code>
    <sub_msg>非法参数</sub_msg>
</error_response>

错误码解释

错误码 错误描述 解决方案
isv.invalid-parameter:FORMAT_ERROR 参数格式不正确 请检查输入参数格式
isv.invalid-parameter:ERROR 参数不正确 请检查输入参数
isv.permission-error:NO_PERMISSIONS_ERROR 权限不够、非法访问 请申请权限或者使用正确的账号操作
isv.biz-error: RATEPLAN_NOT_EXIST_ERROR 定价信息关联的房价不存在 请检查输入参数中对应的房价编码是否存在
isv.biz-error:BIZ_ERROR 业务异常 请稍后重试
isv.invalid-parameter:NOTNULL 参数不能为空 参数不能为空,请检查必填项
isv.remote-service:CONVERT_ERROR 转换对象时出错 请检查输入参数
isv.invalid-parameter:ROOM_TYPE_NOT_EXIST 房型不存在 房型不存在,请检查参数中的房型编码是否已经存在
isp.top-remote-connection-timeout top链接超时 top链接超时
isp.session-not-exist session信息不存在 session信息不存在,请检查,确保输入正确的session信息
isv.invalid-parameter: RATE_UPDATE_PARAM_DATA_SIZE_ERROR 批量更新房价时,数据长度超长。一次最多允许更新10个rate 批量更新房价时,数据长度超长。一次最多允许更新10个rate 请截取以后重试。

API工具

如何获得此API

FAQ

返回
顶部