A stocktake is a counting session: pick a location, count what is actually on the shelf - solo or with a whole team - review the differences, and apply corrections to Shopify in one step. Stocktakes are free, and no POS Pro subscription is required.
Start a stocktake
Go to Inventory → Stocktakes and click New stocktake:
Location - each stocktake counts one location.
What to count - all products at the location, or one vendor for a smaller cycle count.
Blind count - hides expected quantities from every counter, so people record what they see instead of confirming what the system says.
Name (optional) - "Year-end count", "Floor 1", anything that helps you find it later.
Stockroom snapshots current stock levels and builds the count list. Products that are not tracked, or not stocked at that location, are left out automatically.
Stocktakes count on hand - what is physically on the shelf - not available. Open, unfulfilled orders never throw a count off.
Count items
Scan to count - scan a barcode (or type a SKU) and press Enter; each scan adds 1. Scanning something that is not on the list tells you why - no match, not tracked, or not stocked at this location.
Type a count - enter a quantity directly on any line, for shelf counts done on paper.
Confirm - on a non-blind count, one click accepts the expected quantity for a line.
Skip - set a line aside; it will not be corrected when you apply. Skipped lines wait on the Skipped tab, and you can include them again while counting or in review.
Every count is saved the instant it lands - close the tab, switch devices, lose signal for a moment; nothing is lost. The progress bar tracks items counted, units, and the value counted at cost and at retail.
Import counts from a file
Counting with an external scanner app, or on paper? Press Import counts (in the header, next to Export) while counting. A quantity column makes the file a count sheet - same-item rows add together, and the file's total sets each item's count. Without a quantity column every row counts as one unit, so a raw scan dump imports as-is - even with no header row - and you can paste rows straight from a spreadsheet instead of uploading a file. Unmatched codes come back as row errors, and every imported count lands in the scan log like any other count.
Count as a team
Any number of people can count the same stocktake at once, and every count is attributed - the session asks Who's counting? so exports show who counted what. There are three ways to count:
In the app - open the stocktake on any device with Shopify admin access.
On POS - add the Stockroom - Count stock tile to your POS smart grid. It lists open counts at the register's location, and Start a new stocktake here begins one on the spot. Staff scan with a POS-connected scanner or the camera, or type a code into Enter a barcode or SKU. Tapping Done counting closes the session out on that device - the counts are already saved, and the review and apply steps below stay in the app.
Counting links - for warehouse staff without Shopify logins. Click Counting links → New counting link, enter the worker's name, and share the link (it is shown once - copy it then). The link opens a simple counting page that works with a hardware scanner, typed codes, or camera scanning, and can set an exact count for a shelf. Revoke a link anytime; all links stop working the moment counting ends. The name on the link is the name on its counts.
POS and counting links never show expected quantities, so counts from the floor are always blind.
Review and apply
Click Finish counting to move to review. You will see every difference between counted and expected. From here you can skip lines, or Reopen counting if a number looks wrong.
Uncounted items are left unchanged by default. For a true full count (like a year-end reset) you can instead set all uncounted items to zero on hand - this is behind its own confirmation, because it changes real inventory.
Click Apply stocktake and Stockroom saves the count as a stock adjustment, then writes that adjustment to Shopify. What gets written is the difference for each item rather than the counted number on its own, which is what makes a sale or a delivery part-way through the count harmless: Stockroom takes the expected quantity at the moment you start counting an item, and anything that moves afterwards moves the same number the difference is applied to.
The adjustment is linked from the finished stocktake, and Shopify's inventory history records the change against it. If Shopify refuses a change, those lines come back marked Recount with the reason and the stocktake returns to review, so nothing is left half applied.
Exports
Three CSV exports are available at any stage, each stamped with the stocktake and date: the full scan log (every count, with who and when), the differences, and items not counted.
Good to know
Cancelling a stocktake never writes anything to Shopify, at any stage.
Applied stocktakes are permanent history - they cannot be deleted.
A count that finds no differences writes no adjustment - there is nothing to change. It still counts as counted, so your last-counted dates move.
Because the count becomes an adjustment, it reaches QuickBooks like any other adjustment if you sync with MyWorks Sync. See Syncing Inventory Adjustments from Shopify (Stockroom) to QuickBooks Online.
Blind counts are enforced by the server, not just hidden on screen - expected quantities never reach a counter's device.
Products added to Shopify mid-session join the count list automatically.
The Location field pre-fills with your last stocktake's location, and locations hidden in Settings → Inventory & COGS are not offered.
Shopify POS only passes scans to apps from the scanner models it supports, so a generic Bluetooth scanner paired to a phone often will not reach the Count stock tile. Type the code on the POS count screen instead, or count from a counting link or the app - both accept any scanner that types a code and presses Enter.
For an overview of inventory and stocktakes, see Inventory & stocktakes on stockroom.app.




