货物成本如何形成:从采购单到库存
适用角色:采购主管、仓库主管、业务财务
核心结论:采购单价决定入库价值,收货动作让价值进入库存,移动加权平均决定之后卖出时的成本。
本客户的正式总账在现有会计系统完成,因此 Odoo 中的采购单价尤其重要。
1. 一笔真实采购
采购主管向供应商“南岛食品”采购 200 箱辣椒酱:
- 采购单位:
CTN-12(1 箱 12 盒)。 - 不含 GST 单价:AUD 33/箱。
- 供应商交货期:14 天。
- 仓库实际收到:200 箱。
这个价格会成为这批货进入库存时的价值依据。
2. 四个动作,四层含义
| 动作 | 谁做 | 系统发生了什么 | 对成本的影响 |
|---|---|---|---|
| 确认采购单 | 采购员 / 采购主管 | 确认本次采购约定并生成收货任务 | 还没有增加库存 |
| 验证收货 | 仓库 | 库存数量增加,入库价值形成 | 进入 AVCO 计算 |
| 选择控制策略 | 采购主管预先设置 | 决定按订购还是按收货核对账单 | 影响应付和总账对账 |
| 月度核对 | 业务财务 | 比对 Odoo 库存价值与总账系统 | 发现成本偏差 |
关键动作:只有仓库点击“验证 (Validate)”后,库存数量和成本才正式进入系统。 在此之前,采购单只是承诺,不是库存。 确认采购单不代表所有字段永久锁定;后续修改仍受用户权限、收货状态和业务变更流程限制。
3. 移动加权平均怎么算
假设收货前,仓库已有 100 箱辣椒酱,平均成本 AUD 30/箱。
| 时间点 | 库存数量 | 本次单价 | 库存总价值 | 平均成本 |
|---|---|---|---|---|
| 收货前 | 100 箱 | AUD 30 | AUD 3,000 | AUD 30 |
| 本次收货 | 200 箱 | AUD 33 | AUD 6,600 | - |
| 收货后 | 300 箱 | - | AUD 9,600 | AUD 32 |
计算过程:
(100 × 30 + 200 × 33)÷(100 + 200)
= 9,600 ÷ 300
= 32
之后卖出 150 箱,系统按 AUD 32/箱计算销售成本,共 AUD 4,800。
这张图想让您看懂:AVCO 不是把新价格直接覆盖旧价格,而是把新旧库存合成一个平均值。
4. 采购员在系统里怎么做对
4.1 确认采购单前
- 核对供应商是否选对公司,而不是联系人。
- 核对商品和变体是否正确。
- 核对采购单位是否为供应商报价单位,例如
CTN-12。 - 核对单价是否为不含 GST 的最终采购价。
- 核对数量是否达到供应商起订量。
- 核对预计到货日期是否符合真实船期。
- 如果价格是手工修改的,在 Chatter 说明原因。
4.2 如果谈成了新价格
长期价格调整由采购主管更新供应商价格表。 一次性优惠可以只改本张采购单,但要在消息墙留原因。
4.3 如果供应商临时涨价
- 确认是否已经收货。
- 未收货时,按变更流程修改采购单价格。
- 已收货时,不要直接修改采购单;先确认变更权限、库存状态和财务处理方式。
- 如果经审批需要修改已收货采购单的单价、数量或单位,通知业务财务,因为相关库存价值可能重新计算。
- 在月结时核对库存价值和供应商账单差额。
- 不要直接手工改商品成本来“补差”。
5. 仓库在系统里怎么做对
- 按实际收到的箱数录入数量。
- 食品类按批次和有效期录入。
- 全部收齐时使用“设为完成数量”,再核对一次。
- 少收时不要点“全部完成”,按实际数量录入。
- 少收部分决定是否创建欠单。
- 验证前检查单位是否为箱,不要把 12 盒录成 12 箱。
验证收货的后果:
- 库存数量正式增加。
- 入库价值正式形成。
- 后续销售可以使用这批库存。
- 采购单上的已收数量增加。
收货错误不是简单改一个数字,往往需要退货、盘点调整或成本调整来纠正。
6. 总账不在 Odoo 时,财务怎么核对
因为供应商账单不在 Odoo 过账,Odoo 中的入库价值主要来自采购单价。 业务财务每月应按以下顺序核对:
- 从 Odoo 导出期末库存数量和库存价值。
- 从现有会计系统取得期末存货金额。
- 对比差异,重点看金额大的品类和主力 SKU。
- 抽查本月大额采购单的单价、单位和数量。
- 检查是否存在成本为 0 但仍有库存的商品。
- 检查负库存和异常盘点调整。
- 把差异原因记录在月结清单中,交月结会计复核处理。
供应商账单价格与采购单价格不一致
这是最常见的问题之一。发现差异时:
- 不要直接改商品成本。
- 先找采购主管确认哪个价格是最终价。
- 如果采购单价格错了且还未收货,修正采购单。
- 如果已经收货,先暂停后续修改,由业务财务和月结会计确认是否需要调整采购单、库存价值、采购差异或期间费用。
- 如果供应商经常性调价,更新供应商价格表。
7. 常见异常
异常 A:单价填成含税价
后果:库存成本偏高,毛利偏低,GST 还可能被重复计算。
处理:确认采购单税率和单价口径,在月结前纠正;已收货的按成本调整流程处理。
异常 B:采购单位按盒,库存单位按箱
后果:若“盒”与“箱”的计量单位换算比例错误或不可换算,入库成本可能被放大或缩小;换算关系正确时,Odoo 会按单位比例换算。
处理:核对供应商价格行单位、采购单单位、库存单位及其换算比例,再检查入库价值;已入库的差异按成本调整流程处理。
异常 C:仓库少收但系统按全收
后果:库存数量虚增,平均成本被不真实的数量摊薄。
处理:按实际数量更正收货;已验证的通过欠单、退货或盘点处理。
异常 D:先卖后收导致负库存
后果:出库时没有可靠成本,后续补货可能导致成本跳变。
处理:先查明原因,清理负库存;不要仅靠手改商品成本抹平。
异常 E:商品成本为 0
后果:销售毛利虚高,库存价值偏低。
处理:补期初成本或修正采购单价,按成本调整流程处理。
8. 谁可以改什么
| 动作 | 采购员 | 仓库员 | 业务财务 | 管理员 |
|---|---|---|---|---|
| 修改采购单价格 | 按授权 | 不可以 | 不可以 | 可以 |
| 修改收货数量 | 不可以 | 可以 | 不可以 | 可以 |
| 修改商品成本 | 不可以 | 不可以 | 需审批 | 需审批 |
| 查看库存价值 | 按权限 | 按权限 | 可以 | 可以 |
| 调整盘点 | 不可以 | 按授权 | 不可以 | 可以 |
商品成本是库存平均结果,不是采购报价。 用改成本的方式修采购错误,会把历史库存和其他批次一起改坏。

截图展示一个示例商品档案:完成两笔示例收货后,在手数量为 200、当前成本为 $33.00,类别使用 AVCO。数值仅用于说明成本字段与库存数量的关系,贵方实际数据以系统记录为准。

截图展示一张已确认采购单中的供应商、商品、数量和单价。价格与税务信息仅作示例,实际采购应以经确认的供应商报价和适用税务规则为准。

收货单展示商品完成收货后的数量。实际操作时,请按正文的验证前检查清单核对商品、单位和数量。
9. 一分钟自查
每次确认大额采购单前,问自己四个问题:
- 这是供应商的最终不含税单价吗?
- 这个价格的单位和我下单的单位一致吗?
- 这个数量达到供应商价格表的门槛了吗?
- 如果以后有人查这张单,Chatter 里能看懂为什么是这个价吗?