Freight & logistics ERP
Every shipment file with its true cost and margin
We configure Odoo for forwarders, brokers and transport companies: each job is a shipment file that collects its quotations, customer invoices and vendor costs, in any currency, even when the carrier's bill arrives weeks after the container sailed.
- Cost and revenue per file
- Sea, air and land jobs
- Multi-currency billing
- POD-linked invoicing
- Industry playbooks on this site
- Offices: Bangkok, New York, Delhi NCR
- Apps of our own on the Odoo Apps Store
- Reply time on business days
- day
What we set up
The forwarding workflow, from quotation to closed file
Odoo brings the accounting, invoicing and multi-currency engine. We add a compact shipment-file module on top, so operations and finance stop living in separate spreadsheets.
Featured module
The shipment file as one record
Each job, sea, air or land, is one file carrying the route, the parties, the container or AWB references, and an analytic account. Every quotation, customer invoice and vendor bill posts to that file, so its margin is a lookup, not a month-end investigation.
- Sea, air, land and cross-border jobs on one model
- Charges carried in buy and sell versions per file
- Every document and reference linked to the file
- File profit visible before the file closes
Standard Odoo set up for your sector first; custom code only where it stops.
Quotations from rate sheets
Sell rates per lane and charge code turn into quotations in minutes, and a won quotation opens the shipment file with its charges already loaded.
Customer invoicing per file
Invoices in the customer's currency, zero-rated and standard VAT lines on the same document, and reimbursable charges passed through cleanly.
Vendor costs that find their file
Carrier, trucking and customs bills match to the file's expected costs when they arrive, and anything unexpected lands in an exception queue, not in silence.
Multi-currency without spreadsheets
Buy in USD, bill in THB, report in both. Odoo carries the rates, the gains and losses, and the revaluation your auditor asks about.
Milestones and status
ETD, ETA, customs clearance and delivery recorded per file, with overdue milestones surfacing on a follow-up list instead of in an angry call.
Documents on the file
House and master bills, packing lists, customs entries and the signed POD live on the shipment file in Odoo Documents, findable years later.
Customer portal
Customers see their invoices, statements and shipment documents in a portal, which quietly ends a whole category of email.
Margin by lane and customer
Profit per file rolls up by lane, mode, customer and salesperson, from the same ledger your accountant closes each month.
Ops meets finance
Operations and accounting reading the same file
In most forwarding companies, operations track jobs in one spreadsheet and accounting books costs in another, and the two meet months later in an argument. We make the shipment file the meeting point: ops fill in the operational side, finance sees the money side, and both look at the same record.
Walk one file end to end
We follow a real job from booking to closed file, including the exceptions, before configuring anything.
Charge codes agreed in writing
Your list of charge codes, freight, THC, customs, trucking, is agreed and mapped once, because it shapes every quote and report after.
Close files with accruals
Files close on time with expected costs accrued, so late carrier bills adjust the accrual instead of reopening the month.
Stay through the first close
We stay through the first month-end close, when accruals, exchange differences and agent settlements all have to reconcile.
Before you commit
The honest limits of Odoo in freight forwarding
Odoo is not a forwarding system out of the box, and anyone who tells you otherwise is selling a demo. This is what the real project involves.
01
The file module is custom work
The shipment file, its charge lines and its documents are a custom module we build, or a third-party app we vet. It is the heart of the build and we scope it first, in writing.
02
Late bills need an accrual habit
Closing a file before every carrier bill arrives means accruing expected costs. The system supports it; the discipline comes from a process we design with your accountant.
03
Tracking APIs vary by carrier
Container and flight tracking integrations differ per carrier and are priced per endpoint. For low-volume lanes, updating milestones by hand is often the honest recommendation.
04
Multi-currency needs a policy
Which rate applies at quotation, invoicing and settlement, and how differences post, must be agreed before go-live. We write that policy down with finance.
05
Customs filing stays outside
Odoo records entry numbers, duties and charges, but it does not file customs declarations. Your broker software keeps that job; we link the references.
06
Odoo Online limits add-ons
The shipment-file module is custom code, which Odoo Online does not accept. Plan for Odoo.sh or your own server from the start.
How we help
Each of these is raised in scoping, priced into the phase it belongs to, and written into the scope, not discovered after go-live. If Odoo is the wrong fit for your operation, we say so on the first call.
Reliability & security
Engineered for reliability & security
Role-based access
Odoo security groups and record rules so each person sees only what their job needs.
Tested backups
Daily backups with restores rehearsed on a schedule. An untested backup is not a backup.
Full audit trail
Chatter history, approvals and document logs show who changed what, and when.
Hardened hosting
TLS everywhere, patched servers, firewalls and monitoring whether you run Odoo.sh or your own server.
PDPA-aware data handling
Personal data kept where it belongs, with retention and access set up around Thailand's PDPA.
Upgrade-safe custom code
Custom work lives in separate, tested modules so the next Odoo version is an upgrade, not a rebuild.
Rollout
A smooth rollout, fully supported
Walk the process
Workshops with the people who do the work, before any configuration.
Configure the baseline
Standard Odoo set up for your sector first; custom code only where it stops.
Pilot with one team
One site, one team, one month, on live data, with a rollback point.
Scale and hand over
Roll out to the rest, train by role, and stay through the first month-end close.
Dedicated consultant
The same person from the first call to go-live.
Documentation you keep
Process guides and handover notes in your own repository.
Training in EN or TH
Role-based sessions for new staff, whenever you need them.
Integrations
Wired into carriers, banks and your partners
Rates arrive in spreadsheets, statuses live with carriers, and money moves through banks in several currencies. We connect what pays for itself and leave the rest manual, honestly. Each integration has retries and a readable log, priced per endpoint.
- Container tracking APIs
- Air cargo tracking
- Excel rate sheets
- Customs broker software
- GPS truck tracking
- Bank statement files
- e-Tax Invoice providers
- Customer EDI feeds
Data contract first
We agree which system owns each field, such as milestone dates, charges or references, before any sync is built.
Retries and a readable log
Failed calls retry automatically and land in a queue your team can see, instead of disappearing silently.
Statements reconciled
Bank lines in THB and USD match to invoices and vendor bills, with exchange differences posting where they should.
Priced per endpoint
Each integration is quoted per endpoint once the data contract is agreed, so adding a carrier later is a known cost.
Engagement options
Pick the starting point that fits your operation
Every option has a fixed scope and price per phase, agreed in writing before work starts. If you choose Odoo Enterprise, licenses are billed by Odoo directly and never marked up by us.
Forwarding fit review
For forwarders deciding whether Odoo fits. A fixed-fee review of your job flow, charge codes and current tools, ending in a written recommendation.
Priced after scoping
- Walk-through of one live file, booking to close
- Charge-code and currency policy review
- Custom module or third-party app recommendation with reasons
- Costed, phased roadmap you keep
Phased forwarding rollout
The core build: the shipment-file module, quoting, invoicing and Accounting, proven on one lane before the rest follow.
Priced after scoping
- Fixed scope and price for each phase
- Shipment-file module scoped in writing
- Charge codes, currencies and accruals configured
- Role-based training for ops, sales and finance
- Support through the first month-end close
Job-costing add-on
For forwarders already on an accounting system who need per-file costing and margin without replacing everything at once.
Priced after scoping
- Audit of the current job and billing flow
- Analytic accounts per file and charge code
- Accrual process for late vendor bills
- Margin reports by lane, mode and customer
FAQ
Questions clients ask first
Does Odoo have a freight forwarding module?
Not in the standard apps. The accounting, invoicing and multi-currency engine is standard Odoo; the shipment file itself is a compact custom module we build, or a vetted third-party app. We recommend one route after scoping and price it as its own line.
Carrier bills arrive weeks late. Can costs still hit the right job?
Yes, and this is the core of the design. Each file carries its expected costs, so a late bill matches against them when it arrives, and files you close early carry an accrual that the bill later adjusts. Unmatched bills land in an exception queue for review.
Can we invoice in USD and keep books in THB?
Yes. Odoo invoices in the customer's currency, keeps the ledger in your company currency, and posts exchange gains and losses automatically. The rate policy, which rate applies at quotation, invoice and payment, is agreed with your accountant before go-live.
Can customers track their shipments themselves?
Customers see invoices, statements and shipment documents in the Odoo portal as standard. Live milestone tracking in the portal is an extension we scope per project, and automated carrier tracking depends on each carrier's API, priced per endpoint.
How long does a forwarding Odoo implementation take?
A focused core covering the file module, invoicing and accounting typically runs six to twelve weeks, with tracking integrations added per endpoint after that. The charge-code cleanup is usually the long pole. You get a phased timeline after scoping, not before.
Get started
Let's build your ERP roadmap
Tell us how your business runs today. You get an honest view of how Odoo fits, what it would take, and a phased plan, within one business day.
- Free first scoping call
- Written scope and phased plan
- Delivery in English or Thai
Prefer to talk first?