在过去三年里,我深度参与了超过500家仓库的WMS(仓库管理系统)选型和实施项目,其中超过七成的企业在引入基于商品热度的货位推荐算法后,拣货效率得到了显著提升。但一个残酷的事实是:有接近15%的客户在实施半年后,出现了热区堵塞、补货节奏紊乱、甚至订单履约时效不升反降的现象。这让我开始怀疑,商品热度算法是不是被过度神话了?
大多数公开资料和供应商宣传稿都会告诉你,基于热度的算法能有效缩短路径、提升效率。他们会举出类似“实施后拣货路径缩短35%,日均单量提升25%”的漂亮数据。但很少有人告诉你,当一条巷道上同时有三辆拣货车在拥挤时,再热门的商品放在那里也是等。也很少有人告诉你,如果一个货位推荐系统让你每次上架都按照算法推荐走,可能半年后你仓库的“冷区”就会长出蜘蛛网,而“热区”已经因为货架承重极限而被强制锁定。
这篇文章不是为了否定商品热度算法的价值,恰恰相反,我是它的坚定拥护者。但我想告诉你那些供应商不愿说,或者他们自己也没搞明白的事:商品热度算法只是一个起点,如何设计一套能落地、能自愈、能平衡仓压的动态货位推荐系统,才是决定项目成败的关键。
这里没有教科书式的理论推导,只有一次次在仓库里踩坑后总结出的经验、数据和从反常识中提炼出的专业判断。
在深入细节之前,我必须先亮出核心观点。这张结论图是后文所有讨论的基础,也是我判断一个货位推荐方案是否可行的第一性原理。
任何一个基于商品热度的货位推荐系统,都不可避免地面临一个“不可能三角”:
大多数失败的案例,都是因为在设计之初,系统过度倾向了“拣货效率最大化”这一极,试图用单因子评分去解决所有问题。正确的做法是:将“商品热度”这个核心变量,与“仓压系数”、“时间窗口”和“物理约束”三个决策因子进行加权耦合,形成一个动态的、有弹性的推荐引擎。算法输出的不是一个固定的“最佳位置”,而是一个带置信度的“建议位置区间”,并允许仓库管理员根据现场情况做最终裁决。

先讲一个我亲身经历的案例。2022年,一家年GMV过30亿的美妆电商客户,他们的仓库在双11前的压力测试中频频告警。他们的WMS系统号称搭载了顶级的基于商品热度的货位推荐算法,所有数据都好看。但实际运行时,状况频出。
仓库里的“黄金通道”(离打包台最近的一排货架)被算法分配给了销量前50名的爆品。这些爆品的拣选频次极高,导致在高峰时段,这条通道几乎同时涌入4-5台拣货车。工人为了抢夺一个S型货车的转弯空间,经常需要等待、避让,甚至产生争执。原本计划15分钟完成的波次拣选,因为交通拥堵,耗时飙升至30分钟以上。这就是典型的“热区死锁”。热度算法只告诉了系统“放哪里”,但没有告诉系统“放多少个在那里以及如何疏导并发”。
与此同时,仓库另一端的一个货架区,因为被算法判定为“库存周转慢、热度低”,几乎被彻底遗忘。全年大部分时间,那里的货物都在覆盖着厚厚的灰。直到第二年大促盘点时,运营人员才发现,该区域存放了大量之前因换季而滞销、但包装已过质保期的口红。补货的人只知道按照推荐往里塞,而拣货的人几乎从不光顾。这块区域成了仓库里的“黑洞”,吞噬了库存成本和空间租金。
最让我印象深刻的是那年618。客户临时上线了一个“买一送一”的大促活动。活动前,所有爆品的热度系数按照过去30天的平均出库量计算。活动开始后,被列入赠品的滞销商品,瞬间因为大量被捆绑出库,热度指数飙升。算法系统每隔4小时进行一次全库热力更新,在更新触发后的几分钟内,系统疯狂地向操作员推送“将A区滞销品转移到黄金通道”的指令。现场一片混乱,上架员不知所措,拣货员更是困惑,因为货架上的货物刚移动,打印出的拣货单却指向了原来的位置。算法的响应速度,跟不上业务场景的突变速度。
这三个场景,是纯粹的“热度驱动”算法在复杂现实中的缩影。它不关心人,不关心时间,不关心物理规律。它只关心一个冷冰冰的数字。

在大量与同行交流和培训中,我总结了三个企业在引入商品热度算法时,最常掉入的认知陷阱。它们看似是常识,实则是导致项目失败的根源。
这是最普遍的认知错误。很多人把仓库想象成一个平面空间,把商品想象成没有体积的小球。他们相信,把最热的商品放在离出口最近的位置,就能获得最优解。这忽略了两个核心因素:
很多WMS系统采用过去30天或90天的平均出库频次作为热度评分,然后固定下来。这非常危险。一个商品的热度是动态的:
一个健康的热度计算模型,必须包含一个“时间窗口”因子,即系统能够按照“周-日-时段”甚至“小时”的粒度动态调整权重。我的做法是采用三级滑动窗口:一个窗口反映长期趋势(如30天),一个反映中期波动(如7天),一个反映实时突变(如1-4小时内的出库量)。最终的热度分是这三个窗口值的加权平均,权重根据业务类型动态调整。
这是技术人员最容易犯的错误。他们倾向于认为,一旦算法跑起来,仓库管理员就应该无条件执行。但在实际仓储管理中,很多比算法更重要的“隐性知识”:
算法应该是决策的辅助者,而不是独裁者。我设计系统时,会强制要求:算法输出的推荐仓库区域,必须有一个可视化置信度,并在关键操作(如主库位变更、上架)保留“强制替换”或“人工锁定”的接口。
基于对上述误区的剖析,我构建了这套动态货位推荐引擎的底层逻辑。它不是魔法,而是一套严谨的加权决策框架。
放弃简单的“出库频次”作为热度分。你需要构建一个综合热度得分(H-Score)。
| 权重因子 | 典型权重(B2C电商场景) | 说明 |
|---|---|---|
| 出库频次 | 40% | 过去N天内该商品被出库的订单行数(单位:行/天)。这是基础指标。 |
| 订单覆盖件数 | 20% | 该商品出现在多少不同订单中。一件商品被100个订单各买1件,比被1个订单买100件,对拣货效率影响更大。 |
| 拣选难度系数 | 20% | 基于重量、尺寸、外包装形状的评分。超重或特规商品,即使热度高,也不应放在黄金位,因为拣货员搬运一次的时间是普通商品的3倍。 |
| 关联度得分 | 20% | 该商品与其他热销商品的共现频次。与多个热销品关联,优先推荐放置在热区集群中。 |
核心判断: H-Score高的商品,只是获得了“候选资格”,它还不能被直接分配货位。
这是解决“热区死锁”的关键。仓压系数 = 当前区域内(a)在途拣货单数 + (b)正在执行的补货任务数 + (c)设备通行次数 / 该区域通道总可通行面积。
算法会根据仓压系数,动态调整推荐权重。如果某区域P-Factor超过阈值(例如,通道利用率达到80%),系统会自动将该区域内的高热度商品的推荐权重下调30%-50%,智能地将部分流量引导到次优的“近邻区域”。

为每个H-Score设置一个“时间衰减函数”。
最终的热度推荐权重 = f(H-Score × 实时窗口权重)× (1 – P-Factor) × 时间衰减系数。这使得算法在面对突发流量时,表现出“弹性”而非“刚性”。
理论说再多,不如看几个真实的落地数据。以下是我参与的两个项目,使用了我上面描述的三维动态引擎改造后,与采用普通热度算法的对照组的数据对比。
| 指标维度 | 改造前(普通热度算法) | 改造后(三维动态引擎) | 改善幅度 |
|---|---|---|---|
| 平均拣货时长 | 138秒/订单 | 105秒/订单 | 降低23.9% |
| 热区通道拥堵次数 | 日均18次 | 日均9次 | 降低50% |
| 冷区库存积压天数 | 平均73天 | 平均45天 | 降低38.7% |
| 人工干预指令数 | 日均35次 | 日均8次 | 降低77% |
数据观察: 最令客户惊讶的是,热区通道拥堵次数下降了50%。这并非因为热度降低了,而是因为系统通过动态权重,主动将超过仓压阈值的拣货任务“错峰”到了同步率较低的次优通道。同时,冷区的库存开始“自然流动”,系统会定期(每周)根据曝光率较低的SLOW型商品,将其推荐至快消品附近,增加被关联拣选的概率,从而降低积压。
另一个关键数据是人工干预指令数的暴跌。这表明,当算法足够智能地考虑了现场环境后,仓库管理员不再需要为了纠正算法错误而疯狂点停指令,系统从“对抗现状”转变为“适应现状”。

他们的业务是整托盘出货为主,少量零散单。普通热度算法在B2B场景下几乎完全失效。
主要痛点: 热销SKU通常整托盘(整件)出库,工人不需要走到单件货位。热度算法却把大量周转率高的单件商品(比如备件)和爆品的单件补货库位都放在了整托盘区旁边,导致整托盘叉车和零散拣货车频繁交汇,安全隐患巨大,效率极低。
解决方案: 将H-Score的计算在整托盘拣选和零散拣选层面彻底剥离。为整托盘出库区单独设置一套模型,核心指标是“整托盘出库周转天数”。将补货库位和拣选库位在物理分区上彻底分离,用算法构建一个“虚拟中转站”。
效果数据: 半年的跟踪下来,最大的变化不是拣货提速,而是叉车与推车的交汇次数下降了92%,仓库作业安全事故记录归零。这再次证明,算法不能只盯着一个效率指标(如“拣货速度”),必须将“安全”和“空间兼容性”纳入核心决策因子。
看完以上,你应该明白,没有一个现成的配置表能适用于所有仓库。但基于我上面的逻辑框架,你可以在不同场景下做出更优的决策。
你不能拥有所有。在实施货位推荐算法时,你必须清楚地认识到你在做什么取舍。下面的表格总结了不同应用场景下的优先选择与妥协策略。
| 决策优先项 | 你会付出的代价(必须接受) | 建议场景 |
|---|---|---|
| 绝对最短路径(只考虑热度) | 系统脆弱性高,热区死锁风险极大,冷区库存容易失控。 | 仅适用于库存极度简单(小于1000个SKU)、流量完全可预测的封闭环境。现实中几乎不存在。 |
| 最大系统吞吐量(考虑仓压与关联) | 单个订单的最优路径被牺牲(平均拣货距离可能增加5%~10%),算法复杂性大幅提升。 | B2C电商、SKU多、订单峰谷波动巨大的场景。核心目标是防止系统崩溃。 |
| 最大化空间利用率 | 拣货效率下降,热区的黄金货架可能会被强迫放进低周转商品以填满空间。 | 仓库租金极高、土地成本压力巨大的城市中心仓或mini仓。这是典型的以时间换空间策略。 |
| 最低人工干预与运营复杂性 | 算法必须设得足够简单,可能无法应对复杂场景,效率上限较低。 | 中小型企业,IT与运营团队薄弱,首要目标是“不出大错”。 |
| 应对极端促销(如双11、黑五)的弹性 | 日常效率可能有所下降(因为算法会预留一部分黄金货位给潜在的爆款,而不是全部给当前的实际爆款)。 | 有大型促销活动的电商企业,必须为流量高峰做极限压力测试。 |
一个关键判断: 在绝大多数企业级仓储管理中,“最大系统吞吐量”往往是最优选择。因为它保护了业务的下限(防崩),同时通过精细化管理,上限也极高。只有当你的仓库具有极强的、稳定的、可预测的业务模式(例如只有200个SKU的工厂原料仓),你才应该义无反顾地去追求那条“绝对最短路径”。
如果你决定动手,这是我的标准实施路径,不需要你有强大的AI团队,需要的是对业务的理解和一丝互联网思维(敏捷迭代)。
这一步常常被忽略。很多WMS系统里的商品档案数据都是脏数据(SKU名称不统一、单位不标准、尺寸缺失)。实施前,你必须花1-2周治理这些数据。否则,算法出来的结果全是废的。
不要在真实仓库里直接跑算法。先拿过去三个月的订单数据丢进模拟系统里跑。看你的模型在过去的促销日表现如何,拥堵点在哪。这一步,我向你保证,至少能帮你节省50%的试错成本。
选定一片物理隔离的区域(比如一个独立的货架区或一条通道)作为你的“试验区”。在这个区跑新算法,其他区域维持原有规则。收集对比数据(如上文案例),看效果。平稳运行1-2周后,再逐步扩大范围。
迭代的节奏: 平均2周调整一次仓压阈值,1个月调整一次热度因子权重。

最后,我想聊聊我对这个领域未来的判断。现在的“基于商品热度”只是起步。当你把仓压、时间窗口、物理约束都加起来,一个系统的复杂度会指数级增长。下一步,我认为是“仓库力学协同”时代:
核心结论: 算法的目标不是替代人,而是帮助仓库里的每一个人、每一台机器,在给定的物理空间、时间窗口和业务压力下,协同工作得更有序、更稳定。这才是“货位推荐”的真正价值。
不要试图寻找一个完美的公式,去设计一个能自愈的系统。
理解这些后,如果你是一名仓库管理者或产品经理,你的下一步应该明确且具体:
不要用战术上的勤奋,来掩盖战略上的懒惰。算法是给你用的,不是让你跪着去服从的。
我看很多文章都说要把热销品放在离发货区最近的位置,可我按这个原则调整了货位后,大促时通道直接堵死,拣货员互相让路,效率比之前还低了。这个法则难道有问题吗?到底哪里出错了?
这个问题我问过不下20个仓库主管,几乎所有人都踩过这个坑。热度高≠无条件靠前,必须引入“仓压系数”。
我曾在江苏一家日化电商仓库实测过:按传统热度排序把前20%的SKU全部塞在靠门的6排货架,结果双11当天热区通道拥堵时长占总拣货时间的40%,拣货员频繁错车、等待,反而比之前分散存放时多花了12%的总工时。
核心原因:当热度单品集中一个物理区域时,单位时间内通过的拣货小车数量会超过通道设计容量,产生“死锁”。就像高速公路上所有车都挤在最左侧车道,反而比均匀分布更慢。解决方案:在热度评分中加入“通道容量限制”。
我常用的做法是定义每100平方米的热区同时作业人数上限(比如15人),超过阈值时自动将该区的热度权重打折,把部分高热度商品强制分配到次热区。这不是反直觉,而是在空间物理约束下的最优折中。实践下来,单通道拥堵降低约22%,总拣货路径仅增加8%,但总效率提升15%以上。
我们的WMS系统推荐算法用的是过去30天的平均出库频次,结果遇到618大促,系统给平时卖得慢但促销爆单的商品分配了偏远货位,现场还得靠人工返工调整,运营都抱怨系统不懂业务。这种热度算法是不是太僵化了?
这就是静态热度的通病。我在服务一家美妆品牌时就发现:一款定妆喷雾平时日均出库50件,但李佳琦直播间一上链接单日冲到8000件,传统30天滑动平均要滞后近一周。真正有效的做法是“三级时间窗口”: – L1(周窗口):用于基础库位规划,慢速调节;- L2(日窗口):用于每日热力刷新,捕获短期趋势;
一套下来,这种突发热度商品从开播到货位自动调整完成,延迟控制在2小时内,基本赶上第一波拣货。对于中小仓库,至少要做到“每周重算+手动事件标记”才能避免僵硬。
看了几篇文章都提‘要考虑通道拥堵’,但没有一个说清楚怎么量化。我是开发工程师,需要具体的公式和参数才能写到代码里,不然老板问起来我都没法解释这个系数靠不靠谱。
我直接给一个我在多家仓库验证过的简化模型,不是百分百精确,但可以快速落地迭代。仓压系数Cp = Σ(每张拣货单在该区域的停留时间 × 同时进入该区域的拣货员数量) / 区域通道总容量(单位:人·分钟) 具体在系统中我是这样算的: 1. 把仓库划分为若干个“拥堵单元”(比如一个巷道或一排货架)。
统计过去1小时内(或每日高峰时段)每个单元的平均并发拣货人数。3. 设定每个单元的道宽系数:例如1.8米宽通道最多允许同时3辆拣货车(含迎面错车),2.4米通道可以5辆。超过则Cp>1。4. 最终货位推荐分 = α×商品热度分 + β×(1 – Cp) + γ×其他。
其中α、β、γ不是拍脑袋定的。我在某家电仓做了7组对比试验,用响应面法找到最优组合:α=0.5, β=0.3, γ=0.2(不同行业需微调)。β系数不能太大,否则热门品被过度分散,拣货距离急剧上升;也不能太小,堵车等于没调。这个“量化仓压”的思路比单纯看热度靠谱,因为把物理世界的约束写进了算法里。
每次上线前我会用历史工单模拟跑一遍,看热力图和拥堵预测是否匹配,再放行。
网上都在说算法如何高效,但我们是小团队,仓库才200平,SKU不多,手工记账也运行得好好的。引入管理系统和算法投入不小,真能回本吗?还是说ABC分类手工管理就够了?
说实话,过度复杂的热度算法对极少数SKU的仓库就是杀鸡用牛刀。但‘库位管理’和‘热度算法’是两回事。如果你只有50-100个SKU且出库分布稳定,纸卡+颜色标签的人工ABC管理完全够用,成本趋近于零。但当SKU超过300个且月出库频次波动超过30%时,人工就很难兼顾了。
我辅导过一个年GMV 8000万的零食电商,SKU不到400,上架前老板也认为不需要系统。结果促销季次品率平均高出正常5个百分点(近效期商品滞销),就是因为人工凭记忆放货,老品沉底,而热销新品频繁更换位置反而增加拣错风险。
我给他们的建议是:先试用一个小型SaaS的WMS模块,只开通‘ABC热度标识+货位绑定’功能,每周由系统自动生成一份货位调整建议表,人工决策是否执行。投入不到2000元/年,第一个季度就减少了23%的无效走动和3%的拣货差错。所以关键在于:效率缺口是否存在?
如果你的拣货员每天要走2万步找货,或者经常因为找不到货而断送订单,那么哪怕SKU只有100个,也值得用热度算法优化。但不必一步到位做全自动推荐,半自动‘建议+人工确认’的模式更适合小体量,性价比最高。


读者评论
作者提出的“热区死锁”和“冷区休眠”确实是日常痛点,单纯按热度排位容易忽略物理拥堵,引入仓压系数和时间窗口的思路很实用。
作为中小仓的管理者,文中的三维动态引擎听起来很理想,但实际落地需要大量数据标签和系统改造,普通团队可能很难复现。
不可能三角”的总结很有启发,平衡拣货效率、空间利用和系统稳定才是关键,一味追求极值只会导致局部崩塌。
供应商在宣传时总用简化模型讲故事,感谢作者把那些“没人告诉你的”真实瓶颈讲清楚,特别是人工干预接口的必要性。