价格表与基础定价 (Pricelists)
核心逻辑: 在 Odoo 中,同一个商品可以有无数个价格。 系统通过 Pricelist (价格表) 来决定具体的客户在具体的时间点,看到的是哪一个价格。 这对于 B2B 业务至关重要:A 客户(批发商)和 B 客户(零售客)看到的必须是不同的价格。
区分:定价 vs 促销
- Pricelist (本篇):直接改变商品的 单价 (Unit Price)。例如:原价 $10,VIP 看到的是 $8。
- Discount & Promotion (1.4 折扣与促销活动):单价不变,额外增加 折扣 % 或 赠品行。例如:原价 $10,打 8 折,单价仍显示 $10 但折扣列显示 20%。
1. 价格体系层级 (Hierarchy)
系统按照以下优先级(由高到低)来决定最终价格:
- 特定价格表规则 (Specific Pricelist Item):
- 例如:“针对 VIP 客户,A 商品卖 $80”。
- 通用价格表规则 (Generic Pricelist Rule):
- 例如:“针对 批发客户,所有商品打 8 折”。
- 产品档案售价 (Sales Price on Product):
- 如果上面都没有定义,系统会取产品卡片上的
Sales Price。
- 如果上面都没有定义,系统会取产品卡片上的
2. 常见价格表类型 (Common Types)
我们通常维护以下几种价格表:
| 价格表名称 | 适用对象 | 策略说明 | 网站显示 |
|---|---|---|---|
| Public Pricelist (零售价) | 散客、未登录用户 | 默认等于产品档案上的 Sales Price。无折扣。 | 默认显示 |
| Wholesale Pricelist (批发价) | 签约分销商 | 基于零售价打折(如 -20%),或针对特定分类设定固定低价。 | 登录后显示 |
| VIP Pricelist (大客户价) | 核心大客户 | 针对高频商品设定极低的协议价 (Fixed Price)。 | 登录后显示 |
| USD/CNY Pricelist (多币种) | 海外客户 | 自动按汇率折算,或手动指定外币价格。 | 自动切换 |
3. 如何配置与分配 (Configuration)
步骤 0:开启功能 (Setup)
首先确保已在设置中开启该功能:Sales (销售) > Configuration (配置) > Settings (设置),勾选 Pricelists (价格表)。建议勾选 Advanced Price Rules 以支持公式。

步骤 1:定义价格规则
进入 Sales (销售) > Products (产品) > Pricelists (价格表):
- 打开一个价格表(如
Wholesale USD)。 - 在 **Price Rules (价格规则)**页签添加规则:
- Computation (计算方式):
- Fixed Price (固定价格):直接输入 $10。最简单,但不灵活。
- Discount (折扣):输入
20%,即在零售价基础上打 8 折。推荐使用,调整零售价时批发价自动更新。 - Formula (公式):例如
Cost + 15%(成本加成)。

- Min. Quantity (最小数量):设置“买 10 个以上才享受此价格”(阶梯价)。
- Computation (计算方式):
步骤 2:分配给客户 (Assign to Customer)
这是最关键的一步! 如果不把价格表挂在客户身上,客户永远看不到专属价格。
- 进入 Contacts (联系人) 模块。
- 打开客户档案。
- 切换到 Sales & Purchase (销售与采购) 页签。
- 在 Pricelist (价格表) 字段,选择对应的表(如
Wholesale USD)。
4. 线上门户的体现 (Website Portal)
价格表不仅在后台生效,客户在网页上看到的价格也是由此控制的。
场景演示:批量阶梯价 (Tiered Pricing)
假设我们在后台设置了规则:买 10 个以上打 9 折。
-
数量 < 10:
- 客户只买了 9 瓶酱,显示原价 $55.2/瓶(总价 $496.8)。

-
数量 >= 10:
- 客户将数量增加到 10 瓶,系统自动触发折扣规则。
- 显示
原价 $552.00现价 $502.32(相当于单价 $50.23)。 
注意:如果客户投诉“为什么我登录后价格没变?”,通常是因为您忘记在客户档案里关联价格表了。
5. 常见问题 (FAQ)
Q: 我能在销售订单 (SO) 上临时改价吗?
- A: 可以,但不推荐。
- 您可以直接修改 SO 行上的
Unit Price。但这只是“一次性”的,下次该客户下单还是原价。 - 建议通过更新价格表来实现长期的价格管理。
Q: 为什么选择了价格表,价格还是 0?
- A: 检查产品档案。
- 如果规则是
Discount 20%,而产品档案里的Sales Price是 0,那么打折后还是 0。
Q: 价格表支持“买赠”吗?
- A: 基础价格表不支持。
- “买 10 赠 1”需要使用 Promotions (促销) 功能(见 1.4 折扣与促销活动),或在价格表中设置“买 11 个付 10 个的钱”(通过公式折算单价)。
