When the system says you have stock and the shelf is empty, the software is rarely the cause. The cause is almost always a movement of goods that was not recorded, or was recorded late, wrongly or in the wrong place. The fix is process: count regularly, name your locations clearly, and record every movement on the day.
Where the gap comes from
Look at what actually happens in the warehouse. The usual causes are:
- goods received but not entered, or entered days later
- items taken for a rush order with no record
- returns put back on the shelf without being booked in
- the same item stored in two places, with only one recorded
- wrong units, such as boxes entered as single pieces
- damaged or expired goods thrown away quietly
None of these needs clever software to solve. Each needs a habit.
Receipts: record what arrives, when it arrives
Receiving is the front door of your stock. If the door is careless, everything behind it is wrong. Match what arrives against the purchase order, count it, and record it before it goes to the shelf. If the delivery is short or damaged, record that too, and tell whoever buys.
A rule that helps: nothing goes to a shelf until it has been received in the system.
Locations: every item has an address
Stock in “the warehouse” is hard to find and harder to count. Break the space into named locations: a rack, a shelf, a bin. Label them physically. Then each item has an address, and a count becomes a walk along known places rather than a search.
If you hold stock in more than one site, give each site its own structure and record transfers between them as movements, not as a quiet carry across.
Counts: small and often beats big and rare
A full count once a year is slow and disruptive, and by the time you finish, the numbers have moved. Count smaller sections more often instead:
- fast-moving items most often
- high-value items on a fixed rhythm
- any item where a mismatch has just been found
When a count finds a difference, do not simply adjust the number. Ask why. A difference with a reason teaches you something; a difference with no reason will come back.
Keep issues and returns honest
Deliveries, internal use, samples and scrap all reduce stock. Give each a way to be recorded, even if it is a simple reason code. If people have to bend the rules to record a movement, they will skip it. Make the honest path the easy path.
Barcodes help, if the basics are right
Scanning speeds up receiving, picking and counting, and cuts typing mistakes. But a scanner on top of unclear locations and late recording only produces wrong numbers faster. Fix the process first. Barcode operations in Odoo use the barcode app, which is part of Enterprise.
A simple recovery plan
If your stock is already wrong, do not try to fix everything at once.
- Choose one area and do a careful count.
- Correct the system to match, with a note on the cause.
- Change the habit that caused the gap.
- Move to the next area.
After a few areas, the same causes show up again and again, and you can fix them at the root.
Check that other teams record their part
Stock is touched by sales, purchase and the shop counter too. If a salesperson promises goods that are not booked out, or a buyer’s order is not linked to a receipt, the warehouse takes the blame for a gap it did not create. Walk the whole flow, not just the shelf.
Where Teapot Techies fits
We set up Odoo inventory around how goods really move: warehouses and locations, stock moves and counts, reordering rules and, if you want them, barcode operations. We also load opening stock and check it with a physical count. See inventory on Odoo, or talk to us about Odoo implementation.