Customer Price Agreements in Odoo#
Key accounts often negotiate special pricing that differs from your standard pricelist. Rather than relying on reps to remember - or apply manually - Odoo customer price agreements lock negotiated rates per product, automatically applied to every order.
Creating Customer-Specific Pricing#
Method 1 - Customer Pricelist:
Sales → Configuration → Pricelists → New:
- Name: Acme Corporation - Negotiated Rates
- Currency: USD
- Lines:
- Widget Pro: $89.00 (vs. standard $100)
- Widget Standard: $52.00 (vs. standard $60)
- Implementation Services: $130/hr (vs. standard $150/hr)
Customer Record → Sales & Purchase tab → Pricelist: Acme Corporation - Negotiated Rates
Every SO for Acme automatically uses these prices.
Method 2 - Vendor Pricelists on Customer Record:
Product → Sales tab → Customer Prices → Add a Line:
- Customer: Acme Corporation
- Min Quantity: 1
- Price: $89.00
- Start Date: 2027-10-01
- End Date: 2028-09-30
This is per-product negotiated pricing - useful when only a few products have special rates.
Price Agreement Validity#
Set validity dates on customer-specific prices:
- Start: 2027-10-01 (contract begins)
- End: 2028-09-30 (contract expires)
After expiry: Odoo falls back to the standard pricelist - rep is shown the standard price (which may be higher), prompting a renewal conversation.
Rep Override Controls#
Limit reps' ability to further discount already-negotiated prices:
Sales → Configuration → Settings → Pricelists → Discount Policy: Hide Discount
- Customer sees the negotiated price as the "list price" (no visible discount)
- Rep cannot add further discounts without a manager override
Contract Renewal Alerts#
Sales → [Customer] → Schedule Activity 60 days before agreement expiry:
- Activity: "Price agreement renewal - Acme Corporation expires 2028-09-30"
- Assigned to: Account Manager
Early renewal conversations are more successful than last-minute negotiations.
Reporting on Special Pricing#
Sales → Reporting → Sales Analysis → filter by customer with special pricelist:
- Revenue at negotiated rates vs. standard rates
- Discount impact: what is the revenue gap vs. standard pricing?
- Volume growth: did the special pricing drive the expected volume increase?
If a customer's volume didn't grow as expected: negotiate harder at renewal or revert to standard pricing.

