Receiving and Storing Stock in Odoo Inventory: A Practical Guide for HK SMEs
How to receive shipments, set up product tracking, organise storage locations, and keep stock accurate in Odoo Inventory — written for Hong Kong small businesses.

When Spreadsheets Stop Coping
Most Hong Kong SMEs run their warehouse on a shared spreadsheet for far longer than they should. It works until it doesn't: a customer order goes out short, a returned item disappears into the back room, and someone spends half a morning hunting for a carton that was "definitely on shelf three". When floor space is rented by the square foot, every misplaced box is money sitting idle.
Odoo Inventory pulls all of this into one place. Product records, storage locations, and incoming deliveries live in the same system, and Odoo keeps a running count of what you hold and where it sits — no end-of-week reconciliation against a paper log.
At APAA we set this up for HK businesses regularly, so this guide walks through the four workflows that matter most day to day: configuring how each product is tracked, mapping your storage locations, receiving a shipment, and keeping the stock figures honest afterwards.
Deciding How Each Product Is Tracked
Not every item deserves the same level of attention. Getting the tracking method right at the product-creation stage saves a lot of clean-up later.
Opening a Product Record
- Open the Inventory application.
- From the top menu, go to Products > Products.
- Click New to create a product, or open an existing one to edit it.
Items You Want to Track
For anything valuable or tightly controlled — think networking gear, display fridges, or machine spares — configure tracking like this:
- Set Product Type to Goods (a physical item).
- Tick Track Inventory and pick the method that fits:
- By Quantity — keeps a live on-hand count. This is the right default for the bulk of your catalogue.
- By Lots — groups units under a batch number. Use it for anything with a shelf life, such as packaged food, skincare, or supplements.
- By Serial Number — gives every single unit its own identifier. Best for laptops, costly instruments, or anything you need to trace individually.
A local example: A Kwun Tong electronics distributor would track its laptops By Serial Number, because each machine carries its own warranty window. The mice and chargers shipped alongside them only need a running total, so By Quantity is enough.
Items Not Worth Tracking
Low-value consumables — packing tape, pens, cleaning supplies — aren't worth counting one by one:
- Set Product Type to Goods.
- Leave Track Inventory unticked.
These items stay out of your physical inventory counts. When stock runs thin, staff simply flag it to whoever handles purchasing.
Mapping Your Storage Locations
Storage locations are a digital floor plan of your warehouse inside Odoo: they record which shelf, bin, or zone holds each product.
Turning the Feature On
- Go to Configuration > Settings.
- Scroll down to the Warehouse section.
- Enable Storage Locations.
- Click Save.
Adding Locations
- Go to Configuration > Locations.
- Click New to add one.
When you set up an internal storage spot:
- Set Location Type to Internal Location.
- Give it a name that means something —
WH/Stock/Shelf-A1, notLocation 1. - Use the Is Empty field to spot space that's free.
What the Location Types Mean
| Type | Nature | What it represents |
|---|---|---|
| Internal Location | Physical | Shelves, bins, and zones inside your own warehouse |
| Vendor Location | Virtual | Goods still "with the supplier" |
| Customer Location | Virtual | Goods "already shipped to the customer" |
| Inventory Loss | Write-off | Damaged or lost items |
Odoo uses the virtual locations to trace a product's whole journey: from the vendor location into an internal location when you receive it, then from the internal location to the customer location when it ships.
Reading the Inventory Dashboard
The Inventory dashboard is the screen you'll open first each day. It uses colour to tell you, at a glance, what needs attention.
The Receipts Card
This shows supplier deliveries waiting to be processed:
- Orange — arriving today; deal with it now.
- Red — overdue; the supplier may need chasing.
- Green — scheduled for a later date.
The Delivery Orders Card
This shows customer orders being prepared to go out. The outbound side is its own topic and is covered separately.
A simple morning habit: open the dashboard before anything else, clear the red (overdue) items first, then move on to the orange (arriving today) ones.
Receiving a Shipment, Step by Step
When you confirm a Purchase Order in Odoo, the system automatically creates a matching receipt in Inventory. Working through it takes four steps.
Step 1: Open the Receipt
- On the Inventory dashboard, click the number on the Receipts card.
- Pick the receipt you want to handle from the list.
- Click Start Receipt.
If you use the Barcode app, you can scan the barcode on the package to jump straight to the matching receipt.
Step 2: Check the Quantities
The receipt has two fields that matter:
- Demand — what the purchase order asked for.
- Quantity — what actually turned up.
If the delivery doesn't match the order, edit the Quantity field by hand.
A local example: You ordered 20 cartons of stacking chairs for a café, but only 12 arrived on the truck. Set Quantity to 12.
Step 3: Assign the Storage Location
Before you validate, tell Odoo where the goods are going:
- In the operations tab, find the Destination Location field.
- Choose the target spot — say
WH/Stock/Shelf-B2. - Click Save.
Setting the location now saves you from a separate relocation step after the fact.
Step 4: Validate the Receipt
Click Validate to confirm. If you received less than you ordered, Odoo asks how to handle the gap:
- Create Back Order — opens a fresh receipt for the outstanding quantity, in expectation of a later delivery.
- No Back Order — closes the receipt as-is. Use this for sample orders, or when the supplier has told you the balance won't arrive.
Once validated, click the Moves smart button to confirm the items landed in the right location with the right quantities.
Viewing and Keeping Stock Accurate
After goods are in, a bit of regular monitoring keeps your warehouse data trustworthy.
Viewing Physical Inventory
- Go to Operations > Physical Inventory.
- The page lists every tracked product with its live quantity and location.
Moving Stock That's in the Wrong Place
When you find an item shelved somewhere it shouldn't be:
- Tick the checkbox next to the product.
- Click Relocate.
- Set To Location to the correct spot.
- Note a reason — for example, "Corrected after stock count".
- Click Confirm.
Why a Product Might Not Show Up
A product created without Track Inventory enabled won't appear on the Physical Inventory page, even after you've validated a receipt for it. To start following its stock and location, go back to the product record and turn tracking on.
Tracking Method Quick Reference
| Product profile | Recommended method | Examples |
|---|---|---|
| High value, needs an exact count | By Quantity | Furniture, electronics, appliances |
| Has a shelf life, needs batch control | By Lots | Packaged food, skincare, supplements |
| Each unit is unique, needs serial tracing | By Serial Number | Laptops, servers, medical instruments |
| Low-value consumables | No tracking | Tape, stationery, cleaning supplies |
Practical Tips from the Field
- Name locations consistently. A "Warehouse/Zone/Shelf-Number" format like
WH/Zone-A/Shelf-01means a new hire can find an item without asking around. - Set the location before you validate. Assigning Destination Location up front avoids a second relocation step.
- Clear overdue receipts daily. A red dashboard indicator means a supplier has missed its date — chasing early keeps you off the back foot when stock runs low.
- Use serial tracking for high-value goods. The setup takes a little more effort, but it pays off whenever you're checking a warranty or processing a return.
- Count regularly. A physical count at least once a month keeps the system in step with what's actually on the shelf.
FAQ
What if fewer items arrive than I ordered?
Set the Quantity field to what actually arrived, then choose Create Back Order when you validate. Odoo opens a new receipt for the remaining units automatically.
Can I process several receipts at once?
Yes — select multiple receipts from the list and use the batch actions. That said, working through them one at a time helps keep your quantities accurate.
How do I fix a product that's in the wrong location?
Find it on the Physical Inventory page and use Relocate to move it to the correct spot. Odoo records the transfer for you.
How do I adjust a stock quantity?
On the Physical Inventory page, edit the On Hand Quantity directly, then click Apply All. Odoo logs an inventory adjustment for the change.
In Short
The core receiving workflow in Odoo Inventory comes down to four moves:
- Set up products — choose the tracking method that suits each item.
- Map your locations — build a clear warehouse structure with consistent naming.
- Receive shipments — check quantities, assign a location, and validate.
- Monitor stock — review levels regularly and correct anything misplaced.
With these basics solid, you can move on to features like Putaway Rules for automatic product routing, Stock Transfers for moving goods between warehouses, and Reordering Rules for hands-off replenishment.
Getting an Odoo Inventory setup that genuinely fits how your warehouse runs — not a generic template — is where most of the value sits. If you'd like our team at APAA to design and implement Odoo Inventory for your Hong Kong business, get in touch with us and we'll map out the right approach for your operation.
References
- Odoo Inventory Documentation
- Odoo Inventory — Receipts and Delivery Orders
- Odoo Inventory — Storage Locations