Custom Coupons & Pricelists in Odoo 18
By Braincuber Team
Published on December 26, 2025
E-commerce businesses offering uniform discounts to all customers leave money on the table: wholesale buyers paying retail prices abandon carts, VIP customers get same treatment as first-timers showing no incentive to build loyalty, flash sale promotions cannibalize full-price sales from price-insensitive shoppers, and manual coupon management creates code proliferation where "SAVE10", "WELCOME10", and "DISCOUNT10" all give identical discounts with no customer targeting.
Odoo 18's Pricelist-Based Promotions system enables targeted pricing strategies where wholesale customers automatically see discounted rates, VIP members receive exclusive coupon codes, seasonal promotions apply only to specific product categories, and minimum purchase requirements prevent margin erosion. By linking discount programs to pricelists, you ensure retail customers pay standard prices while authorized partners get configured rates without manual price adjustments or messy coupon code management.
Pricelist-Based Promotion Features:
- Customer segment pricing (retail, wholesale, VIP)
- Promotional codes restricted by pricelist
- Multi-currency pricelist support
- Geographic pricing (country/region groups)
- Minimum quantity and purchase thresholds
- Date-based promotion validity
- Product/category-specific discounts
Understanding Pricelists & Promotions
Pricelists and promotions work together to create sophisticated pricing strategies beyond simple store-wide coupons.
Key Concepts
| Component | Purpose | Example |
|---|---|---|
| Pricelist | Customer segment pricing structure | Wholesale: 20% off all products |
| Promotion Program | Additional discounts/rewards | 10% off orders above $100 |
| Coupon Code | Redeemable promotion trigger | VIP2024 (for VIP pricelist only) |
| Rules & Rewards | Conditions and benefits | Buy 5+ units, get free shipping |
Step 1: Enable Pricelists
Activation
- Navigate to
WebsiteorSalesmodule - Go to
Configuration→Settings - Scroll to "Pricing" section
- Enable "Pricelists" checkbox
- Click
Save
Note: Enabling pricelists unlocks advanced pricing including multiple currencies and customer-specific pricing rules.
Step 2: Create Pricelist
Pricelists define customer segment pricing—who gets what prices.
Creating Pricelist
- Navigate:
Website→eCommerce→Pricelists - Create New: Click
New - Configure Basic Settings:
- Pricelist Name: Descriptive title (e.g., "VIP Customer Pricing", "Wholesale Rates")
- Currency: Select currency for this pricelist
- Company: In multi-company setups, select applicable company (blank = all companies)
- Country Groups (Optional): Restrict pricelist to specific geographic regions
Configure Price Rules
In the Price Rules tab, define how prices calculate for this customer segment:
Price Types:
Fixed Price
Set absolute price regardless of standard rate
Example: All products $100 (ignoring regular $120 price)
Discount (%)
Percentage off the standard price
Example: 20% discount on all products
Formula
Dynamic calculation with margins, rounding, min/max
Example: Cost + 30% margin, rounded to nearest $5
Example Pricelist Configuration
Pricelist: VIP Customer Pricing (USD)
Website Configuration
In the Website section (under eCommerce menu):
- Website: Assign to specific website (multi-site setups) or leave blank for all
- Selectable: Check if customers can choose this pricelist themselves during shopping
- E-commerce Promotional Code: Add coupon code that activates this pricelist
- Users entering this code get pricelist applied
- Overrides automatic assignment
Step 3: Enable Discounts & Loyalty
Activation
- Go to
Website→Configuration→Settings - Find "Discounts & Loyalty" section
- Enable "Discounts, Loyalty & Gift Card"
- Save settings
Step 4: Create Promotion Program
Promotion programs define the discount/reward logic and link to pricelists for targeting.
Program Creation
- Navigate:
Website→eCommerce→Discounts & Loyalty - Create Program: Click
New - Configure Program Fields:
Program Configuration:
Program Name
Internal name (not visible to customers)
Program Type
Coupons, Promotions, Buy X Get Y, etc.
Currency
Must match pricelist currency
Pricelist
🔑 KEY: Select specific pricelist(s)
Start Date
When promotion becomes active
End Date
Promotion expiration (optional)
Limit Usage
Maximum redemptions (optional)
Available On
Website, POS, or both
Critical: Selecting a pricelist restricts promotion to ONLY customers using that pricelist. Leave blank for universal promotions.
Step 5: Configure Rules & Rewards
Rules define conditions customers must meet; rewards define what they receive.
Adding Conditional Rules
- Click "Add" in Rules section: Popup configuration opens
- Configure Rule:
- Discount Code: Odoo auto-generates or enter custom code
Example:
VIP_SUMMER_2024 - Minimum Quantity: Minimum units to purchase
Example: Buy at least 5 units
- Minimum Purchase: Minimum order value (tax inclusive/exclusive)
Example: Spend $50 or more
- Products: Specific products eligible for promotion
- Categories: Product categories included
- Product Tags: Filter by product tags
- Discount Code: Odoo auto-generates or enter custom code
- Save: Click
Save & Close
Adding Rewards
- Click "Add" in Rewards section: Reward configuration opens
- Configure Reward:
- Reward Type: Choose:
- Discount (percentage or fixed amount)
- Free Product
- Free Shipping
- Discount Details (if applicable):
- Discount %: Percentage off
- Apply on: Order total, cheapest product, specific product
- Max Discount: Maximum discount amount cap
- Description in Order: Text shown at checkout
- Reward Type: Choose:
- Save: Click
Save & Close
Example Configuration
Program: VIP Summer Sale
Linked Pricelist:
VIP Customer Pricing (USD)
Rule (Condition):
- Code:
VIP_SUMMER_2024 - Minimum Quantity: 1
- Minimum Purchase: $50
- Products: Bacon Burger (or category/tag)
Reward:
- Type: Discount
- Discount: 10% off sales price
- Max Discount: $50
- Description: "VIP Summer Sale - 10% Off!"
Step 6: Customer Usage
Customers redeem pricelist-restricted promotions through their shopping experience.
Redemption Workflow
Customer Logs In
Customer with VIP pricelist assigned to account
Select Pricelist
If multiple pricelists available, customer selects from homepage dropdown
Shop Products
Prices display according to selected pricelist
Add to Cart
Products added with pricelist pricing applied
Apply Promotion Code
At checkout, enter promotion code (e.g., VIP_SUMMER_2024)
Validation
System checks: correct pricelist? minimum purchase met? product eligible?
Discount Applied
If all conditions met, reward applies to order
Restriction Enforcement
If customer uses wrong pricelist: Promotion code will not apply. System displays error: "This promotion is not available for your current pricelist."
Protection: This prevents customers from stacking wholesale pricing WITH exclusive VIP promotions not intended for them.
Use Case Examples
Wholesale Partners
Pricelist: "Wholesale Pricing" (20% off all products)
Promotion: Additional 5% off orders over $1,000
Retail customers don't see this promotion
VIP Members
Pricelist: "VIP Pricing" (fixed $100 on premium items)
Promotion: Free shipping + 10% off with code VIP2024
Standard customers can't use VIP codes
Geographic Pricing
Pricelist: "European Union Pricing" (EUR, VAT included)
Promotion: Summer sale 15% off for EU customers only
Non-EU customers see different pricing/promos
Seasonal Campaigns
Pricelist: "Holiday Shopper" (activated Dec 1-31)
Promotion: "Buy 2 Get 1 Free" on gift items
Automatically expires after season ends
Frequently Asked Questions
Conclusion
Pricelist-based promotions in Odoo 18 transform crude store-wide discounting into sophisticated, targeted pricing strategies. By linking promotional programs to customer segments through pricelists, you ensure wholesale partners receive their negotiated rates plus eligible volume discounts, VIP members access exclusive seasonal offers, and retail customers see standard pricing without confusion from inapplicable coupon codes flooding the internet.
The combination of flexible price rules (fixed, percentage, formula), conditional promotion logic (minimum purchase, product filters, date ranges), and pricelist targeting creates a powerful pricing engine that protects margins while rewarding valued customers. Whether you're operating B2B wholesale channels, multi-tier loyalty programs, or geographic market segmentation, Odoo's integrated pricing system eliminates manual price adjustments and coupon chaos while maintaining complete control over who sees what prices and which promotions.
Need Help Designing Pricing Strategies?
Our eCommerce experts can help you design customer segment pricelists, configure multi-tier loyalty programs, create seasonal promotion campaigns, set up geographic pricing, integrate with ERP for wholesale management, and implement complete pricing strategies that maximize revenue while maintaining customer satisfaction.
