学习路线图

Odoo 库存源码学习路线图:从 stock.move 到 routes、reservation 与补货链

如果你已经开始接触 Odoo 库存源码,却总觉得知识点很多、文章也越来越多,不知道先学什么、后学什么,这篇就是专题导航。本文把 stock.move、route/rule、reservation、补货、多步仓这些核心主题串成一条学习路径。

Odoo 开发 库存
进阶 开发者 2 分钟阅读
0 评论 1 点赞 1 收藏 22 阅读

先说结论

如果你想真正看懂 Odoo 库存,不要一上来就把所有模型摊平去背。

最稳的方式是:

先抓住 stock.move 这根主线,再往外扩到 route / rule、reservation、补货链、多步仓。

因为 Odoo 库存看起来模块很多:

  • 销售
  • 采购
  • 仓库
  • 制造
  • 补货
  • 调拨
  • 预留

但这些东西最后大多都会落回同一件事:

  • 一条需求,怎样变成 move,怎样被分配,怎样继续向上游或下游传播。

所以这篇不讲新知识点,专门帮你把前面一批文章串成一条真正能学下去的路径


为什么学习 Odoo 库存最容易半路迷路

因为它不像某些模块那样“一个模型一个闭环”。

库存是典型的网络型系统:

  • move 会串 move
  • route 会命中 rule
  • rule 会生成 move
  • move confirm 又会继续生成 procurement
  • quant / reservation 又决定 move 能不能真的动起来

所以如果你按“今天看一点 A,明天看一点 B”的方式随便跳着学,很容易出现这种感觉:

  • 每篇都看懂一点
  • 但整条链还是看不清

解决办法不是“再多看几篇零散文章”,而是换成带顺序的学习路径


路线总览:建议按 5 个阶段学

我建议把 Odoo 库存源码学习拆成 5 段:

  1. 先认识库存最小执行单元:stock.move
  2. 再理解需求怎么被分流:route / rule / procure_method
  3. 再理解 move 为什么能不能动:reservation / quant / 状态机
  4. 再理解需求怎么串成链:procurement.group / move_orig_ids / move_dest_ids
  5. 最后再回到真实仓库设计:多步仓、收货、质检、上架、拣货、打包、出货

你会发现,这个顺序本质上就是:

  • 先学“点”
  • 再学“分流”
  • 再学“能否执行”
  • 再学“如何串链”
  • 最后学“如何落地到仓库场景”

这比一上来就直接冲多步仓和补货规则,稳得多。


第 1 阶段:先抓住 stock.move

如果你还没真正把 stock.move 看明白,后面很多概念都会像浮在空中。

因为在 Odoo 里,很多东西最后都会落回:

  • 创建 move
  • confirm move
  • assign move
  • done move

所以第一阶段建议先看这些文章:

1. 《Odoo 库存核心模型速览:stock.picking、stock.move、stock.move.line、stock.quant》

这篇适合用来先把基础角色分开。

重点建立最基本的脑图:

  • stock.move 是需求 / 动作抽象
  • stock.move.line 是实际执行明细
  • stock.quant 是底层库存事实
  • stock.picking 是业务容器

2. 《出库时的 stock.move.line 是如何确定的》

这篇适合补“move 和 move line 到底怎么接上”。

如果你老分不清:

  • 为什么有时看 move 就够
  • 为什么有时必须看 move line

这篇很关键。

3. 《Odoo 库存 move 状态机怎么读:waiting、confirmed、partially_available、assigned 排查顺序讲透》

这篇适合把 move 的“静态字段理解”推进到“动态状态理解”。

因为真正调试时,用户问的不是模型定义,而是:

  • 为什么现在是 waiting
  • 为什么不是 assigned

所以第一阶段最后要把状态机补上。


第 2 阶段:理解需求怎么分流

当你知道 move 是库存最小执行单元后,下一步就要回答:

  • 这些 move 到底是谁决定怎么长出来的?

答案通常就在:

  • route
  • rule
  • procure_method

这一层是 Odoo 库存真正的“决策引擎”。

建议这样读:

4. 《Odoo 库存路线和规则到底谁在做决定:stock.route 与 stock.rule 决策引擎深度解读》

先打总框架。

它解决的是:

  • route 和 rule 谁在决定方向
  • 谁在决定动作

5. 《Odoo 里 Pull、Push、Pull & Push 到底怎么分工:库存规则三种动作边界讲透》

这篇把 rule 的动作边界讲透。

如果你老觉得:

  • 都是在调拨,pull / push 有啥不一样

那就该看这篇。

6. 《Odoo 里 make_to_stock、make_to_order、mts_else_mto 到底怎么影响链路:procure_method 深度解读》

这篇进一步解决:

  • 当前来源层是先用库存,还是继续把需求往上游传

这一篇其实特别关键,因为它是“分流之后的供给策略”。


第 3 阶段:理解 move 为什么能不能真正动起来

很多人学完 route/rule 后会产生错觉:

  • 路都懂了,库存应该就懂了

其实还差很大一块:

  • move 被生成出来,不代表它已经能执行。

真正能不能动,要看:

  • reservation
  • quant
  • free_qty
  • reservation timing
  • strict 边界

这一阶段建议看:

7. 《Odoo 预留方法为什么会改变“何时有货”的体验:At Confirmation、Manual、By Date 和 reservation_date 讲透》

这篇解决的是:

  • 系统什么时候开始抢库存

8. 《Odoo 为什么明明看起来有库存,却还没有开始预留:free_qty、reservation_date、operation type 排查讲透》

这篇解决的是:

  • 不是 reserve 失败,而是还没轮到 reserve

9. 《Odoo 明明有货为什么还是预留失败:reservation 边界、strict 匹配和负库存修正讲透》

这篇解决的是:

  • 已经开始 reserve 了,为什么还是没成功

这三篇最好连着看。因为它们分别对应三层问题:

  • 什么时候开始
  • 为什么还没开始
  • 开始后为什么失败

第 4 阶段:理解需求是怎么串成整条链的

这一步是很多人真正“开窍”的地方。

因为看懂单张 move,不等于看懂整条链。

你真正要理解的是:

  • 销售需求怎么串到补货
  • 上游 move 怎么喂给下游 move
  • 为什么有些 move 会 waiting
  • procurement.group 到底在帮谁“绑单”

这一阶段建议看:

10. 《Odoo procurement.group 到底在帮谁“绑单”:需求归组、补货链串联和来源追踪讲透》

先建立 procurement.group 的角色感。

11. 《Odoo 需求链到底怎么串起来:procurement.group、move_orig_ids、move_dest_ids 深度解读》

这篇再把 move 链真正讲透。

如果你看到这里,脑子里应该开始形成这种图景:

  • 不再是一堆散单据
  • 而是一条有来源、有前后关系、有依赖顺序的需求链

这一步一旦打通,库存很多“会自己长出来”的感觉就会消失。


第 5 阶段:最后回到真实仓库设计

源码学到后面,很容易有个风险:

  • 概念都懂了,但不知道怎么落到仓库配置

所以最后一定要回到真实仓库场景。

12. 《Odoo 多步仓实战设计:收货、质检、上架、拣货、打包、出货到底该怎么配》

这篇就是用来做收口的。

它会把前面学过的东西重新落回业务语言:

  • 哪些节点该拆
  • 哪些动作只是动作,不该硬建成 location
  • 入库和出库为什么要分开设计

这一步很重要,因为只有这一步做完,你前面的源码理解才真正能转成项目设计能力。


如果你时间不多,最小学习顺序怎么排

如果你现在没空全看完,我建议先读这 6 篇,作为“最小闭环”:

  1. 库存核心模型速览
  2. stock.route / stock.rule 决策引擎
  3. Pull / Push / Pull & Push
  4. MTS / MTO / MTSO
  5. move 状态机排查
  6. 需求链:procurement.group + move_orig_ids + move_dest_ids

这 6 篇读完,你已经能看懂 Odoo 库存 70% 以上的骨架了。

如果再继续补:

  1. reservation method / reservation_date
  2. 为什么还没开始预留
  3. 为什么预留失败
  4. 多步仓实战

那就基本能覆盖大多数项目里的排查和设计场景。


学这套专题时,一个很重要的心法

不要试图把所有模型一次性背下来。

更高效的方式是:

第一步

先问:

  • 当前这条业务问题最后落在哪张 move 上?

第二步

再问:

  • 这张 move 是怎么长出来的?

第三步

再问:

  • 它为什么现在能动 / 不能动?

第四步

最后问:

  • 它前后还串着谁?

这其实就是整套学习路径的底层方法。


一句话记忆法

把这套学习路线记成一句话:

先看 stock.move 是什么,再看它怎么被 route/rule 决定,再看它怎么被 reservation 决定能不能动,最后再看它如何被链成整条需求链,并落回真实仓库设计。

如果你按这个顺序学,Odoo 库存不会再像“知识点一大坨”,而会慢慢变成一张真正能展开、能调试、能设计的系统地图。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。