Warehouse Routing, Lot & Serial Number Problems in Odoo
Routing problems are almost always a mismatch between configured steps and actual floor practice — two-step receipts configured, one-step reality practiced, so stock camps in WH/Input forever. Traceability problems are enforcement problems: lots and serials must be captured at the door or they are fiction.
First, confirm the symptom
- Quantities sit in WH/Input or Pre-Processing that nobody can sell
- Warranty claims can't be traced to a lot or purchase
- The same serial number exists twice (or on two customers)
- Pickers wander because the system doesn't say where things are
1. Stock stuck in WH/Input
Two/three-step receipts create an internal move after the receipt. If the floor team validates only the first document, goods live in Input on paper — unsellable, unreservable, "missing".
- Check Reporting → Stock by Location for balances in Input/Output/Packing zones.
- Validate the pending internal transfers, then either train the second step into the routine or simplify to 1-step (cause #2).
2. Steps configured for a warehouse you don't have
Three-step delivery (pick → pack → ship) makes sense for a large DC — not for a godown with four staff. Over-engineered flows generate documents nobody completes.
- Match steps to reality in Configuration → Warehouses: most SMEs run 1-step both ways, cleanly.
- Add steps only when a physical checkpoint actually exists (QC bay, packing table).
3. Lot tracking on paper, not at the door
Products marked "Tracked by Lots" but receipts validated with auto-generated or dummy lot numbers give you traceability theatre: the data exists, and means nothing.
- Capture the supplier's real lot/batch at receipt — barcode scanning makes this a wand-wave, not typing.
- Decide which products genuinely need lots (expiry, warranty, compliance) and untrack the rest — tracking everything guarantees tracking nothing.
4. Duplicate or recycled serial numbers
Serial-tracked items with reused serials (or "1,2,3" style entries) break the one-unit-one-serial chain — returns and warranty become guesswork.
- Enforce uniqueness (Odoo warns on duplicates — stop overriding the warning).
- Clean history: merge/correct duplicate serials via inventory adjustments per serial, oldest first.
5. No putaway rules, no removal strategy
Without putaway rules everything lands in the default location; without a removal strategy (FIFO/FEFO) pickers grab whatever is nearest — expiry-dated stock dies quietly at the back.
- Define putaway rules per category/product (Configuration → Putaway Rules) so receipts route to their real racks.
- Set removal strategy FEFO for expiry stock, FIFO otherwise, on the location or category.
We rebuild warehouse routing to match your floor, implement barcode-first lot/serial capture, and clean historical traceability. Anchor Marine's serialized stock runs on our setup.
Frequently asked questions
Can we switch from 2-step to 1-step receipts without losing history?
Yes — change the warehouse configuration; existing documents remain. Clear the Input backlog first so nothing strands mid-flow.
Do we need barcode hardware for lots and serials?
Strongly recommended — a basic scanner pays for itself in a week. Odoo's barcode flows (Enterprise, or configured Community alternatives) make capture effortless.