Getting started
Stocktake is a dedicated physical inventory counting tool. It does not manage your stock day to day — it verifies what WooCommerce believes against what is actually on your shelves, then reconciles the difference in one click.
Requirements
| Requirement | Version |
|---|---|
| WordPress | 6.2 or newer |
| WooCommerce | 7.0 or newer (HPOS-ready) |
| PHP | 7.4 or newer |
| Products | Stock management enabled on the products you want to count |
| Browser | Any modern browser. Phone-camera scanning needs HTTPS. |
Install
- Install the free plugin From your dashboard go to
Plugins → Add New, search for Stocktake, install and activate. Or download it from WordPress.org. - Open Stocktake A Stocktake item appears in the WordPress admin menu. Everything happens there — there is nothing to configure first.
- Upgrade later, if you want to Pro installs over the free version and keeps all your data. See Licence & billing.
Counting is completely safe: quantities are recorded against the session only. WooCommerce stock is written once, when you press Apply adjustments — and a restore point is saved before that happens.
Your first stocktake
- Create a session Press Start counting now. Give it a name you will recognise later (“July warehouse”, “Front shop – drinks”).
- Pick a scope Count everything, or narrow it to selected categories. Only stock-managed products are included.
- Stocktake takes a snapshot Your current expected quantities are recorded at that moment. This is what makes the variance trustworthy: sales that happen during the count are measured against the snapshot, so an order mid-count does not silently distort your numbers.
- Count Open the count screen on a phone, tablet or laptop and start scanning. See The count screen.
- Review, then apply Check every variance, then post the corrected quantities to WooCommerce in one click.
Because the count is measured against a snapshot, you do not have to close the shop or freeze orders while you count.
Counting modes
| Mode | What it does | Plan |
|---|---|---|
| Partial (spot) | Only the items you actually scan are updated. Everything you do not touch keeps its current stock. Best for shelf checks and cycle counts. | FREE |
| Full / zero-based | Everything in scope is counted. Anything you do not count is treated as zero. Best for year-end and fiscal close. | FREE |
| Add-on-top (tally) | Each scan adds to a running tally rather than setting a figure — for counting the same product across several shelves or bins. | PRO |
| Goods-in (receiving) | Count a delivery in and add it to existing stock instead of replacing it. | PRO |
That is the point of the mode — but be sure your scope is right before you apply. If you only meant to check a few shelves, use Partial.
The count screen
The count screen is built for one thing: scanning items quickly without touching the keyboard. It works on a phone, a tablet or a desktop with a handheld scanner.
- Scan box — always focused. Scan a barcode, or type a SKU or product name.
- Instant count — a recognised code is counted immediately, with quantity 1. There is no “enter a quantity” step to slow you down.
- Re-scan adds on top — scan the same product again and it becomes 2, 3, 4… A band shows the arithmetic plainly (
7 + 1 = 8) so nobody has to guess what happened. - Last item panel — the item you just counted stays on screen with a big − / + stepper if you want a different figure.
- Recent scans — every scan in this session, newest first, each row editable.
- Progress saves itself — you can close the tab and come back. Nothing is lost.
Scanning & barcodes
Three ways to get a code into the box, all equally valid:
| Method | Notes |
|---|---|
| USB / Bluetooth scanner | Fastest and most reliable for large counts. Any scanner that types like a keyboard works — no drivers, no pairing inside the plugin. |
| Phone camera BETA | Press the camera button and point at the barcode. Runs in the browser, no app needed. Requires HTTPS and camera permission. Good for smaller counts; some damaged or unusual symbologies may not read. |
| Typing | Type a SKU, a barcode or part of a product name and pick from the suggestions. |
What a scanned code is matched against
- The product’s SKU.
- WooCommerce’s own GTIN / UPC / EAN / ISBN field (WooCommerce 9.2+).
Both work for simple products and for variations. Scanning a variation’s code counts that exact variation, and applying updates that variation’s stock.
Blind count
Turn on Blind count when you create the session and the expected quantity is hidden from whoever is counting. They record what is actually on the shelf instead of confirming the number on screen.
When a counter can see “expected: 100”, counts tend to “match” a little too often. Blind counting removes that anchor — which is exactly how shrinkage stops hiding. You still see every variance yourself on the review screen.
Fixing a scan
Nothing is locked in while you count:
- Change a quantity with the − / + stepper, or type over it. Edits save automatically.
- Remove a line entirely with the ✕ button — it is taken out of the count (it is not set to zero).
- Scan an item that is outside the session scope and it is added anyway, with a small note telling you it was out of scope.
- Scan a code the shop does not recognise and you get an inline message showing the exact code that was read — no pop-ups, nothing to dismiss.
Variance review
Press Finish & review to see the whole session as a table:
| Column | Meaning |
|---|---|
| Expected | What WooCommerce believed when the session started (the snapshot). |
| Counted | What you actually recorded. |
| Variance | Counted − expected, in units. Green is a surplus, red is a shortfall. |
| Value | What that gap is worth in money. Uses WooCommerce Cost of Goods data when it is set; Pro adds valuation at cost and a purchase-price field. |
| Applied | Whether the line has already been posted to stock. |
A banner tells you how many items in scope have not been counted yet, so you never apply a half-finished count by accident.
Applying to WooCommerce
- Press “Apply adjustments” Every counted line is written to WooCommerce stock at once.
- A restore point is saved first Before a single number changes, Stocktake records exactly what your stock was. If the backup cannot be written completely, the apply is aborted rather than half-done.
- Check the result The session is marked Applied and each line shows what was posted.
In Partial mode, anything you did not scan is left completely untouched. In Full / zero-based mode, anything you did not count is set to zero.
Restore points & undo
A restore point is an automatic snapshot of your stock taken immediately before an apply.
| Free | Pro | |
|---|---|---|
| Automatic backup before every apply | Yes | Yes |
| Undo the last apply | Yes | Yes |
| Full restore-point history | Keeps the most recent only | Roll back to any earlier count |
Open Restore points from the Stocktake menu, then press Restore on the entry you want. Restoring writes the saved quantities back to WooCommerce.
Exports
- FREE CSV export of any count and its variance, plus a reorder / low-stock shortlist and a negative-stock warning.
- PRO Excel (XLSX) exports, valuation reports, and printable / branded PDF count sheets for the shelf or the auditor.
Reports & valuation PRO
Stock Pulse
A live dashboard of the whole catalogue: units on hand, stock value, sales movement, top movers, what is running out at the current sales pace, and dead stock that is quietly tying up cash.
Valuation
Value your inventory at retail and at cost, with a per-category breakdown. Pro adds a purchase-price field so cost valuation works even when WooCommerce COGS data is incomplete.
ABC & accuracy trend
ABC priorities tell you which items deserve frequent cycle counts. The accuracy-and-shrinkage trend shows whether your counts are tightening over time or your losses are creeping up.
Variance by category
Break a single session’s variance down by product category, so you can see exactly where the losses concentrate instead of reading one store-wide number.
Team counting & approvals PRO
- Multiple counters with attribution — several people count the same session, and every entry records who counted it.
- Recount & approval workflow — counters submit a session for review; a supervisor checks the variances and approves before anything reaches WooCommerce, or sends it back for a recount.
- Scheduled reminders — set a cadence so cycle counts actually happen instead of being forgotten.
Goods-in & quick stock check PRO
Goods-in (receiving) mode counts a delivery and adds it to existing stock rather than replacing it. Quick stock check is for one-off fixes: scan any single product, see its live stock, correct it on the spot — and the change is recorded in an audit log. Use stocktakes for periodic counts and quick checks for spot corrections.
Products & variations
- Only products with stock management enabled are counted.
- Each stock-managed variation is its own line. Scanning a variation’s SKU or GTIN counts that variation.
- If a variable product manages stock at parent level (pooled), it is counted once as a single line, and scanning any of its variations lands on that line.
- Draft and trashed products are rejected — you cannot count or adjust them.
- Decimal quantities written with a comma (
12,5) are accepted.
Licence & billing
- Buy and get your key Checkout is handled by Freemius, our merchant of record — cards and PayPal, proper invoices, 14-day money-back guarantee. Your licence key arrives by email with a download link for the Pro build.
- Install Pro Upload the Pro zip from your email (
Plugins → Add New → Upload). It installs over the free version and keeps all your data. - Activate Open
Stocktake → Account, paste the key, and Pro unlocks immediately — with automatic updates from then on.
Moving to another site: open Stocktake → Account on the old site and deactivate the licence — that frees an activation — then enter the key on the new site. If you migrate or change domain, the plugin also detects it and offers to transfer the licence. Your plan sets how many sites can be active at once (1, 5 or 20).
Invoices, renewals, cancellation: all from the same Account screen, or your Freemius account. Cancel any time, no email required.
Data, privacy & uninstall
- Stocktake stores its sessions, counted lines, restore points and logs in your own database. Nothing about your catalogue or your counts is sent anywhere.
- The optional Freemius opt-in (licensing, updates and support for Pro) is disclosed on the plugin page and can be declined.
- Deleting the plugin removes its data completely — options, tables and scheduled events.
Export anything you need to keep (CSV, or XLSX/PDF on Pro) before you delete the plugin.
Troubleshooting
I counted everything — why hasn’t my stock changed?
Counting never writes to stock on its own. Open the session, press Finish & review, then Apply adjustments. Until you do that, WooCommerce keeps its current quantities — which is what lets you count safely while the shop is open.
A barcode isn’t found when I scan it
The code is matched against the product’s SKU first, then WooCommerce’s GTIN / UPC / EAN / ISBN field (WooCommerce 9.2+). If neither holds that number, nothing will match.
Check that: the code is stored on the product (or the exact variation), there are no stray spaces, and the product has stock management enabled. The on-screen message shows the exact code that was read — paste that into your product search to see what the shop has.
The phone camera won’t read some barcodes
Camera scanning is a Beta convenience feature. It needs an HTTPS page and camera permission, good light, and a clean, flat barcode. Very small, damaged, curved or unusual symbologies may not read.
If a code will not scan, type the SKU instead — or use a USB/Bluetooth handheld scanner, which is faster and far more reliable for counting hundreds of items.
Can customers keep buying while we count?
Yes. The session snapshots expected quantities when it starts, so orders placed during the count are measured against that baseline rather than corrupting your variance.
I applied the wrong count. Can I undo it?
Yes. Open Restore points and restore the entry saved before that apply. Free keeps the most recent restore point; Pro keeps the full history so you can roll back to any earlier count.
What is the difference between Partial and Full / zero-based?
Partial only updates what you scan — everything else is untouched. Full / zero-based treats the whole scope as counted, so anything you did not count is set to zero. Use Partial for spot and cycle counts, Full for a proper end-of-year count.
Does it work with variable products?
Yes. Each stock-managed variation is counted as its own line, and scanning a variation’s SKU or GTIN counts that exact variation. If stock is managed at parent level, the product is counted once as a pooled line.
Is it safe on a large catalogue?
Yes. The snapshot runs in the background, the report screens are built to stay light on big catalogues, and exports stream rather than loading everything into memory.
Two people counted at once and the numbers look wrong
Multiple counters is a Pro feature — it records who counted what and keeps concurrent entries consistent. On the free version, have one person count a session at a time.
I don’t see prices or value on the variance report
Variance value needs cost data. Set WooCommerce Cost of Goods data on your products, or use Pro’s purchase-price field and valuation reports.
Where is my licence key / how do I get invoices?
Open Stocktake → Account inside WordPress: it shows your plan, expiry and activated sites, and links to your Freemius account for invoices, renewals and one-click cancellation.
Get support
Still stuck? We would rather hear about it than have you guess.
- Free users: the support forum on WordPress.org.
- Pro users: priority email support — support@erenlabs.net.
When you write, telling us your WordPress and WooCommerce versions, the counting mode, and what you expected to happen gets you a useful answer on the first reply.