如何在Odoo中为产品设置采购与销售不同的VAT税率?
Odoo中区分同一产品采购/销售环节税率的解决方案
1. 用产品模板的内置字段直接配置(最简便方案)
Odoo的产品模板本身就支持分别设置采购税率和销售税率,完全不需要依赖fiscal positions:
- 进入
Inventory > Products > Products,打开目标产品的表单 - 切换到会计标签页,把
采购税率设为0%(对应向个人采购无税的场景) - 把
销售税率设为客户所在地区的VAT税率(比如欧盟常见的20%) - 保存后,采购订单会自动套用采购税率,销售订单自动套用销售税率,同一产品的两个环节税率自动区分
2. 针对多场景的动态适配(可选)
如果客户存在“向企业采购可能需要计税、向个人采购免税”的混合场景,可以结合合作伙伴属性实现:
- 给个人类型的供应商在合作伙伴表单的会计标签页勾选
无需纳税 - 产品默认采购税率设为0%,向企业采购时,手动修改采购订单行的税率,或者通过fiscal positions给企业供应商自动匹配对应税率
- 销售端保持产品销售税率为VAT税率,确保门店销售统一计税
3. 代码自定义扩展(复杂自动化场景)
如果需要根据采购来源自动切换税率的逻辑,可以继承采购订单行模型实现:
from odoo import models, fields, api class PurchaseOrderLine(models.Model): _inherit = 'purchase.order.line' @api.onchange('product_id', 'partner_id') def _onchange_product_partner_for_tax(self): # 假设合作伙伴已添加is_person布尔字段标记个人供应商 if self.partner_id and self.partner_id.is_person: zero_tax = self.env['account.tax'].search([('name', '=', '0%')], limit=1) self.taxes_id = zero_tax else: super()._onchange_product_id()
注:需先在系统中创建0%的采购税,并给合作伙伴添加is_person字段用于标记个人供应商
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

