先说结论
在 Odoo 里,很多自动补货并不是某张销售单直接触发的,而是:
- 系统观察库存状态
- 发现低于某个补货阈值
- 再通过补货规则和调度流程把需求转成可执行动作
这条链路里最常见的两个关键词就是:
- reordering rules
- scheduler
为什么这套机制容易被误解
因为用户往往只看到结果:
- 系统怎么突然生成了采购/补货动作?
于是容易误以为这是某个模块“偷偷写死”的逻辑。
实际上,更准确的理解是:
补货规则负责定义什么时候该补,scheduler 负责把这类需求批量捞起来并推进。
也就是说,一个偏规则,一个偏调度执行。
reordering rule 真正在表达什么
它更像:
某种库存状态下,系统应该开始补货的阈值约定。
它关心的问题通常是:
- 当前库存低到什么程度该补
- 补到什么水平
- 对应仓库/位置/产品是什么
所以它不是“直接生成采购单”的按钮,而是补货判断标准。
scheduler 更像什么
它更像:
定期巡视并执行这些补货约定的调度员。
它会去看:
- 哪些产品触发了补货条件
- 哪些需求需要继续转成 procurement / move / buy / manufacture
所以 scheduler 不是规则本身,而是让规则真正跑起来的执行层。
为什么它常和采购、制造、库存路线连在一起
因为“需要补货”只说明有需求,还没决定怎么补。
真正往下走时,还要看:
- 是内部调拨
- 是采购
- 是制造
- 还是别的 route
所以补货规则常常只是入口条件,真正的执行路径还是要交给库存规则和路线系统继续分发。
为什么这类问题不能只查销售单
因为很多补货动作不是从某一张业务单据直接起跳的,而是从“库存状态”起跳。
这意味着:
- 即使没有某张显眼的销售单
- 只要库存阈值触发
- scheduler 也可能推动补货链
所以自动补货问题常常要从库存参数和调度任务往回查,而不是只盯前台业务单。
实战里最容易踩的 5 个坑
1. 以为补货一定由销售单直接触发
会漏掉阈值驱动这条线。
2. 只配规则,不关注调度是否真正执行
规则就会像“写了没生效”。
3. 以为低库存就会自动走同一种补货路径
实际上还要看 route。
4. 把补货阈值和执行动作混成一回事
问题定位会乱。
5. 出问题时只看单据,不看库存状态和 scheduler
经常查不到根因。
一句话记忆法
把它记成一句话:
reordering rules 负责定义“低到什么程度该补”,scheduler 负责把这类库存需求批量捞起来并推进到后续采购、调拨或制造链路。
理解这一句,Odoo 自动补货机制会清楚很多。
DISCUSSION
评论区