Skip to Content

Odoo Landed Costs in South Africa: Managing Imports, Freight, Duties and Stock Valuation

For South African importers and distributors, the supplier's invoice is rarely the true cost of the goods. Here's how Odoo Landed Costs can help businesses account for freight, customs duties and other import expenses when valuing stock.
October 16, 2026 by
Odoo Landed Costs in South Africa: Managing Imports, Freight, Duties and Stock Valuation
Peter Duffy

For South African importers and distributors, the supplier's invoice is rarely the true cost of the goods. Here's how Odoo Landed Costs can help businesses account for freight, customs duties and other import expenses when valuing stock.

Are You Calculating the True Cost of Your Imported Stock?

A South African distributor imports a container of products from China.

The supplier's invoice comes to R500,000.

The goods arrive in Durban, clear customs and are transported to the company's warehouse in Johannesburg.

By the time the stock is available for sale, the business has paid considerably more than the original R500,000.

There are freight charges, customs duties, clearing fees, insurance and local transport costs.

Yet many businesses still base their product margins primarily on the supplier's purchase price.

This creates a problem.

The business may believe it is achieving a healthy gross profit when the actual margin is considerably lower.

For importers running Odoo, the Landed Costs functionality provides a way to allocate qualifying additional import expenses to the products received into inventory.

At AP Systems, we believe this is one of the areas that deserves particular attention during an Odoo Inventory and Accounting implementation.

Getting stock into the warehouse is one thing. Knowing what that stock actually costs is another. For importers and wholesalers, landed cost management is part of a wider inventory challenge. Stock accuracy, warehouse processes, purchasing and accounting all need to work together. We've explored these operational requirements in our article on why South African distribution businesses are choosing Odoo ERP.

What Are Landed Costs in Odoo?

Landed costs are additional expenses incurred to bring purchased goods to their intended location and condition for sale or use.

For a South African importer, these may include:

  • International freight and shipping charges

  • Customs import duties

  • Freight insurance

  • Customs clearing and handling charges

  • Port and terminal handling fees

  • Transport from the port to the warehouse

Not every charge on an import invoice should automatically be added to inventory value.

The accounting treatment depends on the nature of the expense and the applicable accounting policies.

For example, recoverable import VAT is generally treated differently from non-recoverable customs duties.

Odoo Landed Costs allows qualifying expenses to be allocated across inventory products, helping businesses calculate a more accurate stock valuation.

The functionality is particularly useful for companies importing products through Durban, Cape Town or other South African ports and distributing those products nationally.

A Practical South African Example: Importing Stock From China

Consider a Johannesburg distributor importing 1,000 units of a product from China.

The business receives the following costs:

ExpenseAmount
Supplier invoiceR500,000
International freightR35,000
Customs import dutiesR50,000
Clearing and handling feesR8,000
Freight insuranceR4,000
Durban to Johannesburg transportR13,000
Total inventory costR610,000

This is an illustrative example. It assumes all the additional expenses shown qualify for capitalisation into inventory and excludes recoverable import VAT.

If the business records only the supplier invoice as the cost of stock, each unit appears to cost R500.

But once the qualifying landed costs are included, the picture changes.

Cost per unit before landed costs: R500

Cost per unit after landed costs: R610

That's an additional R110 per unit.

Now consider what happens if the company sells the product for R750, excluding VAT.

Margin calculationBefore landed costsAfter landed costs
Selling priceR750R750
Cost per unitR500R610
Gross profit per unitR250R140
Gross margin33.3%18.7%

The business hasn't changed its selling price.

It hasn't changed suppliers.

But the actual gross margin is significantly different once the qualifying import costs are taken into account.

For a distributor operating on relatively tight margins, that difference matters.

And if the company is importing several containers each month, the impact on pricing and profitability can become substantial.

How Odoo Landed Costs Work

Odoo provides a structured process for allocating landed costs to eligible inventory receipts or transfers.

The exact process depends on the Odoo version, inventory valuation configuration and costing method.

In a typical import scenario, the workflow would look something like this.

1. Purchase the Goods

The company creates a purchase order for the overseas supplier.

The order includes the imported products, quantities and purchase prices.

When the goods arrive, the warehouse processes the receipt in Odoo.

2. Record the Additional Import Expenses

The company receives invoices from the shipping company, customs clearing agent and local transport provider.

These charges need to be recorded using the appropriate products and accounts in Odoo.

Costs intended for landed cost allocation must be configured correctly.

3. Create the Landed Cost Record

The user creates a landed cost record and selects the relevant stock receipt or transfer.

The additional expenses are added as landed cost lines.

Odoo then calculates how those expenses should be distributed across the eligible products.

4. Review the Allocation

Before validating the landed cost, Finance or the responsible user should review the allocation.

This is important where a shipment contains different products with different weights, volumes or values.

5. Validate the Landed Cost

Once validated, Odoo processes the landed cost adjustment according to the configured valuation and accounting rules.

For products using automated inventory valuation, the accounting impact must be reviewed to ensure the costs are reflected correctly.

We would always recommend testing the accounting entries during implementation, particularly when moving from another ERP or changing Odoo versions.

How Should Freight and Duties Be Allocated Across Products?

This is where landed cost calculations become more interesting.

Imagine a container containing two types of products.

One product is relatively light but expensive.

The other is heavy and relatively inexpensive.

Should the freight cost be allocated equally between them?

Probably not.

Odoo supports different landed cost allocation methods, including allocation by quantity, cost, weight, volume and equal distribution, subject to the relevant product and version configuration.

The method selected can have a meaningful effect on the final cost of each product.

For example, allocating freight by weight may be appropriate when shipping costs are closely related to product weight.

Allocating customs duties by product value may be more appropriate in certain circumstances, although actual duty calculations depend on the relevant tariff classification, customs value and applicable rates.

There isn't one allocation method that works for every importer.

At AP Systems, we'd want to understand how the company imports its products and how the additional costs arise before recommending an allocation method.

A business importing machinery has different costing considerations from one importing clothing, electronic accessories or bulk commodities.

The objective is to allocate costs in a way that produces meaningful and supportable inventory valuations.

South African Customs Duties and Import VAT: An Important Distinction

One area that needs careful attention is the difference between customs duties and import VAT.

They are not the same thing.

Customs duties are generally determined according to the product's tariff classification, customs value and applicable tariff provisions.

Import VAT is calculated under South African VAT rules.

For a VAT-registered business entitled to deduct the relevant input tax, recoverable import VAT would generally not form part of the inventory cost.

Customs duties and other qualifying non-recoverable expenses may form part of the landed cost.

This distinction matters because treating recoverable VAT as an inventory expense could overstate stock values.

Businesses should also avoid assuming that every amount appearing on a clearing agent's invoice should be capitalised.

The correct treatment depends on the nature of the charge.

Odoo can support the required accounting processes, but the tax configuration and treatment of each expense must be set up and validated correctly.

For South African importers, we'd recommend involving the company's accountant or tax adviser when establishing the landed cost and import VAT procedures.

What Happens When the Landed Costs Arrive After the Stock Has Been Sold?

This is one of the more difficult practical situations.

A container arrives, the warehouse receives the stock and the sales team starts fulfilling customer orders.

A week later, the company receives the final freight or clearing invoice.

By that stage, some of the imported products may already have been sold.

The business now needs to account for additional costs relating to stock that may no longer be fully available.

The treatment depends on the Odoo version, costing method, valuation configuration and the timing of the transactions.

This is an area that should be tested carefully.

We wouldn't recommend assuming that every landed cost adjustment will automatically produce the expected cost-of-sales treatment in every situation.

During an implementation, we'd want to test a realistic scenario where:

  • Imported goods are received.

  • Some products are sold.

  • Additional freight or clearing costs are recorded afterwards.

  • The landed cost is validated.

  • Finance reviews the resulting stock valuation and accounting entries.

The objective is to establish that the final accounting treatment is appropriate for the business.

For companies importing frequently, the timing of freight invoices and landed cost processing can be just as important as the allocation method.

This is particularly important for companies upgrading Odoo versions. Inventory valuation and the timing of accounting entries need to be understood before changing established procedures. We've covered some of these differences in Why Odoo 19 Changed Stock Accounting Entries (From Two Entries to One).

Why Landed Costs Matter for South African Distributors

South African distributors face a number of cost pressures.

Exchange rate movements can change the rand value of imported goods.

International freight rates fluctuate.

Port and clearing expenses vary.

Local transport adds another layer of cost, particularly for businesses moving goods from Durban to Gauteng or other inland locations.

If these expenses aren't reflected correctly in product costing, management may struggle to understand why gross margins are lower than expected.

The issue becomes more significant when businesses operate across multiple product categories.

Some products may carry substantial freight costs relative to their purchase price.

Others may attract higher customs duties.

Using a general percentage to estimate landed costs across every product may be convenient, but it can distort profitability.

Odoo Landed Costs gives businesses a more structured way to allocate actual qualifying expenses to inventory.

That can improve the information available for stock valuation, pricing decisions and margin analysis.

For businesses importing stock and supplying retailers or online marketplaces, accurate product costing is only one part of the process. Orders, warehouse operations and invoicing also need to be connected. Our article on Odoo Amazon EDI Integration in South Africa looks at how electronic trading can reduce manual processing between retailers and suppliers.

Common Mistakes When Setting Up Odoo Landed Costs

There are several areas we'd pay attention to during an implementation.

Using the wrong product costing method

Landed cost functionality is subject to Odoo's inventory valuation and costing requirements. The relevant products and product categories need to be configured appropriately.

Many of these issues are easier to address when Inventory and Accounting are designed correctly from the start. Businesses planning a new implementation should also understand how configuration, data migration and customisation affect the project budget. Our article on Odoo ERP Costs in South Africa explains those considerations in more detail.

Allocating every cost in the same way

Freight, duties and handling charges don't necessarily have the same cost drivers. Using one allocation method for everything can produce misleading unit costs.

Including recoverable import VAT in stock valuation

This can overstate inventory values and create accounting problems.

Processing landed costs without checking the accounting impact

The valuation adjustments and accounting entries should be reviewed, particularly during testing and the first live imports.

Ignoring the timing of supplier and freight invoices

Where stock is sold before final import costs are available, the business needs an agreed process for dealing with the resulting valuation and accounting implications.

Relying on estimated costs without reconciling actual expenses

Estimated landed costs may be useful for pricing and planning, but the business should establish how estimates will be compared with actual import expenses.

These aren't necessarily complicated problems to solve.

But they are much easier to address during the initial Odoo configuration than after several months of stock transactions have been processed.

Odoo Landed Costs and Inventory Accounting

Landed costs sit at the intersection of Inventory and Accounting.

That's why they should not be treated as an isolated warehouse function.

The stock team is concerned with receiving goods and making them available for sale.

Finance needs to know what those goods cost and how that value is reflected in the accounts.

Purchasing needs to understand the full cost of sourcing products from overseas.

Management needs reliable gross margin information.

Odoo provides the opportunity to connect these processes within the ERP.

However, the correct inventory valuation method, accounting configuration and transaction procedures remain essential.

Businesses upgrading from earlier Odoo versions should also review how their inventory accounting works in the version they intend to use.

The underlying accounting behaviour and journal entry processes can change between versions, so established procedures should be revalidated rather than simply carried forward.

Can Odoo Help Importers Improve Their Selling Prices?

Potentially, yes.

A distributor that understands its actual landed cost has a better starting point for pricing decisions.

Consider the earlier example.

The company initially believed its product cost R500 and was selling it for R750.

Once the qualifying landed costs were allocated, the actual unit cost increased to R610.

If management wants to maintain a gross margin of 30%, the selling price would need to be approximately R871.43, excluding VAT.

That doesn't mean the business can necessarily increase its selling price to that level.

Market conditions, competition and customer agreements still matter.

But management can now see the difference between the margin it wants and the margin it's actually achieving.

That information may influence supplier negotiations, shipping arrangements, product pricing or purchasing decisions.

The value of landed cost management is not simply producing a more accurate inventory balance.

It's helping management make better commercial decisions.

Frequently Asked Questions About Odoo Landed Costs

Does Odoo support landed costs for South African importers?

Yes. Odoo includes landed cost functionality that can allocate qualifying freight, duties and other import expenses to eligible inventory products. The configuration needs to reflect the company's costing method, inventory valuation and accounting requirements.

Can Odoo allocate freight costs across different products?

Yes. Odoo supports several allocation methods, including quantity, weight, volume, cost and equal allocation. The appropriate method depends on the nature of the expense and the products involved.

Should import VAT be included in landed costs?

Recoverable import VAT would generally not be included in inventory cost. Non-recoverable taxes and qualifying import expenses may be treated differently. The correct treatment should be confirmed against the company's tax circumstances and accounting policies.

Can landed costs be added after goods have been received?

Yes, subject to the relevant Odoo configuration and eligible stock movements. However, the timing of the adjustment, particularly when stock has already been sold, should be tested and reviewed for its accounting impact.

Does Odoo automatically calculate South African customs duties?

Odoo Landed Costs allocates cost amounts entered into the system; it should not be confused with a complete South African customs tariff calculation or customs declaration solution. Duty amounts and classifications must be established through the appropriate customs processes or integrations.

Does Odoo Landed Costs work with all inventory costing methods?

No. Eligibility depends on the Odoo version and the relevant product costing and inventory valuation configuration. These requirements should be confirmed before implementing the process.

Our View at AP Systems

For an importing or distribution business, stock costing is not simply an accounting exercise.

It affects pricing, profitability and purchasing decisions.

If a company is importing products regularly but only using supplier purchase prices to calculate margins, we'd suggest reviewing how its additional import costs are being handled.

Odoo Landed Costs can provide a structured way to allocate those expenses, but the value comes from configuring the process correctly.

We'd want to understand how the company imports goods, when freight and clearing invoices arrive, how stock is valued and what information management needs from the system.

The same approach applies to the wider Inventory and Accounting implementation.

At AP Systems, we believe the objective should be to make sure the figures in Odoo reflect what's actually happening in the business.

If your business is still operating separate accounting, inventory and warehouse systems, landed cost management may be one of several processes worth reviewing. Our article on why South African businesses are replacing legacy accounting software with Odoo ERP explores the broader reasons companies are reconsidering their existing systems.

Need Help With Odoo Landed Costs in South Africa?

If your business imports products and needs better visibility into freight, duties, stock valuation and product margins, AP Systems can help assess your Odoo configuration.

We can review your purchasing, inventory and accounting processes, including how import expenses are captured and allocated.

Whether you're implementing Odoo for the first time or reviewing an existing setup, the aim is to establish a process that gives management reliable inventory cost information.

Contact AP Systems to discuss your Odoo Inventory and Landed Cost requirements.

When submitting your enquiry, use the subject “Odoo Landed Costs Assessment” and briefly describe your importing and stock costing requirements.Start writing here...

in News
Odoo vs Sage 300 in South Africa: Is It Time to Consider Moving to Odoo?
If your business is running Sage 300, the question isn't simply whether Odoo can replace it. It's whether moving to Odoo would improve the way your business operates.