Product Locations
What this guide covers
Finding where each product lives across your warehouse. Product Locations is the search-driven view that lists every product, expanded to show every bin currently holding any unit of it, with the qty per bin. Use it for picking, reconciliation, and "where the hell is that part" questions.
For the bins themselves (creating, archiving) see Warehouse Locations. For individual serialised units see SerialNumber Location.
Where to find it
Open Operations → Locations → Product Locations. The page is a search-and-filter table; no rows render until you search.
Who can do what
- Regular user (any logged-in account, area-gated) — search products, expand to see locations, pick items from any bin (subject to area/product gates), export to Excel.
- Label printer (
LOCATION_PRINT) — print product QR labels, with or without quantity. - Stock-count admin (
STOCK_COUNT_ADMIN) — create a stock count from the page (scoped to the searched product). - Site admin (
ADMIN) — full access; bypasses area / product gates.
Searching
The search box matches product code, description, or scanned QR. Multi-word search is AND — "battery 24v" matches products containing both battery and 24v.
Filters layered on top:
- Category — All Items (Mixed), Standard Stock Only, or Non-Stock / 3rd Party. Standard stock is what's owned by Solar MD; non-stock is consigned, customer-supplied, or in-transit-third-party material.
- Item Reference (Owner) — show only items earmarked for a specific reference ID (e.g. a Sales Order number, a Local Receipt). Useful when verifying a dispatch.
- Customer — show only items linked to a customer via a Local Receipt reference. Useful for customer-supplied parts in repair WOs.
Filters are session-persistent — refreshing the page keeps your last search/category/item-ref/customer selection.
Reading the results
Each row is a product; expand to see its locations:
- Bin — location name (area + name, e.g. Stores / A1-1-3).
- Qty — quantity at this bin. For serialised products, qty is 1 per serial.
- Status — active / earmarked / quarantine.
A product may appear in many bins simultaneously — that's expected. There is no UI indicator for the primary location on this page; the Stock On Hand module (separate) is where primary locations are designated.
Actions per row
- Pick — opens the picking dialog; move qty out of this bin to your personal location or another destination. Requires the right move permissions.
- Print (Product QR) — print the product code as a QR label (no quantity).
- Print w/ QTY — print product QR plus current quantity, label-printer ZPL.
- Create Stock Count — initiate a count scoped to this product across its bins. Requires
STOCK_COUNT_ADMIN. - Export to Excel — download every visible product + locations + qtys as
.xlsx. Available to all users.
Common errors and fixes
- "Export failed: [exception message]" — Excel write failure (disk full, file-system permissions). Free up disk and retry; if it persists, contact RnD.
- Product not appearing after search — the active filters exclude it. Switch Category to All Items (Mixed) and clear the Item Ref / Customer filters.
- Pick button greyed — the item has
moveLock=trueor is allocated to a Sales Order (salesOrderGuidset). Resolve the lock via the picking dialog or Sales Order module first. - Same product in multiple bins with mismatched qtys — that's normal. The product is genuinely scattered. Use a Stock Count to rebase if it's surprising.
Tips and gotchas
- No "primary location" on this page. Product Locations shows every bin holding any unit; designating a primary is a different workflow (Stock On Hand). Don't expect a star icon here.
- Local Receipt / non-stock items are bolded or coloured differently. They're transient inventory tied to a specific reference; if you pick from them, do so deliberately because they're not your stock to allocate.
- Filter persistence is per-user, per-session. Logging out clears it.
- Customer filter only works if the receipt referenced has a customer linked. Generic Local Receipts won't appear under any customer.
- Excel export captures what's visible given the current filters. Clear filters first to export everything.
- Refresh clears session-cached stock data and re-fetches from the database — useful after a flurry of moves where the on-screen totals don't match the bin.