采购合单

Odoo 为什么有时会把采购需求合成一张单:采购合单、来源归并和 PO 分组逻辑讲透

很多采购自动化问题最后都会落到“为什么合单 / 为什么没合”。本文把采购需求归并成 PO 的常见逻辑讲清楚。

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

先说结论

在 Odoo 里,自动采购并不总是一条需求就对应一张采购单。

更常见的真实逻辑是:

  • 系统先看这些采购需求能不能被视为同类
  • 如果关键上下文一致,就可能归并进同一张 PO
  • 如果上下文不同,就拆开生成多张

所以“为什么合单 / 为什么没合”,本质上是在问:

系统认不认为这些采购需求属于同一组可合并采购上下文。


为什么这个问题总容易被误会成 bug

因为业务用户看到的通常只是结果:

  • 明明是同一天要买的,怎么拆成两张?
  • 明明来自不同来源,怎么又合到一张?

如果不理解系统的归并维度,就会觉得:

  • 它好像随机在合单

但更常见的现实是:

  • 系统并不是在随机,而是在根据它认定的重要上下文来分组。

采购合单真正关心的是什么

它不是在问“这些东西是不是都要买”,而是在问:

  • 这些需求是否足够相似,值得放进同一张采购执行对象里

所以合单关注的是:

  • 供应商
  • 公司
  • 采购上下文
  • 计划时间或相关规则

也就是说,它本质上是“采购执行归并”问题,而不是“需求存在与否”问题。


为什么来源不同也可能合到一起

因为系统有时更看重的是执行上下文,而不是前台来源长得一不一样。

如果几条需求最终在采购层面看起来是:

  • 同供应商
  • 同公司
  • 同类采购条件

那它们就可能被视为“适合一起下单”。

所以“来源不同”不必然意味着“不该合单”。


为什么同一批需求有时又会被拆开

因为只要关键上下文不一致,系统就可能认为不适合共用同一张 PO。

比如:

  • 供应商不同
  • 公司不同
  • 计划节奏不同
  • 某些采购规则差异明显

这时拆开反而更符合执行语义。

所以“没合单”很多时候不是缺陷,而是系统在保护采购边界。


实战里最容易踩的 5 个坑

1. 只看来源单据,不看采购执行上下文

会误判合单逻辑。

2. 以为同一天采购就理应合单

系统看的维度更细。

3. 看到不同来源合到一起,就觉得一定错了

未必。

4. 不先弄清系统到底按哪些维度归并

问题会一直像随机。

5. 定制采购链时忽略归并语义

后面 PO 行为会变得难解释。


一句话记忆法

把它记成一句话:

采购合单不是按“来源像不像”决定,而是按“这些需求在采购执行层面能不能被视为同一组上下文”来决定。

理解这一句,PO 合单逻辑就不会再像黑箱。

DISCUSSION

评论区

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