Mastering Landed Cost Calculation in Odoo 19
When a business imports goods, the supplier’s price rarely represents the final cost. By the time that product arrives at your warehouse, it has accumulated shipping fees, customs duties, insurance premiums, and handling charges. If you only track the supplier’s initial invoice price, your profit margins will look artificially high, and your financial reporting will be inaccurate.
This is where Landed Cost Calculation becomes absolutely essential. Landed cost is the total price of a product once it has arrived at the buyer’s door, encompassing all expenses associated with acquiring and transporting it.
In Odoo 19, the Inventory and Accounting modules handle landed costs seamlessly.Here is exactly how to configure and execute landed costs in Odoo 19.
Why Accurate Landed Costs Matter
If you purchase 100 laptops for $500 each, your inventory value is $50,000. However, if shipping costs $2,000 and customs duties add another $1,000, your true procurement cost is $53,000.
If you do not distribute that extra $3,000 into the valuation of the laptops, you will sell them assuming a $500 cost basis. By utilizing Odoo’s Landed Costs feature, the system automatically redistributes those expenses, raising the cost basis of each laptop to $530. This ensures that when you sell a laptop for $700, Odoo calculates your Gross Margin accurately based on $530, not $500.
Configuring Landed Costs in Odoo 19
Before applying a landed cost to a shipment, you must enable the feature within the Inventory settings.
- Activate the Feature: Navigate to Inventory → Configuration → Settings. Under the Valuation section, check the box for
Landed Costsand click Save.

2. Product Categories: Landed costs can only be applied to products configured with an Automated Costing Method (usually FIFO or AVCO – Average Cost). Go to your Product Categories and ensure Inventory Valuation is set to Perpetual(at invoicing).

3. Create the Landed Cost Service Product: You must create the specific charges (like “Customs Duties” or “Ocean Freight”) as Service Products.
4. Go to Inventory → Products and create a new Service product.

5. Under the Purchase tab, check the box for Is a Landed Cost.
6. Set the Default Split Method (e.g., Equal, By Quantity, By Current Cost, By Weight, or By Volume).

How to Apply a Landed Cost to a Transfer
Once the feature is enabled and your Landed Cost product is created, applying the cost to an incoming shipment is incredibly straightforward.
- Receive the Goods: Create your Purchase Order and add your products. Additionally, add a line for your landed cost service product (e.g., “Ocean Freight”) . Then confirm the PO and validate the incoming receipt in the Inventory app. The products are now in your warehouse at their initial PO price.

2. Create the Vendor Bill: Go to Accounting → Vendors → Bills and create the vendor bill for your Purchase Order. Confirm the bill and a Create Landed Costs button will appear at the top.

3. Create the Landed Cost: From the Vendor Bill, click the Create Landed Costs button at the top of the screen.
4. Select the incoming transfer (the validated receipt) for your Purchase Order in the Transfers field.
5. Click the Compute button. Odoo will automatically distribute the landed cost across the individual items in the transfer based on your chosen split method..

6. Review the Valuation Adjustments tab to see exactly how much cost was added to each product.

7. Click Validate.
Odoo immediately creates the necessary journal entries, updating the cost of the received products to reflect the true landed value.
The Different Split Methods in Odoo 19
To guarantee financial precision, Odoo offers multiple mathematical ways to distribute the landed costs:
- Equal: The cost is split perfectly evenly across all product lines, regardless of size or value.
- By Quantity: The cost is divided by the total number of items. If you bought 100 laptops and 100 keyboards, each item absorbs an identical fraction of the cost.
- By Current Cost: The cost is distributed proportionally based on the monetary value of the items. More expensive items absorb a higher percentage of the landed cost.
- By Weight : The cost is split based on the physical weight of the products.
- By Volume: The cost is split based on the volume of the products.
Landed costs ensure your inventory value reflects what you truly paid to get the goods into your warehouse. Odoo 19 makes this process seamless, automatically distributing these charges across your received products based on your chosen split method. The result is accurate product costs, reliable profit margins, and cleaner books.
Need help setting up Landed Costs or any other Odoo 19 feature? Our experts at Infintor Solutions are here to guide you.
