Introduction
Many Nigerian businesses operate in a dual-currency reality. While the company’s base currency is Naira (NGN), a significant portion of customers prefer to transact in US Dollars (USD). The challenge is not just selling in both currencies, but doing so accurately, consistently, and without manual calculations.
Odoo provides a powerful and elegant way to handle this scenario using Pricelists and Currency Rates, without customization. This article explains a proven setup that allows you to:
-
Maintain fixed USD prices for most customers
-
Automatically convert USD prices to NGN for local customers
-
Preserve clean accounting and accurate reporting
The Business Scenario
-
Company currency: NGN
-
Majority of customers (≈90%) place orders in USD
-
Minority of customers (≈10%) place orders in NGN
-
Product prices are primarily defined in USD
-
NGN prices should be calculated dynamically using exchange rates
This is a very common setup for manufacturing, trading, and service businesses in Nigeria.
The Core Principle
The key idea is simple:
USD remains the master selling price, while NGN prices are derived automatically using exchange rates.
This avoids duplicate pricing, pricing inconsistencies, and manual errors.
Step 1: Enable Multi-Currency in Odoo
First, ensure multi-currency is enabled:
Accounting → Configuration → Settings → Currencies
Activate Multi-Currency and ensure both USD and NGN are enabled.
Step 2: Maintain Accurate Currency Rates
Currency rates are the engine of this setup.
Navigate to:
Accounting → Configuration → Currencies → USD
You can:
-
Maintain rates manually (recommended in volatile FX environments)
-
Or use an automatic provider
Example:
-
1 USD = 1,600 NGN
Odoo automatically calculates the inverse rate and applies the correct rate based on the document date.
Step 3: Create a USD Pricelist (Master Pricelist)
This pricelist holds your actual product prices.
Sales → Products → Pricelists
-
Currency: USD
-
Pricing rule: Fixed price per product
This pricelist is assigned to customers who transact in USD. No exchange rate is applied at the sales price level.
Step 4: Create an NGN Pricelist Derived from USD
This is where Odoo does the magic.
Create a second pricelist with:
-
Currency: NGN
-
Based on: USD Pricelist
-
Price computation: Formula
This tells Odoo:
“Take the USD price and convert it to NGN using the current exchange rate.”
You may optionally add:
-
Rounding rules
-
Small margins to absorb FX volatility
Step 5: Assign Pricelists to Customers
Each customer is assigned the appropriate pricelist:
-
USD customers: USD Pricelist
-
NGN customers: NGN Pricelist
Path:
Contacts → Customer → Sales & Purchase → Pricelist
From this point on, pricing is automatic.
What Happens on a Sales Order
USD Customer
-
Price pulled directly from USD Pricelist
-
No exchange rate conversion
-
Invoice issued in USD
-
Accounting converts values to NGN for reporting
NGN Customer
-
Price derived from USD Pricelist
-
Automatically converted using exchange rate
-
Invoice issued in NGN
-
No manual price adjustment required
Why This Approach Works
This setup delivers several key benefits:
-
Single source of truth for pricing (USD)
-
Automatic, transparent NGN conversion
-
Accurate margins and reporting
-
No customization required
-
Scales easily as customer base grows
Most importantly, it eliminates spreadsheet-based pricing and manual errors.
Common Mistakes to Avoid
-
Creating fixed NGN prices per product
-
Manually overriding prices on sales orders
-
Managing exchange rates per order
-
Duplicating products for different currencies
These practices increase risk and reduce system integrity.
Conclusion
Odoo’s pricing engine is designed for real-world, multi-currency businesses. By anchoring your prices in USD and deriving NGN prices through currency-aware pricelists, you achieve a system that is accurate, auditable, and future-proof.
At Growth Stack, we help businesses design ERP systems that reflect how they truly operate, not how spreadsheets force them to work.
If your business sells in multiple currencies and you want a clean, sustainable Odoo setup, this approach is the right place to start.











