Skip to content
Veristock

Handcount

Running a stocktake with Handcount

The whole path, in order: from creating a count to writing it into your stock — including what happens when stock moves mid-count, when the signal drops, and when you need it all put back.

Install Handcount

Handcount is two halves. One is a page in your Shopify admin, where a count is created, watched and applied. The other is a link — the people counting open it on their own phones, install nothing, and never sign in to your store.

Nothing reaches your inventory until you press Apply. Everything before that is a list of numbers sitting next to Shopify's, which is what makes it safe to leave a count open all day, or to abandon one halfway and start again.

  1. 1

    Creating a count

    Stock counts is the app's home page: every count you have ever made, with its location, when it started, how many items it covers and how many scans have come in. A badge on the row says where it got to — in progress, applied, or cancelled — and flags the two things worth knowing at a glance: how many lines disagree with Shopify, and how many are unresolved conflicts. New count starts one.

    Every count, with where it got to

    First, the location. A count belongs to exactly one, and every quantity it writes goes to that one. On the single-location plan you pick from the locations you have and count one of them; the multiple-locations plan lets you run counts on any number of them, including several at the same time.

    Then the scope, which is optional. Limit to vendor and Limit to product type narrow the count to part of the catalogue — for walking one supplier's shelf, or the jackets, rather than the whole room. Left as Everything, the count covers every item stocked at that location.

    Then the one setting that changes what Apply does. Leave unchanged updates only the items somebody counted, and everything nobody scanned keeps the quantity Shopify already holds. Set to zero treats anything unscanned as out of stock — that is a full count, and it is how a stockroom is emptied and re-counted honestly.

    A full count sets every uncounted item to zero. On a location holding 160 items where 8 were counted, that is 152 items going to zero. The app names the number before it writes anything, but this is the one setting worth reading twice.

    Creating a count: location, scope, and what to do with anything nobody scans

    Reason recorded in Shopify is what Shopify files against every change this count makes. It defaults to Stock count, and the others are the ones Shopify itself offers: correction, shrinkage, damaged, quality control, restock. Whatever you choose shows up later in each item's inventory history, so a year from now the adjustment says why it happened.

    A name and a note are both optional. The name is only there to tell counts apart in the list — Monday warehouse count reads better than a date. The note stays with the count and is not sent to Shopify, which has no field for one.

    Creating the count takes a snapshot of what Shopify holds right then. That snapshot is the At count start column you will see later, and it is what the counted numbers are compared against — so anything that sells after this moment shows up as a difference rather than being quietly absorbed.

  2. 2

    Sharing the counting link

    A new count comes with one link and a QR code beside it. Everyone who opens it counts into the same session, and their scans appear in your admin within seconds. There is no app to install, no Shopify account to issue, and nothing to set up on the device — which is the point: the people who count are usually not the people with admin access.

    The counting link and its QR code, in the admin

    Copy link puts it on the clipboard for a message; Open loads it in a new tab, which is the quickest way to check it yourself. Under the link, Counting now lists the people whose phones are in the session at this moment, by the name they typed.

    The first screen asks for a name and nothing else. That name goes on every line that person counts, which is how you answer "who counted this" a week later — and it is all the app ever knows about them. After Start counting the phone downloads the catalogue for that location, which takes a few seconds and is what lets it work later without a signal.

    What the person on the floor opens
    The catalogue downloading to the device

    Change link issues a new one and kills the old. Use it when the link went somewhere it should not have — a group chat, an ex-employee — and not for tidying up.

    Changing the link stops the old one immediately. Anyone counting on it is locked out on their next tap, and whatever their phone has not sent yet can no longer be sent — those scans are lost. Everything already received is kept.

    Cancelling a count is the other way out. It closes the count and stops the link accepting scans, keeps everything counted so far so the page can still be read, and writes nothing to Shopify. A cancelled count cannot be reopened; if you need to carry on, create a new one.

    Rename and Delete are the other two things in that bar. Renaming is cosmetic. Deleting takes the count, its scans and its report away for good — but not what it already wrote: quantities applied to Shopify stay applied, so an apply you regret has to be undone first. Delete on its own only throws away the record of what happened.

  3. 3

    Counting on a phone

    The counting screen is the whole app for the person on the floor. At the top, the location and how far the count has got; in the middle, one field; underneath, everything counted so far, newest first.

    The counting screen, before the first scan
    A scan counted, with the running total

    The field takes three things: a barcode, a SKU, or part of a product name. A Bluetooth scanner is simply a keyboard as far as the phone is concerned — it types the barcode into the field and presses enter, so no pairing beyond the phone's own Bluetooth settings is needed. Typing works the same way, which matters for the item whose label has been rubbed off.

    Each scan adds one. A stocktake counts units rather than scans, so scanning the same box twice is how the second one gets recorded — the number goes to two, and a toast confirms which item it landed on and what its running total is.

    For a shelf with no scanner at hand, Use camera turns the phone into one: point it at a barcode and it is read and counted, with the phone staying in camera mode so a row of items can be walked without looking up. For a shelf of forty identical items, the scanning mode can be switched to ask for a quantity instead — scan one, type 40, done.

    The camera as a scanner
    Scan one, type the quantity

    Both modes live in the phone's own settings, along with whether a scan should count immediately or wait for confirmation. They are per-device: the person on the ladder can work one way while the person at the bench works the other.

    A code the count does not contain is refused, and the screen says so plainly rather than silently doing nothing. That normally means one of three things: the item is not stocked at this location, the count was narrowed to a vendor or type that excludes it, or the barcode is not in Shopify at all. Tapping any counted line opens that item, where the quantity can be adjusted up or down, a note left, or the line removed.

    A code this count does not contain
    One item: adjust it, note it, or remove it

    Removing a line is not the same as counting zero. A removed line goes back to never having been counted, which on a cycle count means Shopify's number stands; counting it as zero says the shelf is empty. The app asks which you meant before it removes anything.

    With no signal, counting carries on. The catalogue is already on the device, and each scan is written there first — the screen says how many are waiting. When the connection returns they go up on their own, oldest first, and the banner turns back to synced.

    No signal: scans wait on the phone
    The connection is back and everything has gone up

    The phone keeps its copy for as long as the count is open, and erases it when the count closes or thirty days after that phone last opened it. Nothing else about the person is stored: no account, no contact details, only the name they typed and the scans they made.

    Twelve languages, picked per device

    The counting screen speaks twelve languages and follows the phone's own setting, so a shop with a mixed floor needs no arrangement — each person opens the same link and reads it in their own language. It can also be picked by hand in settings.

    A link that has been replaced

    If the link has been replaced or the count has been cancelled, the phone says so instead of failing silently. Scans that were already delivered are safe; anything still waiting on that device cannot be sent, and the person needs the new link to carry on.

    Several people count one location at the same time, each seeing the running total the others are building. There is no assignment and no locking — two people scanning the same shelf simply produce a total that is too high, which is what the discrepancy column is for.

    How many at once depends on the plan: five devices without a subscription and on Single location, ten on Up to 3 locations, no limit on Multiple locations. Phones and tills share that number. A device that has gone quiet gives its slot back, so a handset that was swapped or somebody who went home does not hold one for the rest of the count.

  4. 4

    Counting in Shopify POS

    A shop where the till is the only device does not need a phone at all. Handcount has a tile on the POS home screen — add it once from the POS grid — and it shows the count running at that location, or says there is none.

    The admin says the register can count too

    Start one from the till: name it, and either count everything at the location or narrow it to a vendor, a product type, a collection or a tag. The staff member needs permission for Handcount, which a shop owner grants in Settings › Users and permissions.

    Scan with the camera or with a scanner attached to the till. Each register keeps its own settings: count as it reads or wait for a tap, one item at a time or several in a row. A scan can be taken back, quantities can be corrected, and Find an item searches by name, SKU or barcode.

    It counts without a connection once the count has been opened on that till at least once. Scans queue on the register, the screen says how many are waiting, and they save when the connection is back — a count too large to hold on the till says so rather than pretending.

    Invite counters shows the QR code, so phones join the same count from the same screen. And when a code looks like a label your scales printed, the till asks whether to read codes like it from now on.

    Review and apply is at the till too: how many lines will be written, how many change what Shopify holds, the biggest differences, and — on a full count — how many unscanned items are about to be set to zero. The apply can be undone from the same screen.

  5. 5

    Following a count in the admin

    In the admin, the table is what the shelf says against what Shopify holds. At count start is the quantity when the count was created, Counted is what came in from the phones, Difference is the gap between them, and Counted by is who scanned it. Above the table, five tiles keep the shape of the whole thing in view: items, counted, discrepancies, not counted, scans.

    Was, counted, the difference, and who counted it

    The tabs narrow the table without changing it. Discrepancies is where the work is — the lines where the shelf and Shopify disagree. Matched is everything that came out right. Counted, Not counted and All are the obvious three, and With notes collects the lines somebody flagged.

    Search takes a product name, a SKU or a barcode, so a question from the floor — "what did we get for the olive shirt?" — is one field away from an answer.

    Counted by filters to one person or several. On a count worked by three people it is a convenience; on a count worked by thirty-four it is the only practical way to find a row, and the filter has its own search and a select-all for that reason.

    Counted by, on a count several people worked

    Add an item covers what the phones missed entirely: the box found in the stockroom after everyone had gone home, or an item that is stocked at this location but was never scanned. It searches the same catalogue the phones use and adds a counted line as though it had been scanned in the admin.

    Adding an item nobody scanned

    Notes work in both directions. Anyone counting can leave one from their phone — a crushed box, an aisle behind a pallet — and you can leave one from here, against one item or against the count as a whole. Everyone counting sees them, and each note can be ticked off once it has been dealt with.

    A note against one item, from the admin

    None of this has touched your stock. The count holds its own numbers until you apply it: closing the page, coming back tomorrow, or filtering the table changes nothing in Shopify.

    Export CSV is in the count's own title bar, and writes what the table holds: item, SKU, barcode, the quantity at count start, what was counted, the difference, who counted it and how many scans it took. It comes out the same whether the count is open, applied or cancelled — which is what an audit asks for, and what a spreadsheet wants for anything the app does not do itself.

    Nothing on this page has been written to your inventory yet. Until Apply is pressed, Shopify still holds exactly what it held when the count started.

  6. 6

    Stock that moved during the count

    A conflict is an item whose quantity in Shopify changed after the count reached it. A sale, a return, another app doing its work — whatever the cause, the number the count was compared against is no longer the number Shopify holds, so writing the counted figure over it would erase whatever happened in between. Handcount does not do that. It writes every line it safely can and holds the rest back.

    The result appears as a banner on the count: how many items were updated, how many were already correct, and how many are conflicts. That banner is also where the way out is, so nothing needs hunting for.

    What the apply wrote, and what it held back

    Resolve conflicts opens them one by one. Each line shows the quantity at count start, the quantity Shopify holds now, and the counted figure, and offers three answers. Keep Shopify's number leaves it alone and stops it being a conflict. Write the scanned number puts the counted figure over what Shopify holds now. Write another number takes a figure you type, for when neither is right and somebody has been back to look.

    Three answers per line, and nothing written until you choose

    An item that has stopped being stocked at this location while the count ran gets a fourth case of its own: there is no quantity to write, so the only sensible answer is to leave it alone.

    Anything you do not decide stays a conflict. The app does not guess, and it does not quietly pick the counted number because that is what you probably meant.

    Conflicts can be settled before applying or after. Before, the same screen opens from the apply confirmation; after, the count carries a Not applied table with the reason on every line and a write button on each, so a single stubborn item can be settled without touching the rest.

    What did not get written, with the reason on every line
  7. 7

    Applying the count to Shopify

    Apply writes the counted quantities to the location the count was created for. Before it does, it re-reads Shopify and tells you what has changed since the count started, so the confirmation is about the store as it is now rather than as it was this morning.

    On a full count the confirmation also names how many uncounted items are about to be set to zero, and how many items it is leaving alone. Those two numbers are the difference between a full count and a cycle count, stated at the last moment where it can still be stopped.

    Each change is recorded with the reason you picked when the count was created, so it appears in that item's inventory history in Shopify like any other adjustment — the same place a manual correction would show up, with the same audit trail.

    Afterwards the count keeps the result. Updated in Shopify lists every line that was written, with its before and after and the difference; Not applied lists anything held back. Both stay on the page, which makes the count its own record of what happened.

    What the apply wrote, line by line
  8. 8

    Undoing an applied count

    Undo this apply puts the quantities back to what they were before. It works line by line, and only where Shopify still holds the number this apply wrote — so anything that has sold since the apply is left exactly as it is rather than being overwritten a second time.

    Applied, with the way back on the same row

    That means an undo can come back partly done, and when it does it stays available: press it again and it walks only the lines that have not gone back yet. The button disappears once every line has been returned.

    Items that were reported as conflicts were never written in the first place, so the undo does not touch them either — they stay as they are.

    Shopify records the reversal as a correction rather than as another stock count, which keeps the item's history readable: one count that was taken, and one correction that took it back, instead of two counts that appear to disagree.

  9. 9

    Comparing two counts

    Compare with an earlier count sits on the count page and on its own. Pick a location, then two or more of its applied counts — only applied ones appear, because a count that was never written has no result to compare.

    Choosing which counts to put side by side

    The comparison is one row per item and one column per count, with a change column showing the movement from the first to the last. Search narrows it by name, SKU or quantity.

    One row per item, one column per count

    It is the view that turns single counts into a pattern. One count tells you today's number; four of them tell you which SKU is short every month, and that is not a miscount — it is something happening in the shop.

    Counts stay in the list as long as the app is installed, so the comparison gets more useful the longer you have been counting.

  10. 10

    The dashboard, over a period

    The app opens on a board. The strip across the top is where things stand right now — counts in progress, who is scanning at this moment, conflicts nobody has settled, notes nobody has answered, how much Shopify has moved underneath you, and the next count due.

    Everything under it reads a stretch of time rather than the last count: 7 days, 30, 90, or a year. Count accuracy is the share of counted lines that matched Shopify. Coverage is how much of the location you got through. Time per count is what one costs in hours. Accuracy by location puts the sites on one chart and names the one that is behind.

    The board over ninety days, and the strip that says where things stand now

    Value of differences prices what is missing and what is extra at your own cost per item, which is the number that settles how often counting is worth it — and where Shopify holds no cost, the panel says so instead of showing a zero. Counting by person credits the scans. Recurring discrepancies is the one to act on: an item “off 5 of 5 counts, 31 units apart” is a shelf label or a theft, not a miscount.

    Scheduled counts holds the ones that repeat themselves. On a count's own page, Repeat this count copies its location, its scope and its reason, then builds the next one every so many days and emails you the link; this panel is where you pause one, resume it, or delete it.

    Panels with nothing behind them sink to the bottom until you arrange the board yourself — Reorder panels, move them, save. On the first day they all say what would fill them rather than showing a zero.

  11. 11

    Plans and limits

    Counting is free. Five counts, any number of locations and items, up to five devices at once, phones and Shopify POS alike, offline, with the full review of every difference. What a subscription buys is the last step: writing the counted numbers into Shopify, and the CSV of the count.

    Before paying: the count screen counts the free ones down

    Single location is $9 a month: one location, up to five devices at once. Up to 3 locations is $19: three locations, up to ten devices. Multiple locations is $29: any number of either.

    Devices are counted together — a phone and a till are both a device, so five means five of whatever you hand out. Shopify POS is on every tier, free included.

    The three paid plans, as the app lists them

    No plan is priced by catalogue size, so the bill does not change because the shop grew. Every paid plan starts with 30 free days, and the app says how many are left on every page while it runs.

That is the whole path. The demo runs the counting half on a real store, with barcodes on the page to scan — or install it and create a count in your own admin.

Something to tell us?

A bug that got in your way, a feature that ought to exist, or a question the pages here did not answer.

Every count, with where it got to

1/30
Every count, with where it got to