An owner running a transport business, or an importer holding its own stock, wants two clear answers: how many units actually left and were delivered, and what this shipment cost by the time it arrived. When purchasing, receiving, delivery and invoices are recorded in one system, finance can classify value correctly, the warehouse knows what is physical, reserved and delivered, and management can set prices using a clear cost basis. That is what we assess at ToDoOps with transport, storage and import businesses, so the first agreed workflow gives management a useful answer before expanding.

Odoo logistics implementation: whose goods are you moving?

This question shapes the system before any feature does. An importer who owns its goods adds freight to the value of its inventory. A carrier or logistics provider sells the service itself. Freight added to an owner’s inventory valuation is not a carrier’s transport revenue or profit.

Model What gets recorded What to define
Importer owning its goods Purchases, receipts, stock, freight costs Unit cost after freight
Carrier Jobs or trips, operating costs, service invoice Service revenue and its actual cost
Warehouse or 3PL Customer-owned stock, reservation, delivery, fees Ownership, fees and reservation rules

How does Odoo add freight to inventory value?

For an owner of goods, Odoo can spread additional costs across received units through Landed Costs (Odoo 19). It requires the feature to be enabled with a default journal, a product of type Service marked as a landed cost, a splitting method (such as by quantity, weight or value), and original goods in a category using FIFO or AVCO. You then link the cost to a validated receipt, compute the allocation, review it, and Validate to post the landed cost adjustment linked to the receipt. The accounting and valuation setup is a finance decision made within the project scope.

The example below is hypothetical and for an owner of goods, not carrier accounting. Receive 100 identical units at an assumed purchase cost of SAR 50 each, so SAR 5,000. Separately recorded eligible freight is SAR 500. With allocation by quantity, each unit takes 500 ÷ 100 = SAR 5, so the new cost is SAR 55 per unit and the total SAR 5,500 before tax and any other cost. We assume the goods and receipt qualify, with no earlier sales and no other costs.

Freight is counted once: not SAR 500 in the bill plus another SAR 500 as a cash fee. The valuation adjustment does not pay the carrier again. An extra charge can be linked from a vendor bill, but a draft is not a posted or paid bill. Finance reviews which charges qualify for inventory valuation and the tax treatment of the actual transaction.

How does the warehouse know physical, reserved and delivered quantities?

A confirmed purchase order is not received goods. Odoo separates stock reservation from delivery, so management can see what arrived, what is held for an order and what has left for the customer. You can walk through this path in Try Odoo interactively, a guided simulation with fictional data for a sales and stock path. It helps explain how sales and stock connect before discussing your transport workflow, without connecting to real transactions. For a distributor’s stock flow, see the inventory guide, and browse the modules in Odoo apps.

What about a carrier or service company and job costs?

For a business that sells transport or tracks service jobs, we define a workflow that links the job reference to service revenue, costs and proof of completion, according to the service being sold. Odoo’s analytic accounting can connect actual revenue and costs to projects or jobs through configured analytic accounts and distributions (Odoo 19). Review recorded costs and remaining commitments without counting a purchase order and the same vendor bill twice.

If you use a transport management system (TMS), GPS tracking or need a Fasah connection, we define the data exchange, connection and testing. The scope then shows which records stay in the specialist system and which Odoo manages. Examples by activity are in industries.

What determines Odoo implementation cost for logistics?

Effort depends on the business model, number of warehouses, services, stock ownership and external systems. For a starting estimate of implementation cost and savings, you can use the ToDoOps calculators. They are optional, and not a prerequisite for contacting us.

How large is transport and storage in Saudi Arabia?

According to the General Authority for Statistics, total operating revenues of transportation and storage activities in 2024 were about SAR 178 billion, up 4.8% year on year (GASTAT). The publication covers several transport and storage activities. That is why we start with your operating model rather than apply one workflow to carriers, importers and warehouses.

FAQ

Does Odoo replace a TMS or GPS system? These capabilities are defined and tested separately, and connected by agreement where needed.

Is freight counted twice if it appears on the purchase order and the bill? Not automatically. You define which document carries the charge and review the entries before validating.

Does this method suit a carrier? The landed cost example is for an owner of goods. A carrier designs the commercial document for the service, its costs and proof of receipt.

References

  • General Authority for Statistics (GASTAT), “Structural Business Statistics for Transportation & Storage Activities 2024”, official PDF: operating revenues of transportation and storage activities in 2024. Reviewed on 28 October 2026.

  • Odoo 19 documentation, “Landed Costs”: explains requirements, splitting methods and validation steps. Reviewed on 28 October 2026.

  • Odoo 19 documentation, “Analytic Accounting”: explains linking revenue and costs to projects and jobs. Reviewed on 27 October 2026.

Next step

Bring a sample shipment, a freight invoice and a service contract, and we will work out which model above applies to you and define a first scope that can be tested. ToDoOps analyses and configures Odoo, and handles agreed development, migration, training and support under an agreed scope. Get to know the solution on the home page, estimate cost with the calculators, or contact us by call, WhatsApp or the form.