# qm **Repository Path**: pilo/qm ## Basic Information - **Project Name**: qm - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2018-11-01 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # qm接口对接 ## 回调接口文件 QmController ## 商品测试文件 SingleItemTest ## 发货单测试文件 DeliveryOrderTest ## 出货单测试文件 StockOrderTest ## 重要说明: 商品接口itemCode货主唯一
商品ID对接方式
1 商品接口得到wms的id记录到自己的商品表,订单接口中itemId传wmsId
2 所有接口不传itemId,wms通过itemCode匹配(ERP无需记录wmsId,耦合度更小)
关于接口的选择
发货接口适用于电商订单,不可部分发货订单
出库接口适用于2B订单支持部分发货和全发控制
## 接口开发顺序 + 商品接口 4.1 + 入库单接口 4.3 + 入库单反馈接口 4.4 + 出库或发货单接口 4.7或4.9 + 出库或发货单反馈接口 4.8或4.10 并一一对应 + 取消接口 4.14 含所有单据取消 + 退货入库单同步接口 4.5 + 退货入库单确认接口 4.6 + 库存盘点通知4.16或库存异动通知接口4.17 二选一即可(wms发起的损益反馈给ERP) ## 关于多仓多货主说明 1 wms支持 一个APPKEY一个货主(customerId和ownerCode一样) ERP和WMS同步新增货主 wms还需要同步新增奇门配置 2 一个APPKY多个货主(customerId不变ownerCode变,可以使用货主同步接口自动同步货主) ## 2018.1.15更新说明 发货确认接口明细添加返回SN
发货确认接口添加多包裹返回
入库确认接口添加多商品形态返回
出库接口添加单价字段
## 2018.2.5更新说明 库存查询接口添加储位返回 ## 2018.4.25更新说明 添加商城确认接口 ## 2018.4.26更新说明 商品接口添加包装率 ## 2018.5.14更新说明 添加php开发示例 php/test.php ## 2018.6.12更新说明 采购单反馈添加供应商 ## 2018.7.6更新说明 更新上架回调接口 ## 2018.7.20更新说明 更新订单修改接口 ### 开始联调 + 找运维拿到自己的appkey secret customerId 货主编码-ownerCode 仓库编码-warehouseCode + 以商品接口举例修改 SingleItemTest ``` SingleItem singleItem = new SingleItem(); singleItem.setActionType("ADD"); //修改自己的 ownerCode 对应wms货主 singleItem.setOwnerCode("lt"); //修改自己的 warehouseCode 对应wms仓库 singleItem.setWarehouseCode("LTCK"); Item item = new Item(); item.setItemCode("000001"); item.setItemName("000001"); item.setItemType("ZC"); item.setBrandName("xxxx品牌"); item.setBarCode("000001"); singleItem.setItem(item); JAXBContext jc = JAXBContext.newInstance(SingleItem.class); Marshaller ms = jc.createMarshaller(); StringWriter writer = new StringWriter(); ms.marshal(singleItem, writer); String xml = writer.toString(); //修改自己的appKey String appKey = "201804261190"; //修改自己的customerId String qmCustomerId = "lt"; //修改自己的secret String secretKey = "RA8wjgCNocNo99IAd5wFFW93Wll1TuRC"; Map requestParamter = WebUtils.getRequestParameter("singleitem.synchronize", appKey, qmCustomerId); String sign = QimenSignUtils.sign(requestParamter, xml, secretKey); requestParamter.put("sign", sign); String url = "http://c-wms.iask.in:8081/BH_CLIS/qimen" + "?" + QimenSignUtils.joinRequestParams(requestParamter); String result = WebUtils.doQmPost(url, xml); System.out.println("请求URL:" + url + "请求报文:" + xml); System.out.println(result); ```