先说结论
在 Odoo 里,采购价格很多时候不是“产品上写了一个成本价,系统就照着用”。
更常见的真实来源是:
- 供应商资料
supplierinfo - 供应商优先级
- 最小采购量 / 数量阶梯
- 单位与换算关系
所以很多“采购价不对”的问题,本质上不是算法神秘,而是你没把取价链看完整。
为什么采购价格问题特别容易被误判
因为用户最直观看到的是:
- 我选了这个供应商
- 为什么价格不是我以为的那个数?
于是很容易把问题理解成:
- Odoo 算错了
- 系统没刷新
- 采购单自己乱改价
但更常见的现实是:
系统并不是在乱算,而是在多条供应商条件里按它自己的规则命中了一条。
supplierinfo 真正在承载什么
它更像:
某个供应商针对某个产品(或产品模板)给出的采购条件记录。
这里面承载的往往不只是一个价格,还包括:
- 哪个供应商
- 最低起订量
- 交期
- 供应商编码
- 对应采购单位
所以它不是“简单价格表”,而更像供应商采购条件档案。
为什么同一产品可能会有多条供应商价格
因为真实采购很少只有一套固定报价。
常见情况包括:
- 不同供应商不同价
- 同一供应商按数量阶梯不同价
- 不同交期或条件不同价
- 不同采购单位口径不同价
所以系统面对的不是“一个产品一个价格”,而常常是“多个可能命中的候选采购条件”。
为什么数量和单位会把价格理解带偏
这是最常见也最隐蔽的坑之一。
因为用户脑子里经常只记“单价是多少”,但系统还要看:
- 本次采购数量是多少
- 是按哪个 UoM 下单
- 供应商报价对应的是哪个单位
只要这些口径没对齐,你看到的“价格不对”很多时候其实只是:
- 你和系统在按不同单位理解价格。
为什么供应商优先级也会影响结果
因为当多个供应商条件都可能命中时,系统需要决定优先选谁。
所以采购价格问题很多时候不只是价格本身,还包括:
- 到底先命中了哪条供应商记录
也就是说:
价格异常有时不是“数值算错”,而是“命中的那条规则不是你以为的那条”。
实战里最容易踩的 5 个坑
1. 只看产品成本,不看 supplierinfo
方向会查偏。
2. 忽略最小采购量和数量阶梯
价格命中逻辑很容易看错。
3. 不核对 UoM 和供应商报价单位
这是非常高频的误区。
4. 多条供应商记录并存,却没看实际命中哪条
容易误判系统乱选。
5. 只在一个简单采购量下测试
正式场景一变数量就暴露问题。
一句话记忆法
把它记成一句话:
Odoo 采购取价通常不是读一个固定成本,而是在 supplierinfo 里按供应商、数量阶梯、单位口径和优先级去命中最合适的采购条件。
理解这一句,采购价格问题就会清楚很多。
DISCUSSION
评论区