Stock Check
What this guide covers
Walking the warehouse with a phone or tablet to verify what's in a bin without launching a full Stock Count. Stock Check is fast, optional, and self-serve — every logged-in user can use it. Useful for spot-checks, end-of-shift sanity passes, and re-confirming a bin after stock arrives.
For the heavier multi-counter, audit-grade workflow see Stock Counts.
Where to find it
Open Operations → Stock Check. The page is a single-screen scanner-driven UI optimised for phone/tablet use.
Who can do what
- All logged-in users can access Stock Check. There is no role gate — no
STOCK_COUNT_*permission is required, no area filter. Anyone can scan any location they can reach physically. - Per-user settings (count mode, voice URI, pitch, rate, volume, strict mode) save automatically via
UserConfig.
There is no manager / admin distinction on this page. Everyone uses the same tool.
How a stock check works
- Set your mode at the top:
- NO_QTY — scan-only. You confirm presence; no quantity entered.
- KEYBOARD — scan, then type qty. Best on a phone with a keyboard.
- VOICE — scan, then speak qty ("twelve" → 12). Voice extracts the first number found in your speech; mic permission required.
- Toggle Strict Mode if you want the page to enforce that you finish a location before moving to the next one — the Finish Location button only enables when every expected item has been scanned (or you've supplied a skip reason).
- Scan the location QR. The page loads expected items.
- Scan each product in the bin. The page matches scans to expected items, plays a confirmation sound, and (if a qty mode is selected) opens the qty dialog.
- Skip what's not there — for missing items, click Skip on the row, pick a reason from the dropdown (Item not in Location, No sticker, Other), and add a description if Other. The skip is logged with your user.
- Finish Location (Strict Mode) or simply scan the next location to roll over.
Voice tips
- Voice recognition requires browser mic permission; the first time you toggle to VOICE the browser will prompt.
- Speak the number cleanly: "twelve", "three", "one hundred and seven". The system pulls the first numeric token.
- Adjust Pitch / Rate / Volume sliders to your preference; Test Voice plays a sample.
- VOICE mode falls back to KEYBOARD if your browser lacks the Speech Recognition API.
Common errors and fixes
- "Invalid QR Code, Unrecognized format." — the scanned label isn't in the expected location/product URN format. Rescan; if the label is damaged, regenerate it from Warehouse Locations.
- "Scan Error, Location URN is missing Area ID or Name." — the QR encodes a location but is missing fields. Regenerate the label.
- "Not Found, Location '[name]' not found." — the location name in the QR doesn't match any location in the area. Either the location was archived or the label is stale; check Warehouse Locations.
- "Validation Error, Please select a reason for skipping the remaining items." — Strict Mode requires a skip reason on every item you didn't scan. Pick one from the dropdown.
- "Validation Error, Please provide a description for 'Other'." — you picked Other but didn't type the description. Fill it in.
- "Action Required, Scan a location first." — you scanned a product before any location was loaded. Scan the location QR first.
- "Already Scanned, This exact item has already been verified." — for non-quantity items (presence-only), you scanned it twice. Skip and move on.
- "Unexpected Item, Product [code] does not belong here or details mismatch." — the product is not assigned to this location, or the serial number on the label doesn't match the system record. Check the product's expected location; if it should be here, raise a stock move request.
- "Error, Invalid quantity entry." — qty field is empty or not numeric. Type a number.
- "Quantity Mismatch, Expected [X] but counted [Y]." — your physical count differs from the system record. The mismatch is logged as a warning event but you can still proceed; the discrepancy will surface on the next reconciliation.
Tips and gotchas
- Strict Mode does not block you forever. It just requires a skip reason for items you don't scan. The page records what you did and what you skipped; the warehouse manager reviews skips later.
- Quantity mismatch does NOT block completion. The page warns and replays the scan, but lets you continue. Persistent mismatches should trigger a full Stock Count, not a re-check.
- Serialised products always have qty = 1 per serial; the qty dialog is suppressed even in KEYBOARD/VOICE mode.
- Audio feedback — distinct sounds for location-success, product-match, error. If audio is annoying, drop the volume to 0 in the settings.
- Settings persist per user — your last mode, voice config, and strict-mode toggle survive page refreshes.
- Mismatch events are logged via UserEventManager — admins can audit who scanned what and where the discrepancies happened.