Odoo for Trading Companies: Purchasing, Routes and Stock Control
How Odoo runs trading and distribution: vendor pricelists, blanket orders, warehouse routes, reordering rules, landed costs and 3-way matching in Odoo 20.
Trading firms live on thin margins, so a late order, an unbilled freight charge or a wrong reorder point hurts profit straight away. Our Odoo implementation services for trading companies start by mapping how you buy, store and resell before any setting is changed.
This guide is for owners, purchase heads and operations managers at importers, wholesalers and distributors. It stays on the trading flow; for bins, putaway and picking methods, read our Odoo warehouse management system guide.
What does Odoo for trading companies cover?
Odoo for trading companies covers the full buy, hold and resell cycle in four connected apps. Each app owns one part of the job, and they share one product, vendor and customer list.
| Trading job | Odoo app | What it handles |
|---|---|---|
| Buying | Purchase | RFQs, purchase orders, vendor pricelists, agreements |
| Holding stock | Inventory | Warehouses, routes, reordering rules, lots, valuation |
| Reselling | Sales | Quotes, customer pricelists, delivery promises |
| Paying and margin | Accounting | Vendor bills, 3-way matching, landed costs, COGS |
| Shipping | Inventory with carriers | Labels, tracking, delivery documents |
| Online orders | eCommerce or connectors | Web and marketplace orders into the same stock |
The point is not the app list. It is that a sales order can trigger a purchase, the receipt updates stock and cost, and the vendor bill checks against what arrived, all without re-keying.
Why do trading companies outgrow spreadsheets and basic tools?
Trading companies outgrow spreadsheets when stock, purchasing and billing stop agreeing with each other. The signs are usually visible on the warehouse floor and in month-end accounts at the same time.
- Stock-outs and overstock together: fast movers run out while slow movers fill racks, because reorder points are guesses.
- Hidden import costs: freight and duty sit in a separate ledger, so product margins look better than they are.
- Paying before receiving: bills are approved against the purchase order, not against what reached the dock.
- Vendor drift: nobody tracks which supplier is late, so the same vendor keeps getting the order.
- Sales promises without data: staff call the store before quoting a delivery date.
If three or more of these sound familiar, the problem is the process and the system together. A fit review before you buy licenses saves rework later.
How does Odoo procurement work for distributors?
Odoo procurement works by storing vendor prices and lead times on each product, then creating RFQs from demand automatically or on request. Buyers spend their time choosing vendors, not typing orders.
Odoo's vendor pricelists fill RFQs with unit price, quantity and lead time, and can be imported in bulk from XLSX or CSV. When a vendor has no pricelist line, Odoo reuses the price from that vendor's last confirmed PO line.
For bigger buys, the Purchase Agreements setting unlocks two tools. Blanket orders fix prices with one vendor for repeat orders over a period. Alternative RFQs let you send the same lines to several vendors and compare them.
Odoo 20 makes this sharper. Our Odoo 20 Purchase release notes show a reworked comparison screen that converts each offer to the product's own unit, so a pack price and a unit price compare fairly.
Three more Odoo 20 changes help importers:
- Default Incoterm per vendor: set once on the vendor, then filled on every new RFQ and PO.
- Promised date: you can move the expected arrival when a vendor warns of a delay, while the on-time rate still measures against the original promise.
- Vendor quality rate: the share of passed quality checks on a vendor's receipts, shown on the vendor and the PO.
How should a trading company control vendor bills in Odoo?
A trading company should bill goods on received quantities and switch on 3-way matching, so it only pays for what actually arrived. This one setting closes a common cash leak in distribution.
Odoo's control policy is set per product. "On ordered quantities" drafts the bill when the PO is confirmed. "On received quantities" drafts it only after goods are received, using the quantities received.
With 3-way matching on, each vendor bill shows a "Should Be Paid" status of Yes, No or Exception. If someone edits the bill so it no longer matches the PO and receipt, Odoo flags an Exception rather than blocking the change, so your finance team sees it before payment.
Services such as freight usually stay on ordered quantities. Physical goods should almost always follow received quantities.
Which warehouse routes fit a trading business?
Most trading businesses need two or three route types: a standard receipt and delivery, plus dropshipping or replenish on order for items they do not stock. Pick routes by product group, not one route for everything.
| Route | When a trader uses it | Watch out for |
|---|---|---|
| One step receipt and delivery | Small stores, low order volume | No check between dock and shelf |
| Two step receipt or delivery | Inspection on arrival, or pick then ship | One more transfer per order |
| Three step receipt | Quality control before stock | Slower putaway, needs discipline |
| Dropshipping | Vendor ships straight to your customer | Stock never touches your reports |
| Replenish on order (MTO) | Special or slow items bought per sale | Cancelling the RFQ breaks the link |
| Inter-warehouse resupply | Branches fed from a central store | Transit times in your promises |
Odoo receives and delivers in one step by default; multi-step routes must be switched on. With dropshipping, items do not appear in the Locations or Aging reports because you never hold them.
For replenish on order, Odoo links the RFQ to the sales order. If that RFQ is cancelled, Odoo does not create a new one, so buyers should edit it instead.
Groups with several legal entities can resupply one company from another. In Odoo 20, intercompany routes carry the transfer value across companies and pass price or quantity changes on linked orders to the other company.
How does Odoo stock control stop overbuying and stock-outs?
Odoo stock control uses reordering rules with a minimum and maximum per product and warehouse, then a replenishment report to review what needs buying. It replaces gut feel with forecasted quantities.
A reordering rule creates an RFQ when forecast stock falls below the Min, sized to bring it back to the Max. Odoo uses the vendor at the top of the product's vendor list. Rules can run automatically or wait for a buyer to confirm.
The replenishment report gathers manual rules, lead times and upcoming demand in one screen, so buyers can consolidate orders by vendor. In Odoo 20, a Suggest button sets Min and Max from demand history, days of coverage and order frequency.
Traders also need clean units. Odoo handles units of measure, such as buying by the carton and selling by the piece. Packagings can carry their own barcodes, and Odoo 20 allows packagings per variant.
A working setup order for stock control:
- Clean the product list and set purchase and sales units for each item.
- Load vendor pricelists with real lead times.
- Class products by sales speed and value.
- Create reordering rules for fast and steady movers first.
- Use replenish on order or dropshipping for slow and special items.
- Review the replenishment report weekly and tune Min and Max.
How do landed costs protect margins on imported goods?
Landed costs protect margins by adding freight, duty, insurance and fees to the cost of the goods they belong to. Without them, imported items look more profitable than they are.
Odoo's landed costs feature splits extra charges across a receipt by Equal, By Quantity, By Current Cost, By Weight or By Volume. The landed cost is posted to stock value, so later sales carry the true cost.
Importers hit the limits fast. On the Odoo forum, one user asked how to allocate duty when products in one shipment carry different duty rates, from 0% to 20%, using only the standard split methods.
Odoo 20 helps here. Each landed cost line has an "Apply On" field, so import duty can hit only the products it concerns while freight spreads across the whole receipt. Odoo 20 also updates the cost of goods sold when a cost changes after delivery.
That retroactive update matters for FIFO and AVCO choices. Our guide to Odoo 20 inventory valuation explains the method and the checks to run before you upgrade.
What changed in Odoo 20 for trading and distribution companies?

Odoo 20 brings practical buying and costing changes for traders rather than a new module. The table lists the ones that matter most to purchase and finance teams.
| Odoo 20 change | Why a trader cares |
|---|---|
| Landed costs per product | Duty charged only to the items it concerns |
| COGS update after cost changes | Late freight bills correct sold margins |
| Suggested Min and Max | Reorder levels set from real demand |
| Default Incoterm per vendor | Fewer errors on import orders |
| Promised date on POs | Honest vendor on-time rates |
| Improved intercompany resupply | Group companies trade stock at the right value |
Most of these work on a fresh Odoo 20 database straight away. On an upgrade from Odoo 19, confirmed POs have no promised date, so they are left out of the on-time rate until one is set.
Odoo for trading and distribution by industry
The same Odoo apps are set up differently for each trading sector, because each one loses margin in a different place. An Odoo wholesale setup for FMCG looks very different from one for an importer of parts.
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Importers | Duty and freight hidden from margin | Landed costs with Apply On, Incoterms | Build cost templates per lane |
| Electronics and IT hardware | Serial numbers and warranty claims | Serial tracking on receipt and delivery | Set scanning at the dock |
| FMCG wholesale | Expiry and fast reorders | Lots, expiry dates, reordering rules | Tune Min and Max by season |
| Building materials | Bulk units sold in pieces | Units of measure and packagings | Map carton, pallet and piece |
| Auto and industrial parts | Thousands of slow items | Replenish on order and dropshipping | Split stocked and non-stocked items |
| Multi-branch distributors | Branch stock out of balance | Inter-warehouse and intercompany routes | Design resupply rules |
For freight forwarders and transport firms rather than goods traders, see our page on Odoo ERP for logistics.
What does Odoo cost for a trading company?
Odoo for a trading company costs per-user licenses plus a one-time implementation, and implementation is usually the larger number. Plan both before you sign.
On the Odoo pricing page, billed yearly in the US, Standard is US$31.10 and Custom is US$61.00 per user a month; in India they are Rs 725 and Rs 1,350. First-year discounts apply to new users. Multi-company and intercompany flows need the Custom plan.
Our published Odoo implementation cost ranges are small $3k to $9k (4 to 8 weeks), mid-size $9k to $27k (8 to 14 weeks) and large $27k to $150k+ (12 to 24 weeks). Data migration adds $1.2k to $9k depending on source system and years of history. These are guides, not fixed quotes.
Main cost drivers for traders are the number of warehouses and companies, product count, import costing rules and integrations with marketplaces or carriers. Our Odoo pricing guide lists the license details.
How do you roll out Odoo in a trading company?
Roll out Odoo in a trading company by fixing product and vendor data first, then routes, then buying rules, and only then integrations. Rushing to integrations before clean data is the most common mistake we see.
- Map the flow: follow one import order and one local order from RFQ to payment.
- Clean master data: products, units, vendors, lead times and customer pricelists.
- Set routes: choose receipt and delivery steps per warehouse and mark dropship or MTO items.
- Configure buying: vendor pricelists, agreements, control policy and 3-way matching.
- Add costing: landed cost products, split methods and valuation method.
- Load opening stock: by warehouse, lot or serial, then run a full count.
- Connect channels: marketplaces, carriers and EDI once core flows pass testing.
- Train and go live: buyers, storekeepers and finance trained on their own screens.
For a first number on your scope, try the Odoo implementation cost calculator.
How iVentureTeam helps with Odoo for trading companies

We set up Odoo the way your goods actually move, from vendor quote to customer delivery and vendor payment. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Flow mapping: import, local, dropship and branch flows drawn and agreed before configuration.
- Procurement setup: vendor pricelists, blanket orders, alternative RFQs and reordering rules.
- Costing and control: landed costs, valuation method, control policy and 3-way matching.
- Data migration: products, vendors, open orders and opening stock moved with our Odoo migration services.
- Integrations: carriers, marketplaces and tracking tools connected by our Odoo integration services.
Odoo procurement case study: Confidential eCommerce Retailer
A US retailer could not see where vendor shipments were, so purchasing planned receipts around vendor promises. We connected Odoo Purchase and Sales to AfterShip in a 5-week delivery.
Inbound purchase order shipments had no tracking link in Odoo, and outbound statuses went stale once a delivery left the dock. With hundreds of couriers in play, building one connector per carrier was never going to be maintainable.
We used AfterShip as one tracking layer for 686 couriers. A custom Purchase extension records the vendor's tracking details against the matching PO, and an Odoo scheduled action polls AfterShip to refresh both sales and purchase tracking records.
Purchasing now plans receiving around live inbound tracking rather than vendor promises. Read the AfterShip tracking for Odoo Sales and Purchase case study.
The bottom line on Odoo for trading companies
Odoo is a strong fit for trading and distribution companies that want purchasing, stock, landed costs and vendor bills in one place, as long as routes and buying rules are designed first. Odoo 20 adds useful costing and vendor tracking on top.
Start with your product and vendor data, pick routes per product group, bill on received quantities and post every import cost. Get those right and margin reports start to match the bank.
Ready to map your trading flow in Odoo?

Show us one import order and one local order, and we will show you how they would run in Odoo. Plan your Odoo trading and distribution setup with us, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
Is Odoo good for trading companies?
+
Yes for most small and mid-size traders. Purchase, Inventory, Sales and Accounting share one database, so orders, stock, landed costs and vendor bills stay in step. Very high-volume automated warehouses may add a specialist WMS.
Which Odoo modules does a distribution company need?
+
Most distributors start with Purchase, Inventory, Sales and Accounting. Barcode, eCommerce, Quality and carrier connectors are added as volume grows. Our app selector tool suggests a starting set by industry.
Can Odoo handle landed costs for imports?
+
Yes. Odoo adds freight, duty, insurance and fees to product cost and splits them by quantity, cost, weight, volume or equally. In Odoo 20 a cost line can apply only to selected products, which suits mixed duty rates.
How do reordering rules work in Odoo?
+
You set a minimum and maximum per product and warehouse. When forecast stock drops below the minimum, Odoo creates an RFQ to the first listed vendor for enough to reach the maximum. Odoo 20 can suggest the levels from demand history.
Does Odoo support dropshipping?
+
Yes. Once Dropshipping is enabled in Purchase settings, a sales order for a dropshipped product creates an RFQ asking the vendor to ship straight to your customer. Dropshipped items never enter your stock reports.
What is 3-way matching in Odoo?
+
It checks the vendor bill against the purchase order and the goods received before payment. Each bill shows a Should Be Paid status of Yes, No or Exception, so finance only pays for goods that arrived.
Can Odoo run several companies that trade with each other?
+
Yes, on the Custom plan. Intercompany routes let one company resupply another, and Odoo 20 carries the stock value across and passes order changes to the other company.
How long does an Odoo rollout take for a distributor?
+
Our published ranges are 4 to 8 weeks for small projects, 8 to 14 weeks for mid-size and 12 to 24 weeks for large ones. Warehouses, companies, import costing and integrations decide where you land.
Ready to put this into action?
Talk to iVentureTeam about Odoo, AI automation, or custom development — get a free, no-obligation consultation.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
Odoo 20 AI Features and IAP Credits: Monthly Cost Breakdown
Odoo 20 AI explained: what AI agents automate, setup limits, IAP credit prices, the Custom plan upsell and a sample monthly budget for a 25-user firm.
Odoo Industry Packages Explained: Install, Customize and Roll Back
What Odoo industry packages install, which plan they need, and how to install, customize and roll back on Odoo Online, Odoo.sh and on-premise safely.
Odoo UAT for Odoo 19 and 20: Scenarios, Sign-Off and Defect Triage
Odoo UAT guide for Odoo 19 and 20: scenario templates, where to test, defect triage by type and severity, sign-off criteria and a final go-live checklist.
