前端对接冷库暂存花材

冷库库存转代卖

运营端转代卖两个接口 + 仓库小程序最终扎数确认,含口径规则与报错文案

端
运营后台 / 仓库小程序
后端服务
admin / supplier
更新
2026-07-31
接口数
7

Markdown 原文(给 AI 用):https://doc.xfun.fun/cold-convert-sale-api.md

客服将客户不想要的冷库暂存花材转为平台代卖。运营后台新增 2 个接口,仓库小程序在现有出库流程上增加最终扎数确认。所有接口均为 POST + JSON,通用约定(登录态、返回结构 R)与现有冷库暂存接口一致。

业务流程与规则

两阶段流程

说明

权限复用现有权限点:预填信息 = 冷库查看权限,确认转代卖 = 冷库操作权限,不新增权限项。

两种暂存类型的口径差异

裸花暂存(storeType=2)包裹暂存(storeType=1)
转出粒度支持部分转出,按扎数扣减整库存转出,全部在库包裹一起锁定
可转上限(预填接口 maxBunchNum)当前剩余暂存扎数,必有值发货单总扎数(打包时点快照),可能为 null —— 前端显示「-」且提交时不做前端校验
客服填写扎数校验≤ 剩余暂存扎数快照有值时 ≤ 快照;快照为 null 不校验
仓库出库最终扎数≤ 客服审批扎数,且 ≤ 当前剩余;扣完出清,有剩余则回「待发货」继续暂存(需客服重新确认发货)≤ 客服审批扎数;包裹全部置已出库
注意

不支持转代卖的情况城市仓货架暂存(ware_id>0,跨多客户)直接拦截;已存在待出库任务的库存需先完成或撤销。

枚举变更速查

outType 出库方式(新增值)

值含义
1关联发货单
2直接出库
3转代卖 新增

历史出库记录、暂存出库列表等所有带 outType 的接口天然支持值 3,筛选参数无需改动。任务状态枚举不变:10 待出库 · 20 已出库 · 30 已撤销

运营后台端(客服)

POST/cold/convert-sale/info转代卖预填信息

新增

点「转代卖」弹窗前调用,返回暂存类型与可转扎数上限。同时做资格预检——不满足条件(城市仓货架、已有待出库任务、没有在库包裹等)会直接报错,前端 toast 错误信息即可,避免弹窗填完提交才被拒。

请求参数

字段类型必填说明
coldStockIdLong必填冷库库存 id(暂存列表行的 id)

返回 data

字段类型说明
storeTypeInteger暂存类型 1:包裹 2:裸花
maxBunchNumInteger可转扎数上限。裸花=当前剩余暂存扎数;包裹=发货单总扎数快照,可为 null(前端显示「-」,输入框不做上限校验)

示例

text
// 请求
{ "coldStockId": 1024 }

// 返回(裸花)
{ "code": 200, "data": { "storeType": 2, "maxBunchNum": 15 } }

// 返回(包裹,快照查不到)
{ "code": 200, "data": { "storeType": 1, "maxBunchNum": null } }

POST/cold/convert-sale确认转代卖

新增

生成待出库的转代卖任务。包裹暂存会锁定该库存 全部在库包裹;实际出库由仓库小程序完成。返回 data 为任务 id。

请求参数

字段类型必填说明
coldStockIdLong必填冷库库存 id
bunchNumInteger必填转代卖扎数,正整数(≥1)
remarkString可选备注(转代卖原因或操作说明),≤255 字

业务报错文案(toast 展示即可)

示例

text
// 请求
{ "coldStockId": 1024, "bunchNum": 10, "remark": "客户不要了,转平台代卖" }

// 返回
{ "code": 200, "data": 88 }   // data = 出库任务 id

POST/cold/out/cancel撤销出库任务

复用

转代卖任务待出库期间的撤销 完全复用现有撤销接口,入参出参不变。撤销后:包裹解锁回「暂存中」,裸花库存回「待发货」;历史出库记录中该任务显示 outType=3 及撤销信息。

POST/cold/out/records历史出库记录

字段变更

入参不变(outType 筛选传 3 即可查转代卖记录)。返回行新增/调整字段:

字段类型变更说明
finishBunchNumInteger新增仓库确认最终出库扎数(转代卖任务,已出库后有值;其他任务为 null)
outTypeInteger枚举扩展1:关联发货单 2:直接出库 3:转代卖
outBunchNumInteger语义扩展原为裸花暂存出库扎数;转代卖任务为客服填写的转代卖扎数,包裹暂存也有值

POST/cold/stock/page暂存列表

字段变更

返回行新增字段,用于在列表上给待出库的转代卖库存打标签:

字段类型变更说明
outTaskTypeInteger新增最新任务的出库方式 1:关联发货单 2:直接出库 3:转代卖(无任务时为 null;=3 时前端显示「转代卖」标签)

仓库小程序端

POST/cold/mini/out/finish点击出库

字段变更

入参新增 bunchNum。任务为转代卖(outType=3)时前端必须让仓库人员填写最终出库扎数;其他任务类型不传。照片必传、备注选填等原有规则不变。

入参新增字段

字段类型必填说明
bunchNumInteger转代卖任务必填最终出库扎数,正整数。裸花任务出库后:扣完 → 库存出清;有剩余 → 剩余扎数回「待发货」继续暂存

业务报错文案

示例

text
// 转代卖任务出库请求
{
  "outTaskId": 88,
  "imageUrls": "https://cdn.example.com/a.jpg,https://cdn.example.com/b.jpg",
  "remark": "已搬到代卖区",
  "bunchNum": 8
}

POST/cold/mini/out/page暂存出库列表

字段变更

入参不变,转代卖任务会自然出现在待出库/已出库列表中。返回行新增/调整字段:

字段类型变更说明
finishBunchNumInteger新增仓库确认最终出库扎数(转代卖任务,已出库后有值)
outTypeInteger枚举扩展1:关联发货单 2:直接出库 3:转代卖(=3 时点击出库需弹出最终扎数输入)
outBunchNumInteger语义扩展转代卖任务为客服填写的转代卖扎数(包裹暂存也有值),可作为最终扎数输入框的默认值/上限提示
说明

转代卖任务展示建议待出库卡片显示「转代卖 · 客服审批 X 扎」;已出库卡片显示「转代卖 · 实际出库 finishBunchNum 扎」。物流相关字段(linkSendNo、expressName)转代卖任务为空。

对应提交 3129cb28da 裸花转代卖 · 测试环境已部署(admin + supplier)