Odoo for Freight Forwarding
Odoo rollouts for freight forwarders and customs brokers
Forwarders, NVOCCs and customs brokers. One job file across modes, two-sided charge lines, disbursements kept out of gross profit, and margin by lane and salesperson.
A forwarderโs margin does not disappear in one large event. It leaks a hundred at a time: a chargeable weight typed differently on the invoice than on the carrier bill, a supplier cost that arrives after the file was closed, a disbursement recharged at cost but reported as revenue. An Odoo rollout here is about making the job file the only place a number is entered, so the invoice, the vendor bill and the profit report cannot disagree with each other.
Where it hurts today
The job file is really an email folder
Quote, booking, bill of lading, arrival notice and invoice each live somewhere different. Answering where the cargo is takes three people, and the answer is assembled rather than looked up.
Chargeable weight is calculated differently by everyone
Volume converted on a calculator, rounded to taste, keyed twice. The customer invoice and the carrier bill are rated on two different figures, and the difference is only found when somebody queries it.
Disbursements make lane profitability fiction
Duty and taxes paid on the clientโs behalf are recharged at cost, but booked to the same revenue account as freight. Turnover looks impressive, gross profit per lane means nothing, and pricing decisions are made on the wrong number.
Cost accrued, never billed
A supplier invoice lands six weeks after the file is closed. The sell line for it was never raised. Nobody notices because the file is already off the desk, and this is where a forwarderโs money quietly goes.
Agent profit shares are settled from memory
Business nominated by an overseas agent gets reconciled quarterly from two spreadsheets that never match. The relationship survives on goodwill, and the settlement takes a week of someoneโs time every quarter.
The modules that carry the load
Each one is here for a reason specific to freight forwarding, not because it appears on a standard module list.
- ๐ฏ Odoo CRM
Named accounts and trade lanes as a pipeline, with the overseas agent network held as real partner records carrying their profit share terms rather than as an address book.
- ๐ Odoo Sales
Rate quotations with validity dates, transit times and the same two-sided lines the file uses, so a won quotation opens a file and the invoice cannot contradict what was quoted.
- ๐ผ Odoo Accounting
Customer invoices and vendor bills raised from one set of charge lines, each side in its own currency, with disbursed items flagged so they never reach gross profit.
- ๐ Odoo Documents
Bills of lading, waybills, packing lists, certificates and customs paperwork held against the file with the version that was actually issued, not the draft.
- ๐ฆ Odoo Inventory
For groupage, cross-dock and bonded storage: cargo sitting in your own shed becomes stock with a location, rather than a note on a whiteboard.
- ๐ Odoo Fleet
Own trucks and trailers for pre-carriage and delivery, with running cost per vehicle sitting next to what that leg was sold for.
- ๐๏ธ Odoo Helpdesk
Status enquiries and exceptions as tickets against the file, so a delayed vessel produces one conversation with a named owner instead of five people forwarding the same email.
How the rollout runs
- 1 One mode, end to end
Pick the busiest mode, usually sea full container or air, and configure numbering, parties, charge codes, the file and the documents. Every other mode is then a variation of a proven pattern rather than a fresh argument.
- 2 Charges, invoicing and the ledger
Cost and sell on every line, rating bases, billing party rules, multiple currencies, and disbursements separated from income. This is the phase that changes what management can see.
- 3 Remaining modes and customs
Groupage, road and the customs declaration with tariff lines, apportioned freight and insurance in the customs value, and the recharge kept out of profit.
- 4 Margin and the exception reports
Gross profit per file, lane, agent and salesperson, plus the two reports that pay for the project: cost accrued but not billed, and files closed without being invoiced.
What to have ready before kickoff
Projects that slip usually slip here, not in the build. Bring these to the first workshop.
- โ Your charge code list with the basis each one is rated on: per shipment, per container, per chargeable kilo, per cubic metre, per bill, per declaration.
- โ Buying rates per lane and carrier with validity dates, and the selling tariff you actually apply rather than the published one.
- โ The volumetric divisors your tariffs use per mode, confirmed with your operations manager rather than assumed from habit.
- โ Open files at cutover with what has been billed, what has been accrued and what is still expected from suppliers.
- โ The agent list with profit share terms, including the arrangements agreed verbally years ago that only one director remembers.
- โ A named person who signs a file as closed. That single control is what the entire margin report depends on.
Where it connects
Systems we most often connect on freight forwarding projects. The full list is on the integrations page.
Freight Forwarding
For the feature view of job files, bills of lading, containers, customs entries and lane profitability, read the solution page.
Open the Freight Forwarding solutionQuestions we get asked
Can air, sea and road run on one system? +
Yes, on one file structure with a separate numbering series per mode, so anybody reading a reference knows what they are looking at. The differences that matter, the volumetric divisor and the rating basis, are settings rather than separate builds, because tariffs vary by forwarder and by market.
Does it produce bills of lading and air waybills? +
Yes, master and house, with as many houses as a consolidation needs and a refusal to issue a house bill with no master behind it. Container numbers are validated at the desk rather than at the gate, and a box loaded over the payload for its type is rejected before it becomes somebody elseโs problem.
Can we file customs declarations directly from Odoo? +
The declaration is prepared in the system with tariff lines, apportioned freight and insurance in the value, and duty and taxes disbursed onto the file. Whether it can be transmitted electronically depends entirely on your country and on whether an interface is published. We confirm that per country before scoping it, and we never assume it exists.
How do you keep disbursements out of gross profit? +
Duty and taxes paid for the client are flagged as disbursed lines, recharged at cost and posted to their own accounts. They appear on the invoice and never in the profit calculation. It sounds small until you see what it does to lane margin reporting the first month after go-live.
How long does a forwarder rollout take? +
The first mode with charges and invoicing usually runs in the 8 to 12 week band. Additional modes are faster because they copy the pattern. Customs adds time in proportion to how many tariff codes and regimes you actually handle, which is worth counting honestly before the estimate is built.