Odoo Inventory is the warehouse management module inside Odoo, the open-source ERP used by more than twelve million people worldwide. For Australian warehouses, it replaces the mix of Xero plus Unleashed, a spreadsheet of bin locations, a separate barcode app and a CSV upload to Australia Post with one system that handles multi-site stock, picking, dispatch, valuation and GST in a single ledger. It pairs with the Australian localisation — BAS, ABA bank files, TPAR and Peppol — so finance and the warehouse share the same numbers.
We’re a Perth Odoo consultancy and we implement Odoo Inventory for wholesalers, distributors, importers and 3PLs across Western Australia and the eastern states. This article walks through what the module does, where it shines, where it doesn’t, and how to scope an Australian rollout that lands cleanly.
What Odoo Inventory actually does
The Inventory app is the operational core of any Odoo deployment that touches physical stock. It tracks every unit by location, by lot or serial, by owner and by valuation method, and posts the financial side of every movement automatically. A receipt at the dock writes to a stock-in-transit account; a putaway moves the value to on-hand stock; a dispatch posts cost of goods sold against the sales invoice. There is no monthly stock journal to reconcile.
Around that core sit the operational features: multi-step receipts and deliveries, putaway and removal strategies, reordering rules, cycle counts, scrap and adjustment workflows, package management, and a barcode interface that runs on a phone or a rugged scanner. The whole stack ships with Odoo Enterprise — there is no separate “WMS module” to licence.
The thing that separates Odoo from a standalone WMS is that the same ledger drives Purchasing, Sales, Manufacturing and Accounting. When a sales rep promises a Wednesday delivery in Geraldton, the available-to-promise number includes inbound POs, manufacturing orders and reserved stock at the Welshpool DC.
Multi-warehouse management and locations
Odoo treats every warehouse as a separately addressable entity with its own locations, routes, rules and operations. A typical Australian wholesaler we implement for runs three or four warehouses — a Perth main DC, a Sydney 3PL forward stock holding, a returns location and a quarantine bin for damaged goods. Each gets its own physical hierarchy: zones, aisles, racks and bins, configured to match the way pickers actually walk the floor.
Routes do the heavy lifting. A “make-to-order from Perth, ship from Sydney” customer order triggers an internal transfer rule automatically; an inbound container at Fremantle posts to a quality-hold zone before being released to sellable stock. Once routes are set up properly, the warehouse team stops thinking about transfers — the system generates them.
Stock takes happen by location, not by warehouse. Odoo lets you cycle-count one zone a week against a barcode scanner, with variances posted to a holding account for the controller to investigate before they hit the P&L. For mid-sized operations that run tens of thousands of SKUs, this is the difference between a clean stock figure on the BAS and an annual write-down conversation with the auditor.
Barcode scanning and warehouse efficiency
Odoo’s Barcode app turns a phone or a Zebra TC22 into a picking, packing and receiving terminal. Pickers scan the location, scan the product, scan the package and scan the destination — Odoo updates the move in real time. Receipts work the same way: scan the supplier label, scan the lot, post putaway. There is no separate scan-gun licence and no daily upload batch.
The configuration that makes this work in an Australian DC is barcode nomenclature. Odoo supports GS1 nomenclature out of the box, so a single GS1-128 label encoding GTIN, batch and expiry is parsed in one scan. For wholesalers buying imported goods with EAN-13 only, we usually print an internal label at receipt that adds the lot. It takes two days of configuration; it removes hours of manual entry every week.
Wave and cluster picking come built in. A picker can be assigned ten orders for the same Wesfarmers PO, walk the racks once, and split the cart at the pack station. For an operation moving a few hundred lines a day, this is where Odoo earns its keep against Xero plus a third-party app.
Australian carrier and freight integrations
Odoo’s native shipping connectors include Australia Post, FedEx, DHL, UPS and a generic EasyPost connector that opens up StarTrack, Aramex Australia, TNT, Sendle and Couriers Please. The connector that most Australian warehouses settle on is StarShipIT, sitting between Odoo and the carrier APIs, because it handles label printing, manifesting and returns labels in one place.
The StarShipIT pattern works like this. Odoo confirms the dispatch and pushes the order to StarShipIT with weight, dimensions and a service code. StarShipIT prints the label on a Zebra ZD420 at the pack bench, returns the consignment number and the tracking URL to Odoo, and the customer gets a branded tracking email with the Australia Post or StarTrack tracking link. If a parcel is returned, StarShipIT writes the return back to Odoo and triggers the receipt at the returns location.
For 3PLs running multiple sender accounts — a common Perth pattern, where the WA business ships under its own AusPost account from Welshpool but uses the customer’s StarTrack account from a Sydney bond store — Odoo handles the multi-account setup without custom code.
Inventory valuation and GST in the ledger
Odoo supports four costing methods: standard, FIFO, average cost and specific identification. For most Australian wholesalers and distributors, FIFO with automated valuation is the right answer — every receipt posts at landed cost, every dispatch consumes the oldest layer first, and the inventory account on the balance sheet matches a stock report run at the same moment. No month-end stock journal, no cost-of-sales rebuild.
GST flows through every transaction automatically. The Australian localisation chart of accounts ships with the right GST tax codes; supplier bills against inventory POs apply input GST; sales invoices on dispatch apply output GST; the BAS report rolls them up at quarter-end. Imports go through the deferred GST scheme cleanly when configured against the right tax tag.
The bit that surprises people moving from Xero to Odoo is that the inventory subledger and the general ledger reconcile by definition. There is no “stock on hand” account that has drifted from the warehouse report by $40,000 over six months. If the two don’t match in Odoo, something has been posted manually that shouldn’t have been.
Lot, serial and expiry traceability for regulated and perishable goods
For food, beverage, cosmetics, pharmaceuticals and any importer dealing with batch-controlled stock, Odoo’s lot and serial tracking is the feature that justifies the move. Every receipt records the lot and expiry; every dispatch records which lots went to which customer; FIFO removal becomes FEFO when expiry-based removal is enabled. A recall traces upstream suppliers and downstream customers in minutes, not days.
We implemented Odoo for an Asian-grocery wholesaler in Perth’s eastern suburbs that had been running stock on a homemade Access database and reconciling expiry dates by hand. Three pallets a month were being scrapped because nobody picked them in time. After go-live with FEFO removal, expiry-based scrap dropped to under one pallet a quarter inside three months, and a mock recall on a fish-sauce supplier batch took eleven minutes against a previous best of two days.
Traceability satisfies FSANZ Standard 3.2.2 record-keeping for most food businesses, supports TGA traceability for therapeutic goods, and provides the chain-of-custody data that AS 5810-aligned auditors expect. Configuration requires a clean SKU master and barcode discipline at receipt, but it pays back fast.
Landed costs for imports through Fremantle, Port Botany and Melbourne
For importers, the landed cost feature is what makes the costing numbers honest. A container into Fremantle accrues sea freight, customs broker fees, MPB charges, deferred GST, port handling, transport from the wharf to Welshpool and any insurance — and Odoo lets you allocate every one of those costs across the lines on the bill of lading by weight, volume, value or quantity.
The supplier invoice lands in USD or CNY at the FOB price. The forwarder bill, customs entry and local cartage bill come in over the next four to six weeks. Each is posted as a landed-cost record against the original receipt; Odoo revalues the on-hand layers and posts the difference to the inventory variation account. The next dispatch reflects the true cost of getting that pallet onto a Welshpool rack.
The Australian wrinkle that catches people out is the deferred GST scheme for monthly importers. Odoo handles it cleanly when the customs broker bill is split across the deferred GST line and the freight line. We configure two specific tax tags and a journal mapping at implementation, and BAS field 7A populates without intervention. Our Peppol e-invoicing guide covers the e-invoicing side of the same ledger.
Where Odoo Inventory falls short for Australian warehouses
Odoo is not the right answer for every warehouse. Three honest limits to know before signing a SOW.
It is not a high-throughput pick-to-light or voice-pick WMS. If you’re running ten thousand outbound orders a day through a fully automated Vanderlande or Dematic conveyor, Odoo Inventory is not the WMS for that DC. The native barcode app handles up to a few thousand picks per shift comfortably; beyond that you’re looking at a tier-one WMS like Manhattan SCALE or Körber K.Motion, with Odoo as the upstream ERP.
Native payroll does not interpret Fair Work awards. Storage Services Award penalties, Saturday loadings, public-holiday rates and overtime thresholds need an award engine — Employment Hero, KeyPay or MYOB Advanced — sitting alongside Odoo. Odoo contributes timesheet data; the payroll tool produces the compliant payslip and lodges STP Phase 2.
Native demand-forecasting in the Inventory app is light compared with a dedicated tool like Netstock or Slimstock. For most Australian wholesalers that is fine — Odoo’s reordering rules cover the 80% case — but if you’re running deep ABC analysis with seasonality curves, plan for an integration.
Real implementation cost and timeline for an Australian warehouse rollout
Odoo Online Standard is around $34 AUD per user per month for unlimited apps. A typical fifteen-user warehouse — pickers, packers, receivers, controllers, finance and management — pays about $6,100 AUD a year in licences. The Custom plan, which is required for Odoo.sh hosting, custom modules or multi-company, is around $68 AUD per user per month. Odoo Community is free and self-hosted, but loses the Inventory app’s barcode interface, multi-step routes and landed cost features that most warehouses actually want.
Implementation is the larger number. For a single-warehouse Australian wholesaler with ten to twenty-five users, an Xero or MYOB data migration, AusPost and StarShipIT integration, and a clean SKU master, budget $40,000 to $95,000 AUD delivered over eight to fourteen weeks. Multi-warehouse with 3PL feeds, EDI to a Coles or Bunnings supplier portal, or custom barcode workflows pushes a project to $80,000 to $160,000 AUD over twelve to twenty weeks. Our realistic implementation timeline article breaks the phasing down week by week.
The single biggest cost driver is data quality. A clean SKU list with one barcode, one supplier and one cost per line cuts implementation time by weeks; a master file with three formats of the same product, half the barcodes missing and a column of “ask Greg” notes adds a month. Most of the warehouse projects we run carry a one-to-two-week data-cleanse phase before configuration starts, and it pays for itself many times over.
If you’re running an Australian warehouse on Xero plus a stock add-on, an aging copy of JIM2, or an MYOB plus spreadsheet stack, and you’re feeling the cracks — talk to us. We’ll ask about your SKU count, throughput, carrier mix and current systems, and we’ll give you an honest read on whether Odoo Inventory is the right fit for your operation, what scope makes sense, and what a sensible budget looks like. Our implementation method is the same on a $40,000 single-warehouse rollout as on a multi-site project — the discipline scales, the timeline doesn’t.
Frequently asked.
Can I use Odoo in Australia?
Yes. Odoo ships an Australian localisation pack with the GST chart of accounts, BAS report, ABA bank file generation, TPAR support and native Peppol BIS Billing 3.0 e-invoicing. It runs on Odoo Online, Odoo.sh or self-hosted, and is used by thousands of Australian businesses across manufacturing, wholesale, retail and services.
What is the disadvantage of using Odoo?
The main disadvantages are configuration depth and Australian payroll. Odoo is broad and powerful, which means a poor configuration creates more pain than a tighter tool like Xero. Native payroll does not interpret Fair Work awards, so most Australian businesses run Employment Hero or KeyPay alongside Odoo for STP Phase 2.
Is Odoo good for inventory management?
Yes. Odoo Inventory handles multi-warehouse stock, lots and serials, barcode picking, putaway and removal strategies, real-time valuation and landed costs in one ledger. It compares favourably with mid-market tools like NetSuite Inventory and Cin7, and outperforms Xero plus a separate add-on for any operation moving more than a few hundred SKUs.
Does Odoo have a warehouse management system?
Yes. Odoo Inventory is a full warehouse management system, with multi-step receipts and dispatches, locations and zones, barcode scanning on phones or rugged scanners, wave and cluster picking, replenishment rules and cycle counts. It does not replace a high-throughput WMS like Manhattan or Körber for very large distribution centres, but covers everything most Australian warehouses need.
Is Odoo better than Xero?
They solve different problems. Xero is a great accounting tool with a thin inventory layer; Odoo is an ERP that includes accounting, inventory, purchasing and manufacturing in one ledger. For a business outgrowing Xero plus Unleashed or Cin7, Odoo is usually cheaper and tidier. For a five-person services firm, Xero stays the better fit.
Is Odoo an Australian company?
No. Odoo is Belgian, headquartered in Louvain-la-Neuve, with regional offices in Hong Kong, San Francisco, Dubai and elsewhere. It does not have an Australian office, which is why most Australian implementations run through a local Odoo partner. The Australian localisation, Peppol access point and ATO integrations are maintained by Odoo and the local partner community.