三种成本计价方式:区别、设置与风险
本文是规则字典 (Rulebook),不是日常操作 SOP。 它回答一个核心问题:同一箱货,不同时间用不同价格买进来,系统卖出时按哪个价格计算成本?
适用角色:老板、财务负责人、采购主管、实施顾问
重要边界:计价方式决定“库存值多少钱、销售成本是多少”,但正式总账仍由会计团队在现有会计系统中核算。
1. 先分清两个概念
很多成本问题会被混淆,是因为把“成本怎么算”和“仓库先发哪批货”当成了同一件事。
| 概念 | 回答的问题 | 本项目怎么做 |
|---|---|---|
| 成本计价方法 (Costing Method) | 库存和销售成本按哪个单价计算? | 由管理员在商品类别上设置 |
| 拣货策略 (Removal Strategy) | 出库时先从哪个库位拿货? | 可与批次、有效期配合,如先到期先出 |
先进先出成本法不代表仓库一定先发最早的货。 食品的“先到期先出 (FEFO)”是拣货策略,不是成本计价方法。两者可以同时使用,但不要互相替代。
2. 三种计价方式
2.1 标准成本 (Standard Price)
怎么算:系统使用人为设定的固定单价,不随每次采购价自动变化。
适合什么场景:
- 商品价格长期稳定。
- 公司希望用统一的计划价考核采购和销售。
- 有专人定期维护和调整标准价。
不适合本项目的默认原因:
- 进口食品采购价受汇率、船期、季节影响,固定价很快会偏离实际。
- 标准成本商品不能作为到岸成本的分摊对象。
- 标准价与实际采购价之间的差异需要单独处理,小微企业很难长期维护。
2.2 先进先出 (FIFO)
怎么算:卖出时,假设先入库的货先出库,按最早那批入库的成本计算销售成本。
适合什么场景:
- 每批采购价差异大。
- 希望追溯每一批货的实际采购成本。
- 仓库能稳定按批次管理,且批次记录完整。
对本项目的挑战:
- 需要较完整的批次、入库和出库记录。
- 一旦发生负库存、先卖后收,成本会变得难以解释。
- 财务和业务人员需要更细的成本追踪能力。
2.3 移动加权平均 (AVCO)
怎么算:每次有货入库后,用“当前库存总价值 + 本次入库价值”除以“当前库存总数量 + 本次入库数量”,重新算出平均每单位成本。
适合什么场景:
- 同一商品持续多次采购,价格有波动。
- 不需要区分每一批的精确成本。
- 希望库存价值和毛利相对稳定、容易解释。
本项目第一阶段推荐原因:
- 符合进口食品多批次、价格波动的实际情况。
- 业务员不需要理解每一批的成本差异。
- 后续可以把运费、关税分摊进平均成本。
3. 同一个商品的三种算法
假设销售单位都是“1 箱”,期初库存 100 箱,成本 AUD 30/箱。 本月又采购 200 箱,成本 AUD 33/箱。随后卖出 150 箱。
| 项目 | 标准成本 | 先进先出 | 移动加权平均 |
|---|---|---|---|
| 期初库存 | 100 箱 × 30 | 100 箱 × 30 | 100 箱 × 30 |
| 新采购 | 200 箱 × 33 | 200 箱 × 33 | 200 箱 × 33 |
| 入库后库存总价值 | 按固定标准价 | AUD 9,600 | AUD 9,600 |
| 卖出 150 箱的销售成本 | 150 × 标准价 | 100 × 30 + 50 × 33 = AUD 4,650 | 150 × 32 = AUD 4,800 |
| 剩余 150 箱账面价值 | 150 × 标准价 | 150 × 33 = AUD 4,950 | 150 × 32 = AUD 4,800 |
如果标准价仍设为 AUD 30:
- 标准成本下销售成本是 AUD 4,500。
- 先进先出下销售成本是 AUD 4,650。
- 移动加权平均下销售成本是 AUD 4,800。
同样卖 150 箱,三种方法算出的毛利最多相差 AUD 300。 这就是为什么“成本方法”不是技术细节,而是会影响老板看到的毛利。
4. 怎么设置
4.1 设置位置
成本方法设置在商品类别 (Product Category) 上,不在单个商品上逐一切换。
- 由系统管理员进入
库存 (Inventory)>配置 (Configuration)>产品 (Products)>类别 (Categories)。 - 打开需要设置的类别,例如“冻货类”。
- 找到 库存估值 (Inventory Valuation) 区域。
- 将 成本方法 (Costing Method) 设为 移动加权平均 (Average Cost, AVCO)。
- 保存。

截图中的示例类别已选择 AVCO,仅用于说明设置位置和字段,不代表贵方系统已采用该配置。是否启用及适用范围,需结合数据准备情况,经双方确认并完成验收后确定。
4.2 本项目建议的类别范围
不是所有类别都必须一刀切。建议按以下原则划分:
| 类别 | 建议 | 原因 |
|---|---|---|
| 正常采购、销售、有库存的食品 | AVCO | 价格波动,需要平均成本 |
| 物料、促销品、赠品 | 单独评估 | 可能按标准成本管理更简单 |
| 服务类商品 | 不参与库存计价 | 服务没有库存数量 |
| 运费、关税、清关费等到岸成本商品 | 不参与库存计价 | 它们是服务商品,只用于分摊 |
每个商品类别都要确认自己的成本方法。只改最上层类别,不保证下面的子类别自动跟着改。 实施时要按类别清单逐项核对,并用商品档案抽查结果。
4.3 商品档案上看到的是什么
商品档案显示的“成本方法”是从商品类别继承来的,不能在商品档案里单独选择。 商品档案的 成本 (Cost) 字段在 AVCO 下表示当前平均成本,会随入库和成本调整变化。
4.4 库存估值入账方式
Odoo 19 还区分两种库存估值入账方式:
- Periodic (at closing):期末估值,库存会计处理在期末进行。
- Perpetual (at invoicing):业务发生时自动产生库存相关分录。
本项目建议保持 Periodic (at closing)。 它不会阻止系统计算库存价值和销售毛利,但会影响 Odoo 是否自动生成正式库存会计分录。 到岸成本验证后仍会重算入库价值;只有 Perpetual 才会自动生成对应库存分录。
5. 切换成本方法的风险
成本方法不能当成日常开关。切换会重新计算商品成本,影响库存价值和后续毛利。
风险 A:成本为 0 的商品被切换
如果有大量商品没有期初成本,切换 AVCO 后平均成本仍可能是 0。 结果是库存价值为 0,销售毛利看起来异常高。
上线前必须做:先补齐在售商品的期初成本,再切换。
风险 B:负库存
负库存意味着系统在“没有货”的情况下先出了库,AVCO 无法得到真实成本。 补货后,成本可能出现跳变,历史销售成本也很难追溯。
上线前必须做:清理负库存,或在切换前完成盘点。
风险 C:单位和箱规错误
如果商品库存单位是 CTN-12,采购按“盒”报价 AUD 3/盒,且“盒”与“CTN-12”的计量单位换算关系正确,Odoo 会按换算后的单位成本计价。
真正的风险是计量单位类别不兼容,或换算比例维护错误;这会导致入库价值和 AVCO 结果失真。
上线前必须做:抽查采购单位、库存单位和供应商报价单位的换算关系及比例,不要仅凭单位名称不同就判断价格错误。
风险 D:手工修改商品成本
AVCO 下手工修改“成本”不只是改一个数字,而是形成一次成本重估。 它会改变库存价值,并影响后续销售成本。
规则建议:
- 普通采购员、仓库员、销售员不得修改商品成本。
- 只有老板指定人员或实施顾问可以修改,并需记录原因。
- 每月由财务抽查成本变动记录。
风险 E:切换时点选错
在有大量未完成收货、未完成发货或盘点差异时切换,容易造成前后口径混乱。
建议切换时点:
- 完成一次盘点。
- 清理负库存。
- 补齐期初成本。
- 暂停收发货或选择业务低峰。
- 切换后抽查 10 到 20 个主力 SKU 的库存价值和毛利。
风险 F:把成本方法当成仓库拣货规则
选择 FIFO 成本法,不会自动让仓库先发最早到期的食品。 临期食品仍然需要批次、有效期和 FEFO 拣货策略配合。
6. 常见问题
Q: 能不能不同商品用不同成本方法?
可以,但会增加解释和核对成本。 本项目建议可售库存商品统一 AVCO,特殊类别单独评估,并在上线前形成清单。
Q: 商品成本为什么不能直接手改?
在 AVCO 下,成本是库存价值的平均结果。 手改相当于告诉系统“这批库存现在值另一个价”,必须有财务依据。
Q: 我只改商品档案里的成本,会影响已经卖出的订单吗?
已经完成的出库通常保留当时计算的成本。 但修改会改变当前库存价值和后续销售成本,仍需按成本重估管理。
Q: 总账系统已经算成本了,Odoo 还要设置吗?
要。Odoo 仍要用成本计算销售毛利、库存价值和采购差异。 只是 Odoo 不必承担正式总账入账,期末由月结会计核对库存价值即可。
7. 一句话记住
第一阶段优先用 AVCO 求“稳”,第二阶段用到岸成本求“准”。 没有准确的采购单价,AVCO 只是把错误平均;到岸成本分摊支持 AVCO 和 FIFO 商品,标准成本商品则不能作为分摊对象。