业务口径仓库配货 / 打包
推荐箱型 / 设箱校验
白场拆箱、中通 45kg 逐箱匹配、晚场加单重算(含昆明→店/仓→店按货架重算)、特殊花材专用箱、设箱校验完整口径
Markdown 原文(给 AI 用):https://doc.xfun.fun/box-suggest-logic.md
一句话总览
运营端生成面单时,系统按发货单重量 自动推荐每张面单用什么箱;仓库打包时实际设箱与推荐不一致会 校验提示。晚场加单后,未出库的面单按新重量 整体重算推荐。
前提配置
| 配置 | 说明 |
|---|---|
| 箱型配置(打包配置) | 每种箱录入「可装花材重量」(kg)。没录容量的箱不参与推荐。 |
| 特殊花材专用箱 | 需新增两条配置:蝴蝶兰箱(蝴蝶兰 / 红掌 / 大花蕙兰 共用)、蓝妖箱(蓝色妖姬)。按 箱名匹配(先找同名,找不到再找名称包含的),不要求录容量。 |
| 特殊花材定义 | 商品名包含:蝴蝶兰、红掌、大花蕙兰、蓝色妖姬。业务前提:到仓时已装箱,仓库只需贴面单,所以不存在装不下的问题。 |
白场面单生成(运营端)
- 算可装重量:可装重量 = 发货单总重 − 特殊花材重量(特殊花材单独装箱,不占普通箱额度)
- 按物流拆箱:普通物流与中通算法不同,见下表;每拆出一箱 = 一张面单,并写上推荐箱型
- 特殊花材追加专用面单:按 专用箱追加面单,不是按种类:蓝色妖姬单独 1 张(蓝妖箱),蝴蝶兰 / 红掌 / 大花蕙兰合并 1 张(蝴蝶兰箱)。即最多 2 张,映射到同一箱的多种花材只算 1 张
两种拆箱算法
| 物流 | 算法 |
|---|---|
| 普通物流 (顺丰等) | 最大箱优先:先用容量最大的箱整箱装,剩余零头选 能装下的最小箱。 |
| 中通 (快运/落地/小件) | 45kg 逐箱匹配:件数固定为 ceil(总重÷45),与兜底口径一致。每轮取 min(45kg, 剩余重量) 作为一件的重量,选 能装下这件的最小箱作推荐,再按 min(45kg, 剩余重量) 扣减剩余重量(箱容量只决定推荐哪个箱,不参与扣减)。所有箱都装不下 45kg 时用最大箱。 |
- 普通物流例:180kg,箱型 6 / 70 / 80 / 87 → 87箱 ×2(装 174)+ 零头 6kg → 6箱 ×1,共 3 箱。
- 中通例:100kg,有容量 60 的 100*60 箱 → 45 + 45 + 10 三件,每件都匹配到 100*60 箱 → 共 3 个 100*60 箱(件数 = ceil(100÷45) = 3,与兜底口径一致)。
说明
兜底:一个可用箱型都没配置时,不推荐箱型,只按固定重量计件数:中通每件 45kg、其他物流每件 60kg(向上取整)。
说明
航邦物流:与普通物流走同一套拆箱算法,无固定重量特判。
打单 / 电子面单(运单数)
运单数与「白场面单生成」口径 完全一致:运单数 = 拆箱得到的箱数 + 特殊花材 专用箱数(蓝妖箱、蝴蝶兰箱各至多 1)。中通同样走 45kg 逐箱匹配算法(上例 100kg 中通即 3 单)。补打面单不重新拆箱、不算特殊花材。
晚场加单重算
触发条件:晚场(18:05 后)加单导致某个打包分组重量变化时,对该分组重算。三种面单的重算单元不同:
| 面单类型 | 重算单元 | 说明 |
|---|---|---|
| 昆明→店 / 仓→店 | 按货架(发货单) | 同一货架当天所有订单(含晚场)合并装箱,收货人相同。晚场该货架增重 → 按新合计重量把整货架的面单重排。 |
| 城市仓 | 按整仓聚合 | 整个城市仓的普通订单混在一起算箱,维持原粒度,不拆到货架级。 |
三者的重算步骤一致,如下:
- 已出库的面单不动:已出库面单及其箱子维持原样
- 估算已出库带走的重量:按已出库面单的箱容量合计(优先实际设的箱,没设箱按推荐箱,默认装满)
- 剩余重量重新拆箱:剩余 = 新总重 − 特殊花材重量 − 已出库容量;拆箱算法同白场(中通 45kg 逐箱匹配、普通最大箱优先)
- 未出库面单整体承接新推荐:未出库面单(含已设箱的)按顺序套用新箱型序列,不保留原推荐;不够就补新面单,多出来的面单不处理
- 特殊花材追加:白场每个 专用箱 1 张不变;晚场又新增了某专用箱的花材,再追加 1 张(无论白天是否已有同箱——晚场是新装的箱子)。按明细下单时间分白/晚场,同一阶段同一专用箱只算 1 张,重算幂等不重复追加
说明
推荐变化只打日志,不做留痕/通知;专用箱未配置时晚场跳过追加。
中通晚场例:晚场加单后总重 190kg、其中特殊花材 10kg,已出库 2 个 80 箱(按容量估算带走 160kg)→ 剩余 190−10−160 = 20kg → 未出库部分重拆为 1 个能装下 20kg 的最小箱。
供应商端设箱校验(仓库打包)
| 入口 | 行为 |
|---|---|
| 小程序拍照打包 / 修改箱型 | 实际箱型 ≠ 推荐箱型 → 拦截弹窗(错误码 6001),确认后可继续。 |
| PDA 扫码枪打包 | 不拦截,仅留痕备注「扫码枪打包,实际箱型与推荐箱型不一致」。 |
| 货架列表 | 「设箱有变化」的货架可筛选、有角标提示(小程序端)。 |
说明
中通面单同样有箱型推荐,设箱校验对中通 同样生效。
已知边界
- 中通面单件数固定 = ceil(总重÷45),单件平均重量 = 总重 ÷ 件数 ≤ 45kg(如 100kg → 3 件、约 33kg/件),与中通计费口径一致。
- 部分出库按「箱默认装满」估算带走重量,是启发式:若实际没装满,会少算剩余重量、少推荐箱。
- 件数变少时多余面单不回收,仓库按实际情况使用。
- 运营后台暂无「设箱有变化」查阅入口(目前仅小程序端);推荐依据重量/推荐箱容量未落库。