Managing Product Pricing with Landed Costs in Odoo 18
By Braincuber Team
Published on February 12, 2026
In international trade, the cost of a product is rarely just the purchase price on the invoice. You have Freight, Insurance, Customs Duties, and handling fees. If you ignore these, your profit margins are an illusion.
Odoo 18’s Landed Costs feature allows you to allocate these additional expenses to your inventory valuation, ensuring your "Cost Price" reflects reality. In this guide, we'll walk through a real-world scenario with Global Gadgets, an electronics importer, using both Average Cost (AVCO) and First-In-First-Out (FIFO) methods.
Why Landed Costs Matter?
- True Profitability: Knowing exactly how much an item cost to get to your warehouse.
- Asset Valuation: Accurate balance sheet figures for inventory assets.
- Pricing Strategy: Setting sales prices that actually cover all overheads.
Step 1: Configuration
Before we begin, we must enable the feature. Go to Inventory > Configuration > Settings and check the box for Landed Costs.
Next, create a service product to represent the cost (e.g., "Air Freight").
- Product Type: Service
- Landed Cost: Check the box (in the Purchase tab)
- Split Method: Choose how you want to divide the cost.
- Equal: Same cost per line item.
- By Quantity: Proportional to units.
- By Current Cost: Proportional to value (most common for duties).
- By Weight/Volume: Best for freight charges.
Scenario 1: Average Costing (AVCO)
Global Gadgets buys 10 Smart Watches at $50 each. The product category is set to AVCO.
Process:
- Purchase Order: Buy 10 units @ $50. Validate Receipt.
- Inventory Value: 10 * $50 = $500.
- Freight Bill: A separate bill arrives for "Air Freight" of $100.
- Create Landed Cost:
- Select the Receipt.
- Add the "Air Freight" product ($100).
- Split Method: By Quantity.
- Click Compute and Validate.
Result: Only the accounting value changes immediately. The $100 freight is distributed across the 10 units.
New Cost Price: ($500 + $100) / 10 = $60 per watch.
Scenario 2: FIFO (First-In, First-Out)
Now, let's look at FIFO, which is more time-sensitive. We trade Wireless Earbuds using FIFO valuation.
1. Purchase Batch A: 10 units @ $20. (Total: $200)
2. Landed Cost Batch A: Customs Duty $20.
-> Batch A Cost Adjusted: $22/unit.
3. Purchase Batch B: 10 units @ $30. (Total: $300)
4. Landed Cost Batch B: Customs Duty $50.
-> Batch B Cost Adjusted: $35/unit.
CURRENT STOCK: 20 Units.
Valuation: (10 * $22) + (10 * $35) = $570.
Avg Cost displayed on Product: ($220 + $350) / 20 = $28.50
The Critical FIFO Rule: When you sell items, Odoo takes them from Batch A first. The cost of goods sold (COGS) will be recorded at $22, preserving your accurate margin for that specific batch. Only after selling all 10 units of Batch A will the system start expensing Batch B at $35.
Conclusion
Whether you use AVCO or FIFO, Landed Costs are non-negotiable for importers. They transform your "purchase price" into a "true cost," enabling you to catch margin leaks before they drain your profitability. Odoo 18 automates this complex accounting, ensuring that every cent spent on logistics is accounted for in the final product value.
Optimize Your Inventory Valuation?
Incorrect valuation leads to tax issues and lost profits. Let our Odoo certified accountants set up your valuation layers correctly.
