Odoo Landed Costs: Calculate True Import Costs
Allocate freight, customs, and handling fees directly to your inventory. See why importers and manufacturers choose managed Odoo hosting over DIY complexity.
What are landed costs in Odoo?
Landed costs allocates additional product acquisition expenses to your inventory value after goods are received. These costs include:
- Freight and shipping (ocean, air, ground)
- Customs duties and import taxes
- Insurance premiums during transit
- Handling and brokerage fees
- Port and terminal charges
Without landed costs, your COGS is incomplete. A €50,000 laptop purchase looks fine in accounting. But add €100 in freight and suddenly you need €50,100 per unit to know your true margin.
Odoo's landed costs feature applies these expenses to specific receipts before goods leave the warehouse. The system recalculates inventory valuation and posts the accounting entries automatically.
Who needs this?
You need landed costs if you:
- Import goods from overseas suppliers (freight is substantial)
- Manufacture products using imported raw materials (accurate COGS critical)
- Distribute products across warehouses (consolidate shipments, split costs)
- Run a dropshipping operation from Asia (landed cost = true cost of goods)
- Report to auditors or investors (accurate profit requires accurate COGS)
How Odoo Landed Costs Work
The workflow is straightforward, but the configuration matters. Here is how to enable and use the feature.
Go to Inventory > Settings > Valuation. Turn on landed costs and select your default accounting journal.
Create service-type products for each cost category: International Shipping, Customs Duty, Insurance, etc. Mark them as landed costs in the Purchase tab.
Select the incoming transfer that matches your vendor bill. Choose a split method: equal, by quantity, by current cost, by weight, or by volume.
Go to Inventory > Settings > Valuation. Turn on landed costs and select your default accounting journal.
Create service-type products for each cost category: International Shipping, Customs Duty, Insurance, etc. Mark them as landed costs in the Purchase tab.
Select the incoming transfer that matches your vendor bill. Choose a split method: equal, by quantity, by current cost, by weight, or by volume.
Enable in Inventory Settings
Go to Inventory > Settings > Valuation. Turn on landed costs and select your default accounting journal.
Create Cost Products
Create service-type products for each cost category: International Shipping, Customs Duty, Insurance, etc. Mark them as landed costs in the Purchase tab.
Apply to Receipt and Split
Select the incoming transfer that matches your vendor bill. Choose a split method: equal, by quantity, by current cost, by weight, or by volume.
Validate and Post
Validate the landed cost entry. Odoo automatically updates inventory valuation and posts all accounting journal entries.
AVCO vs. FIFO: How Costing Methods Affect Landed Costs
Odoo supports two costing methods for landed costs. Standard Costing does not support landed costs.
AVCO (Average Cost) — Simplest for High-Volume Products
AVCO recalculates the average cost of every product after you apply landed costs. All future sales use the new average price.
Example: 30 laptops from two vendors
| Purchase | Units | Price/Unit | Subtotal | Landed Cost | Split | Adjusted Cost/Unit |
|---|---|---|---|---|---|---|
| Vendor A | 10 | €50,000 | €500,000 | €100 freight | Equal | €10/unit more |
| Vendor B | 20 | €40,000 | €800,000 | €100 freight | Equal | €5/unit more |
| Calculated Average | 30 | — | — | — | — | €43,340/unit |
With AVCO, all 30 units now cost €43,340 each, reflecting both vendor prices and all freight. Simplest approach; avoids batch-level complexity.
FIFO (First In, First Out) — Most Accurate for Varying Prices
FIFO maintains separate cost layers per purchase batch. Landed costs stay with their batch; COGS follows the order goods were purchased.
Useful when vendor prices differ significantly or you sell in phases. More complex accounting, but most precise if margins vary by supplier.
The Critical Rule
Both methods require FIFO or AVCO costing enabled. You must also enable automated inventory valuation in Accounting > Settings.
Without these two settings, the landed costs feature is unavailable in the UI.
Landed Costs Don't Affect Reordering Rules
This is the gotcha. Odoo's reordering rules ignore landed costs. A cheap supplier with high freight will still be auto-selected if invoice price is lowest. Workaround: manually specify the preferred supplier on the reordering rule.
Self-Hosted DIY vs. Managed Odoo: The Real Cost of Ownership
Landed costs sound simple. The hidden cost is everything else: infrastructure, monitoring, backups, security patches, database tuning, user support.
DIY Self-Hosted Odoo
Upfront and Ongoing:
- VPS/server: €5–50/month (Hetzner, DigitalOcean, AWS Lightsail)
- Admin labor: 20–40 hours setup (€600–2,000 at typical rates)
- Ongoing maintenance: 2–10 hours/month (patches, backups, monitoring, troubleshooting)
- Risk: Data loss if backups fail, security gaps from missed patches, unexpected downtime
Year 1 realistic cost: €600 server + €1,000 setup labor + €1,200–6,000 ongoing = €2,800–7,600/year
Plus your admin time. If one outage costs you €5,000 in lost sales, DIY risk adds up fast.
Managed Odoo Hosting (What Opsily Offers)
Flat monthly fee includes:
- Pre-configured Odoo instance
- Isolated VM with dedicated CPU/RAM
- Nightly encrypted backups
- Automatic security patches and monitoring
- 99.95% uptime SLA
- ISO 27001 certified data centers
- Support for custom modules
Transparent pricing: No surprise bills for users, disk space, or support. Scales with your business.
Competitive Landscape (for reference)
Other managed providers' pricing (as of Sept 2026):
- Cloudpepper: €73/month platform + server cost
- OEC.sh: €0–39/month platform + €4.50+/month cloud cost (most flexible, lowest entry)
- Skysize: Pricing on request (ISO 27001, 99.95% SLA, 7-day free trial)
- Odoo.sh: ~€164/month (developer-focused; Enterprise only)
Opsily removes the DevOps burden. Your team focuses on landed costs, not monitoring server logs.
Why Opsily for Odoo Landed Costs
Stop managing infrastructure. Start optimizing costs.
Pre-Configured Landed Costs
We set up Inventory settings, AVCO/FIFO costing, and accounting journals so landed costs work out of the box. No configuration headaches. Your team uses the feature, not maintains it.
Daily Backups, Automatic Patches
Your Odoo instance is backed up every night and encrypted at rest. Security patches are applied automatically. You never wake up to a compromised server or data loss.
99.95% Uptime SLA
Your inventory and cost data is always available. Isolated VMs mean your business doesn't compete with other tenants for resources. Performance is predictable.
Built for teams who need reliability
Opsily Odoo Managed Hosting Plans
Simple, transparent pricing. All plans include GDPR-compliant German hosting, daily backups, SSL certificates, and unlimited team members. Start free, pay only when you scale.
Loading pricing...
Built on Trust
Your inventory data is critical. Opsily meets the standards that matter to importers and manufacturers across the EU.
GDPR Compliant
Your customer and product data stays in EU data centers. No export to third parties. Fully audit-ready.
Secure German Data Centers
Your data is hosted in German data centers with encryption at rest, rigorous access controls, and industry-leading security practices.
Daily Encrypted Backups
Every night, your entire Odoo database is backed up and encrypted at rest. Recovery is tested and guaranteed.
Automatic Security Patches
OS and dependency updates are applied automatically. You are never running on outdated, vulnerable software.
99.95% Uptime SLA
Service credit if we miss our guarantee. Your business depends on Odoo; we stake our reputation on availability.
Questions About Landed Costs and Odoo Hosting
Everything you need to know before setting up landed costs or switching to managed Odoo.
In Odoo, go to Inventory > Landed Costs and select the incoming transfer (receipt) that matches your vendor bill. Create a line for each additional cost (freight, customs, insurance) using the landed cost products you defined earlier. Choose a split method: equal, by quantity, by current cost, by weight, or by volume. Validate the entry and Odoo automatically recalculates inventory valuation and posts the accounting journal entries. The entire process takes 2-3 minutes per receipt once configured.
Stop Guessing at Your True Cost of Goods
Odoo landed costs work. But they work best when your infrastructure doesn't get in the way. Start your free trial on Opsily today — 7 days, no credit card, fully configured.