
在之前的供应链产品经理课程中,我讲过“WMS的波次策略和上架策略拆解”相关内容。但当时缺少一个足够直观的竞品拆解和动态演示,没办法直接展示上架规则是如何配置、如何命中、如何生效的。
所以有些学员课后反馈:听的时候感觉懂了,知道WMS里有“上架策略”这个功能,但一旦回到真实系统设计,就还是缺少画面感,不知道它到底应该怎么配、怎么跑、怎么推荐库位。
这一次我借助AI,把富勒WMS的上架规则重新拆了一遍,并结合B2C电商仓、三方仓、多仓库、多货主这些常见业务场景,整理出了一套更完整的上架策略配置逻辑。
这篇文章不是单纯介绍某个WMS产品的功能,而是想回答三个问题:
为了方便理解,我也配套做了一个上架策略的原型Demo和不同的上架单是怎么去命中这些策略规则的演示。大家可以先体验在线原型,再结合这篇文章看配置字段和执行逻辑,会更容易把这个模块吃透。
WMS上架策略的原型Demo
得益于AI Agent的快速发展,我后续会把所有复杂的供应链业务知识和业务逻辑,能用AI去做Demo,去做演示,去做图示的,都会去重做一遍,然后放到自己的服务器当中,以便于大家可以在线访问。
https://pmvitamin.com/demo/_SPA_2026-06-08_wms_putaway_strategy_prototype.html
WMS上架策略是仓储管理系统的核心功能之一,它决定了货物在入库后应该被存放到哪个具体的库位。一个设计良好的上架策略能够:
上架策略由策略包头信息和策略包明细行两部分组成,前者定义策略的基本信息和适用范围,后者包含具体的执行规则和约束条件。
#### 基础字段说明
| 字段名称 | 是否必填 | 说明 | 示例 |
|---|---|---|---|
| 策略名称 | ✓ | 策略的业务名称,建议采用"客户-业务类型-描述"的命名规范 | Nike - B2C电商默认策略 |
| 策略代码 | ✓ | 系统内唯一标识,通常用大写字母和连字符 | PUTAWAY-NIKE-B2C-DEFAULT |
| 绑定仓库 | ✓ | 指定此策略适用的仓库,不同仓库可配置不同策略 | 华东-01仓 |
| 绑定货主 | - | 可多选,指定适用的货主;留空则为仓库默认策略 | Nike, Adidas |
| 描述 | - | 策略的详细说明,便于后续维护 | 处理Nike所有B2C业务的标准上架流程 |
#### 配置要点
策略包明细行是上架策略的核心,定义了具体的执行逻辑。系统按优先级从高到低依次评估每一行,直到找到合适的库位或所有规则都无法匹配。
#### 2.2.1 核心字段说明
| 字段名称 | 说明 | 配置要点 |
|---|---|---|
| 优先级 | 数字越小优先级越高,系统按此顺序执行规则 | 建议用10, 20, 30...便于后续插入新规则 |
| 筛选条件 | 决定什么情况下使用此规则 | 单选模式,确保匹配精准性 |
| 上架规则 | 核心算法,决定如何寻找候选库位 | 6种预设规则,各有不同适用场景 |
| 推荐库区 | 指定在哪个库区寻找库位 | 部分规则需要,部分规则会被忽略 |
| 固定库位 | 指定具体的库位编码 | 仅在某些规则下生效 |
| 限制条件 | 对候选库位的约束和校验 | 多种组合,确保业务合规性 |
| 状态 | 启用/禁用此规则行 | 便于测试和灰度发布 |
#### 2.2.2 字段间的联动关系
不同的上架规则对"推荐库区"和"固定库位"字段有不同的要求:
| 上架规则 | 推荐库区 | 固定库位 | 说明 |
|---|---|---|---|
| 1. 推荐指定库区中,合适的库位 | 必需 | 禁用 | 在指定库区内智能选择 |
| 2. 推荐空库位 | 可选 | 禁用 | 可限定库区范围;留空时按系统默认存储范围搜索 |
| 3. 推荐固定的库位 | 可选 | 必需 | 直接指定目标库位 |
| 4. 推荐最近一次上架的库位 | 禁用 | 禁用 | 系统自动查找历史记录 |
| 5. 同品集中存放(已占货位优先) | 禁用 | 禁用 | 在可用存储范围内搜索相同SKU |
| 6. 同品集中存放(空货位优先) | 禁用 | 禁用 | 基于同品主存放库位,优先寻找相邻或附近空库位 |
筛选条件采用单选模式,确保每个上架单能精准匹配到对应的处理规则。
#### 可配置的筛选维度
| 维度 | 选项 | 业务含义 |
|---|---|---|
| 订单类型 | 不限/采购入库/销售退货/调拨入库 | 区分不同业务场景的处理方式 |
| 批次属性 | 不限/良品/次品/待检 | 根据商品质量状态分流处理 |
| 产品循环级别(ABC) | 不限/A类(高频)/B类(中频)/C类(低频) | 按商品周转频率优化存储位置 |
| 包装级别 | 不限/托盘/原箱/单件 | 根据包装规格选择合适的存储方式 |
#### 筛选逻辑示例
示例规则行配置:
- 订单类型:销售退货
- 批次属性:良品
- 产品循环级别:A类
- 包装级别:不限
此规则仅对"销售退货单中的良品A类商品"生效,
无论其包装级别如何都会匹配此规则。
限制条件用于对候选库位进行校验,确保选中的库位满足业务要求。可同时配置多个限制条件。
#### 2.4.1 库位混放限制
| 限制项 | 说明 | 适用场景 |
|---|---|---|
| 不许混放产品 | 一个库位只能存放一种SKU | 贵重商品、易混淆商品 |
| 不许混放批次 | 相同SKU的不同批次不能混放 | 有效期管理、追溯要求 |
| 库位内必需有相同产品 | 只能补充到已有相同SKU的库位 | 集中存储策略 |
| 必须是空的库位 | 只能选择完全空闲的库位 | 特殊商品、独立存储 |
| SKU最多可占用的库位数 | 限制单个SKU在当前库区的分散程度 | 防止过度分散、提高拣货效率 |
#### 2.4.2 库位属性限制
| 限制项 | 说明 | 业务价值 |
|---|---|---|
| 匹配产品周转级别 | 库位的ABC属性要与商品的ABC属性一致 | 将快周转商品放在易取位置 |
#### 2.4.3 空间限制
| 限制项 | 说明 | 校验内容 |
|---|---|---|
| 校验体积 | 检查库位剩余体积是否足够 | 防止超容量存储 |
| 校验重量 | 检查库位承重是否足够 | 防止货架超载 |
| 校验长宽高 | 检查商品尺寸是否适合库位 | 防止超规格存储 |
#### 3.2.1 策略包匹配优先级
系统会按以下优先级选择策略包:
#### 3.2.2 多策略包匹配处理机制
正常情况下,系统应在配置阶段就避免“同一优先级命中多个策略包”。如果因为历史数据、导入数据或版本切换导致多策略包同时匹配,可按以下规则兜底处理:
| 匹配情况 | 选择依据 |
|---|---|
| 多个精确匹配策略 | 优先选择明确标记为当前生效版本的策略 |
| 多个仓库默认策略 | 优先选择启用状态且优先级最高的策略 |
| 多个系统默认策略 | 按策略优先级排序,选择优先级最高的策略 |
容错机制: 多策略包匹配属于配置治理问题,系统应记录预警日志;如果没有任何策略包可用,则将上架任务标记为"待人工处理"。
#### 3.2.3 规则行筛选逻辑
对于策略包中的每一行规则,系统会验证以下条件:
筛选条件匹配逻辑:
IF (规则.订单类型 == "不限" OR 规则.订单类型 == 上架单.订单类型)
AND (规则.批次属性 == "不限" OR 规则.批次属性 == 上架单.批次属性)
AND (规则.产品ABC == "不限" OR 规则.产品ABC == 商品.循环级别)
AND (规则.包装级别 == "不限" OR 规则.包装级别 == 上架单.包装级别)
THEN 此规则匹配成功
上架策略中的限制条件不是唯一的判断来源。系统推荐库位时,需要同时叠加两类规则:
因此,系统不是“先推荐一个库位,再看能不能上架”,而是在生成候选库位的过程中,就把库位静态属性、库存现状、商品档案、批次属性和策略限制一起纳入过滤。只有同时满足底层硬约束和明文限制条件的库位,才可以被推荐出来。
举个例子:如果某条策略明细没有勾选“不许混放产品”,但候选库位本身在库位档案中配置为“不允许混放产品”,那么该库位仍然不能接收不同SKU。库位自身的配置是底线,策略限制只能让规则更严格,不能绕过库位档案的硬约束。
推荐库位被选中后,系统还应生成库位预占或任务占用记录,避免多个上架任务在高并发场景下同时抢占同一个剩余库容。
系统提供了6种预设的上架规则,用户仅允许从这6种预设的规则中选择一条或者多条,大致可分为三大类:
#### 4.1.1 库区导向型规则
这类规则基于库区进行库位分配,适合有明确存储区域规划的场景。
#### 4.1.2 固定分配型规则
适合异常处理、特殊商品或临时存储场景。
#### 4.1.3 智能寻址型规则
这类规则基于历史数据和库存状态进行智能决策,能够优化存储效率。
#### 4.2.1 规则1:推荐指定库区中,合适的库位
适用场景:
执行逻辑:
配置要点:
典型配置示例:
筛选条件:批次属性=良品,产品ABC=A类
上架规则:推荐指定库区中,合适的库位
推荐库区:PK-01-拣货区
限制条件:校验体积 + 匹配产品周转级别
#### 4.2.2 规则2:推荐空库位
适用场景:
执行逻辑:
配置要点:
#### 4.2.3 规则3:推荐固定的库位
适用场景:
执行逻辑:
配置要点:
#### 4.2.4 规则4:推荐最近一次上架的库位
适用场景:
执行逻辑:
业务价值:
#### 4.2.5 规则5:同品集中存放(已占货位优先)
适用场景:
执行逻辑:
业务价值:
#### 4.2.6 规则6:同品集中存放(空货位优先)
适用场景:
执行逻辑:
与规则5的区别:
#### 5.1.1 为什么采用单选模式?
在设计初期,筛选条件曾考虑支持多选模式,但实际业务中发现多选会带来以下问题:
因此,采用单选模式确保每个上架单都能精准匹配到唯一的处理规则。
#### 5.1.2 各筛选维度的业务含义
订单类型维度:
批次属性维度:
产品循环级别(ABC):
包装级别:
#### 5.2.1 常见限制条件组合
严格隔离组合:
✓ 不许混放产品
✓ 不许混放批次
✓ 必须是空的库位
✓ 校验体积
✓ 校验重量
适用于:贵重商品、危险品、易污染商品
集中存储组合:
✓ 库位内必需有相同产品
✓ SKU最多可占用的库位数:3
✓ 校验体积
✓ 匹配产品周转级别
适用于:高频商品、批量拣货商品
质量管控组合:
✓ 不许混放批次
✓ 校验体积
✓ 校验重量
适用于:有保质期的商品、需要批次追溯的商品
#### 5.2.2 限制条件与系统基础数据的联动机制
限制条件的校验需要结合多个系统模块的基础数据,以下详细解析各限制条件的判断逻辑:
混放限制条件的判断逻辑:
| 限制条件 | 系统数据来源 | 判断机制 | 隐藏规则 |
|---|---|---|---|
| 不许混放产品 | 库存明细表 + 库位档案 | 查询目标库位现有SKU种类 | 策略勾选后,即使库位允许混放也按不混放校验;库位本身不允许混放时,也会作为底层硬约束生效 |
| 不许混放批次 | 库存明细表 + 批次属性配置 | 基于"关键批次属性"进行批次对比 | 相同SKU不同批次的关键属性必须完全一致 |
| 库位内必需有相同产品 | 库存明细表 | 检查库位是否已存储相同SKU | 空库位会被直接排除,只考虑有库存的库位 |
| 必须是空的库位 | 库存明细表 | 库存数量 = 0 且无预留 | 忽略库位的混放属性设置,强制要求空位 |
空间限制条件的计算逻辑:
| 限制条件 | 计算公式 | 数据来源 | 关键逻辑 |
|---|---|---|---|
| 校验体积 | 库位剩余体积 ≥ 商品单位体积 × 上架数量 | 库位档案 + 商品档案 + 库存明细 | 库位剩余体积 = 库位总体积 - 已占用体积 |
| 校验重量 | 库位剩余承重 ≥ 商品单位重量 × 上架数量 | 库位档案 + 商品档案 + 库存明细 | 库位剩余承重 = 库位最大承重 - 已占用重量 |
| 校验长宽高 | 商品长宽高 ≤ 库位长宽高 | 库位档案 + 商品包装档案 | 三个维度必须全部满足,任一维度超出即不符合 |
业务属性匹配的逻辑:
| 限制条件 | 匹配规则 | 系统配置依赖 | 特殊处理 |
|---|---|---|---|
| 匹配产品周转级别 | 库位.ABC属性 = 商品.循环级别 | 库位档案ABC设置 + 商品档案循环级别 | 库位ABC为空时视为通配,可存储任意级别商品 |
| SKU最多可占用的库位数 | 统计当前SKU在目标库区的库位占用数 | 库存明细 + 库区配置 | 按库区维度统计,跨库区不累计 |
#### 场景描述
#### 策略配置
策略名称:B2C电商标准上架策略
策略代码:PUTAWAY-B2C-STANDARD
绑定仓库:华东-01仓
绑定货主:(留空,作为默认策略)
明细行配置:
| 优先级 | 筛选条件 | 上架规则 | 推荐库区 | 固定库位 | 限制条件 | 业务意图 |
|---|---|---|---|---|---|---|
| 10 | 订单类型=销售退货 批次属性=良品 产品ABC=A类 | 同品集中存放(已占货位优先) | - | - | 校验体积+需有相同产品 | A类退货良品优先补充到现有库位 |
| 20 | 订单类型=销售退货 批次属性=良品 产品ABC=B类/C类 | 推荐指定库区中,合适的库位 | ST-A-存储区-A | - | 校验体积+匹配周转级别 | B/C类退货良品存储到存储区 |
| 30 | 批次属性=次品 | 推荐固定的库位 | - | QC-01-退货待检区 | 必须是空的库位 | 次品隔离存储 |
| 40 | 订单类型=采购入库 产品ABC=A类 | 推荐指定库区中,合适的库位 | PK-01-拣货区 | - | 校验体积+匹配周转级别 | A类新品入拣货区 |
| 50 | 订单类型=采购入库 产品ABC=B类/C类 | 推荐指定库区中,合适的库位 | ST-A-存储区-A | - | 校验体积+校验重量 | B/C类新品入存储区 |
| 999 | 全部=不限 | 推荐固定的库位 | - | EXCEPTION-AREA | 校验体积 | 兜底规则:异常处理区 |
#### 场景描述
#### 策略配置
策略名称:B2B批发标准上架策略
策略代码:PUTAWAY-B2B-WHOLESALE
绑定仓库:华北-02仓
绑定货主:(留空,作为默认策略)
明细行配置:
| 优先级 | 筛选条件 | 上架规则 | 推荐库区 | 固定库位 | 限制条件 | 业务意图 |
|---|---|---|---|---|---|---|
| 10 | 包装级别=托盘 | 推荐指定库区中,合适的库位 | ST-B-高位货架区 | - | 校验体积+校验重量+SKU库位上限=2 | 托盘货物存储到高位区,限制分散 |
| 20 | 包装级别=原箱 产品ABC=A类 | 同品集中存放(空货位优先) | - | - | 校验体积+不许混放批次 | A类原箱优先放到同品附近空位,兼顾集中和批次隔离 |
| 30 | 包装级别=原箱 产品ABC=B类/C类 | 推荐指定库区中,合适的库位 | ST-C-标准货架区 | - | 校验体积+匹配周转级别 | B/C类原箱标准存储 |
| 40 | 包装级别=单件 | 推荐指定库区中,合适的库位 | PK-02-散装拣货区 | - | 校验体积+不许混放产品 | 散装商品单独存储 |
| 999 | 全部=不限 | 推荐固定的库位 | - | TEMP-AREA | 校验体积 | 兜底规则:临时存储区 |
#### 场景描述
#### 策略配置
策略名称:冷链仓储上架策略
策略代码:PUTAWAY-COLD-CHAIN
绑定仓库:冷链-01仓
绑定货主:生鲜食品供应商
明细行配置:
| 优先级 | 筛选条件 | 上架规则 | 推荐库区 | 固定库位 | 限制条件 | 业务意图 |
|---|---|---|---|---|---|---|
| 10 | 订单类型=采购入库 批次属性=良品 | 推荐指定库区中,合适的库位 | COLD-A-冷藏区 | - | 不许混放批次+校验体积+匹配周转级别 | 新鲜商品按批次严格隔离 |
| 20 | 订单类型=销售退货 批次属性=良品 | 推荐固定的库位 | - | COLD-QC-质检区 | 必须是空的库位+不许混放产品 | 退货商品质检隔离 |
| 30 | 批次属性=次品 | 推荐固定的库位 | - | WASTE-处置区 | 必须是空的库位+不许混放产品+不许混放批次 | 次品严格隔离处置 |
| 999 | 全部=不限 | 推荐固定的库位 | - | TEMP-COLD | 校验体积 | 兜底规则:临时冷藏区 |
#### 6.4.1 优先级设计原则
#### 6.4.2 测试验证方法
场景测试矩阵:
| 测试场景 | 订单类型 | 批次属性 | 产品ABC | 包装级别 | 期望规则 |
|---|---|---|---|---|---|
| 场景1 | 销售退货 | 良品 | A类 | 单件 | 规则10 |
| 场景2 | 销售退货 | 次品 | A类 | 单件 | 规则30 |
| 场景3 | 采购入库 | 良品 | B类 | 原箱 | 规则50 |
| ... | ... | ... | ... | ... | ... |
验证步骤:
#### 6.4.3 性能优化建议
WMS上架策略是一个复杂而精密的业务系统,它通过策略包头信息、策略包明细行、筛选条件和限制条件的组合,实现了对货物存储位置的智能决策。
核心设计原则:
应用价值:
通过合理配置上架策略,企业可以在确保业务合规的前提下,最大化仓储运营效率,这是现代WMS系统的核心竞争力之一。