Stock Counts
What this guide covers
Creating, assigning, and completing stock counts — the periodic verification that what the system says is in a bin is what's physically there. Covers count creation, multi-counter requirements, completing as the assigned counter, and the adjustment workflow when counts disagree with system stock.
For status-badge meanings see Roles and permissions field definitions.
Where to find it
Open Operations → Stock Counts. The page lists active and recent counts, scoped to the areas you have access to.
Who can do what
- Counter (
STOCK_COUNT_USERpermission, area-gated viaUserWarehousePermissionTypeEnum) — see counts assigned to them; count items physically; submit counted qty + serial numbers. - Stock-count manager (
STOCK_COUNT_MANAGER, area-gated) — create new counts; assign / unassign counters in their area; view results; complete counts. - Stock-count admin (
STOCK_COUNT_ADMIN) — global. Create counts in any area; view all counts; manage counters across areas. - Adjuster (
STOCK_COUNT_ADJUST_CASE) — apply adjustments after counts disagree with system (write-down or write-up). - Site admin (
ADMIN) — bypasses all of the above.
Non-admins are filtered to allowed areas via the permission mapping at view init.
Creating a count (manager / admin)
- Click Create New. The dialog opens.
- Pick the items or locations to count. You can scope by warehouse area, by location, or by product range.
- Configure:
- Min counts required — how many independent counters must agree before the count is considered authoritative.
1for single-counter,2-3for high-value or contested stock. - Image required — counter must attach a photo of the bin per item.
- Serial check required — counter must scan or enter every serial number; serial mismatches trigger the Serial Mismatch dialog.
- Min counts required — how many independent counters must agree before the count is considered authoritative.
- Save. The system creates one StockCount header per area, even if the items span multiple locations within an area.
- Items already in an active count are skipped — you cannot create overlapping counts on the same bin/product.
Assigning counters
- Open the count from the list.
- Click Assign Counter. The dropdown lists users with
STOCK_COUNT_USERorSTOCK_COUNT_MANAGERfor this area. - Pick a user. The assignment writes immediately and the counter sees the count in their queue.
- Clear Assignee removes an assignment, but only if the counter has not started counting; if they're mid-count, you'll see "In progress by [user]" and have to ask them to back out first.
Counting (counter)
- Open your assigned count from your queue.
- For each item:
- Verify product code + location.
- Enter the physical qty.
- For serialised products: scan or type each serial. The system flags duplicates and mismatches against system records.
- For image-required items: take a photo and attach.
- Click Submit when done. If the count requires
ncounters, the item stays open for the next counter. - The count cannot be completed until every item has been counted by the required number of distinct users.
Common errors and fixes
- "No items, cannot create empty stock count!" — fires when the create dialog is submitted without any items selected. Tick at least one location item before saving.
- "[Name] cannot perform two counts in a row. Please assign a different user." — the assigned user just counted this item and would be the second counter as well; the system enforces independence by requiring distinct users. Pick someone else from the dropdown.
- "User has created too many [n] stock counts for this item" — the configured per-user-per-item count limit has been hit. Either lower the load or raise
AppConfig: group=StockCount, name=maxCounts(admin only). - "There is at least one item that has not been counted" — fires when Complete is clicked but some items are still pending. Either complete them or assign more counters.
- "Cannot complete Stock Counts for someone else" — fires when an unassigned user (not the assigned counter, not admin) clicks Complete. Only the assigned counter or an admin can finalise.
- "App Config [group: StockCount] [name: maxValueDiff] not set" — the threshold above which a count discrepancy triggers an adjustment-case is missing from
app_config. Admin must set it. - "In progress by [user]" — you tried to clear an assignment while the counter is actively scanning. Ask them to pause, then clear; or wait for them to submit.
Tips and gotchas
- Counts are immutable once posted. Once
completedDateis set, you cannot edit the qty. To correct a wrong post, raise an adjustment via the Stock Adjustment dialog (separate workflow). - Multi-counter rule: if the count requires 3 counters, exactly 3 distinct users must submit. The system enforces uniqueness.
- One header per area: even if you select items from multiple locations within the same warehouse area, the system rolls them up under one StockCount header for that area.
- Mismatches across counters — if two counters disagree on the same item, the system opens the Serial Mismatch dialog (for serialised) or queues an adjustment-case (for non-serialised). Adjusters with
STOCK_COUNT_ADJUST_CASEresolve the case. - Skipped items after creation — when you create a count, items already in another active count are silently skipped. Check the resulting count to confirm it includes everything you expected.