Home / Help Center / pos-app / Stock / Godown / Stock Count
📝 Stock / Godown

Stock Count

Stock Count runs a formal physical-count session: start a count for the whole shop or one category, walk the floor entering what you actually counted, review the variance against system stock, then post the corrections in one go.

📍 Menu path: Stock / Godown → Stock Count
👤 Who uses it: All roles with Inventory view access; completing/cancelling a count needs the Inventory Edit permission

Overview

Unlike the quick "Start Stock Take" mode inside the Inventory page (which edits quantities directly), a Stock Count session snapshots expected quantities when it starts, lets you enter counted quantities over time, and only changes real stock when you explicitly complete the session.

Each session tracks progress (how many items counted out of the total) and how many items have a variance (counted ≠ expected), so you always know how much of the floor is left to check.

Sessions can be scoped to the whole shop or to just one product category — useful for cycle counting a few aisles at a time instead of shutting down the whole store for a full count.

Before You Start

Step-by-Step Guide

1 Start a new count

  1. Click New Count on the Stock Count list page.
  2. Give it a descriptive name, e.g. "July full count" or "Aisle 3 paint".
  3. Optionally limit it to one product category, or leave it as "All products" for a full count.
  4. Click Start count — BazaarPOS snapshots the expected quantity for every included product and opens the session for counting.

2 Enter counted quantities

  1. Open a session from the list to see every item with its Expected quantity next to an editable Counted field.
  2. Type the physical count for each item as you walk the floor; the Difference column updates live (blue = higher than expected, red = lower, green = exact match).
  3. Use the search box to jump to a specific item/SKU, or tick "Not counted yet" to see only items you haven't touched.
  4. Click Save counts periodically to persist your progress without finishing the session — you can safely leave and come back later.

3 Complete or cancel the count

  1. Once every item (or as many as you plan to check) has a counted value, click Complete & post.
  2. Confirm the prompt showing how many stock-level adjustments will be posted; uncounted items are left completely unchanged.
  3. BazaarPOS applies every variance as a stock adjustment in one batch, and the session moves to Completed status.
  4. If you started a count by mistake or need to abandon it, click Cancel count instead — no stock is changed and the session is marked Cancelled.
💡 Complete & post is disabled while you have unsaved counted values — save your counts first.

Every Field & Button, Explained

Field / ButtonWhat it does
New CountOpens the modal to start a new count session (name + optional category).
Session list — Name / Category / Status / Progress / StartedOne row per count session; click a row to open it.
Status chipCounting (blue, IN_PROGRESS), Completed (green), Cancelled (grey).
Progress columnCounted items / total items in the session.
Expected columnThe system stock quantity snapshotted for that item when the session started.
Counted columnEditable field for the physically counted quantity (only while the session is IN_PROGRESS).
Difference columnCounted minus Expected — blue/positive means more than expected, red/negative means less, green means an exact match.
Find item or SKU… search boxFilters the item list within the open session by product name or SKU.
"Not counted yet" checkboxShows only items that have neither a saved counted value nor an unsaved draft value.
Save countsPersists whatever counted values you have typed so far, without finishing the session.
Complete & postApplies every counted variance as a real stock adjustment and closes the session; disabled if there are unsaved counts.
Cancel countAbandons the session with no stock changes.

Tips & Best Practices

Troubleshooting & FAQ

I can't type a counted quantity into a row.
The session has already been Completed or Cancelled — those are read-only. Start a new session to make further counts.
Complete & post is greyed out.
You have unsaved counted values (the button is disabled while "dirty"). Click Save counts first, then Complete & post.
An item I need to count isn't in the session.
The session only includes products that existed (with inventory) at the moment it was created, optionally filtered to one category. Start a new session to include items added since.
Will completing a count affect items I never entered a count for?
No — uncounted items are left completely unchanged when you complete the session; only items with an entered counted value get a stock adjustment.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/packages/pos-react-lib/src/pages/inventory/StockCountPage.jsx

Backend endpoints used:

  • GET /stock-counts
  • POST /stock-counts
  • GET /stock-counts/:id
  • PUT /stock-counts/:id/counts
  • POST /stock-counts/:id/complete
  • POST /stock-counts/:id/cancel
  • GET /products/categories

Related tables (db-core repositories):

  • StockCountSession
  • StockCountItem
  • Inventory
  • StockMovement

Feature flag key: inventory

Mounted generically as /stock-count in every variant's App.js. Expected quantities are snapshotted server-side at session creation so counts remain meaningful even if stock keeps moving elsewhere while the count is in progress; completing the session diffs counted vs. expected per item and posts one stock adjustment per variance.