5.7 KiB
5.7 KiB
领星新品测量接口说明
依据开发环境实际成功请求整理。接口属于领星 WMS 内部网关接口,需要携带已经登录领星 WMS 后取得的 Token 和 Cookie。账号、密码、Token、Cookie 不写入本文档。
1. 业务流程
墨家上传不带 # 的 SKU 后,按以下流程处理:
墨家 SKU 测量数据
↓
查询领星新品 SKU(US01、US02 分别查询)
↓
精确匹配 productSku 或 barcode
↓
maintained = 1:禁止再次维护,记录失败原因
maintained = 0:调用新品测量维护接口
↓
记录同步成功或失败
箱唛(boxCode 包含 #)继续走现有箱唛测量逻辑,不调用本文档接口。
2. 查询 SKU
请求
POST https://wms.xlwms.com/gateway/wms/newProduct/page
Content-Type: application/json
Authorization: Bearer {token}
Cookie: {领星登录Cookie}
请求体:
{
"barcode": "A120133-A-TK",
"current": 1,
"customerCode": "",
"keyword": "A120133-A-TK",
"multiKeyword": "",
"searchType": "barcode",
"size": 20,
"whCode": "US01"
}
US02 查询时只替换:
"whCode": "US02"
成功响应示例
{
"code": 200,
"data": {
"records": [
{
"tenantCode": "1189",
"whCode": "US01",
"customerCode": "1189060",
"customerName": "DF067",
"skuId": "",
"productSku": "A120133-A-TK",
"productName": "(压缩)2026新款30CM耶稣玩偶",
"productLname": "",
"barcode": "A120133-A-TK",
"length": 23.000,
"lengthBs": 9.055,
"width": 15.000,
"widthBs": 5.906,
"height": 3.500,
"heightBs": 1.378,
"sizeUnit": "cm",
"weight": 0.150,
"weightBs": 0.331,
"weightUnit": "kg",
"wmsLength": 0.000,
"wmsLengthBs": 0.000,
"wmsWidth": 0.000,
"wmsWidthBs": 0.000,
"wmsHeight": 0.000,
"wmsHeightBs": 0.000,
"wmsSizeUnit": "cm",
"wmsWeight": 0.000,
"wmsWeightBs": 0.000,
"wmsWeightUnit": "kg",
"wmsUnitMark": 0,
"maintainer": "",
"wmsMaintenanceTime": "",
"maintained": 0
}
],
"total": 1,
"size": 20,
"current": 1,
"pages": 1
},
"msg": "操作成功"
}
查询规则
code = 200且data.records有记录,才算查询成功。- 查询结果必须精确匹配墨家 SKU:
productSku或barcode等于墨家传入的 SKU。 US01、US02分别查询,不能把一个仓库的匹配结果当作另一个仓库的结果。- 没有匹配记录时,记录失败原因“未匹配到领星 SKU”,不调用维护接口。
- 保存
tenantCode、whCode、customerCode、customerName、productSku、barcode、maintained和当前领星尺寸重量,供页面追踪。
3. 新品测量维护
请求
POST https://wms.xlwms.com/gateway/wms/newProduct/measure
Content-Type: application/json
Authorization: Bearer {token}
Cookie: {领星登录Cookie}
维护请求以查询返回的 SKU 记录为基础,只把 wmsLength、wmsWidth、wmsHeight、wmsWeight 替换为墨家测量值,并保留领星返回的业务标识字段。
成功样例:
{
"barcode": "A120133-A-TK",
"customerCode": "1189060",
"customerName": "DF067",
"height": 3.5,
"heightBs": 1.378,
"length": 23,
"lengthBs": 9.055,
"maintained": 0,
"maintainer": "",
"productLname": "",
"productName": "(压缩)2026新款30CM耶稣玩偶",
"productSku": "A120133-A-TK",
"sizeUnit": "in",
"skuId": "",
"tenantCode": "1189",
"weight": 0.15,
"weightBs": 0.331,
"weightUnit": "lb",
"whCode": "US01",
"width": 15,
"widthBs": 5.906,
"wmsHeight": "5",
"wmsHeightBs": 1.969,
"wmsLength": "24.5",
"wmsLengthBs": 9.646,
"wmsMaintenanceTime": "",
"wmsSizeUnit": "cm",
"wmsUnitMark": 0,
"wmsWeight": "0.15",
"wmsWeightBs": 0.331,
"wmsWeightUnit": "kg",
"wmsWidth": "18.5",
"wmsWidthBs": 7.283
}
成功响应
{
"code": 200,
"data": {},
"msg": "操作成功"
}
data 为空对象时,只要 code = 200,即视为维护成功。
4. 单次维护限制
领星新品测量只能维护一次,不能重复覆盖:
- 查询结果
maintained = 0:允许调用/measure。 - 查询结果
maintained = 1:禁止调用/measure,记录失败原因“领星 SKU 已维护,不能重复维护”。 - 已经提交过维护但本地没有收到明确成功响应时,不应盲目重试;应重新查询确认
maintained和wmsMaintenanceTime。 - 本地页面保留墨家测量原始数据和同步失败原因,但不允许通过编辑或重推绕过领星的单次维护限制。
5. 单位处理
当前成功样例中,查询返回的基础字段和维护请求中的单位字段存在差异:
- 查询结果:
sizeUnit = cm、weightUnit = kg; - 成功维护请求样例:
sizeUnit = in、weightUnit = lb; - WMS 维护字段:
wmsSizeUnit = cm、wmsWeightUnit = kg; wmsLength、wmsWidth、wmsHeight、wmsWeight在样例中以字符串传递。
因此 Java 实现不能根据字段名自行换算或把所有字段统一成同一单位。应以查询返回的原始记录作为模板,仅按领星接口约定替换 WMS 维护字段;具体换算规则以领星成功请求和后续验证结果为准。
6. 本地同步状态建议
| 状态 | 含义 |
|---|---|
| 待同步 | 墨家已接收,尚未完成查询和维护 |
| 同步成功 | /measure 返回 code = 200 |
| 同步失败 | 未匹配 SKU、已维护、查询失败、维护失败或登录态失效 |
失败记录必须保存脱敏后的失败原因;不保存完整 Token、Cookie、账号、密码或验证码。