Eren Labs – Stocktake for WooCommerce

Description

Most WooCommerce inventory plugins help you manage stock numbers. Stocktake for
WooCommerce helps you verify them against reality — the physical count process
that stores actually run.

Workflow:

  1. Create a session. Pick a scope (all products or selected categories). A
    snapshot of current stock is taken so later sales don’t distort the variance.
  2. Count. Open the count screen on a phone or tablet, scan a barcode (or type
    a SKU), enter the quantity. Optional blind count hides the expected number
    so counters aren’t biased.
  3. Review variances. See expected vs counted, unit differences, and the value
    of the discrepancy.
  4. Apply. Post the counted quantities back to WooCommerce stock in one click.
  5. Export. Download the count sheet as CSV for your records.

Free core

  • Unlimited stocktake sessions
  • Snapshot-based variance (count while the store stays open)
  • Counting modes: partial (spot count) and full / zero-based
  • Barcode / SKU / product-name scan screen (USB & Bluetooth scanners)
  • Phone camera barcode scanning — Beta (no hardware needed; some barcode types may not scan on every device — a handheld scanner or typing the SKU always works)
  • Blind count
  • Automatic stock backup before every apply, with one-click undo of the last apply
  • Resume an unfinished count later (scans are saved as you go)
  • Background snapshot for large catalogues
  • Variance value using WooCommerce Cost of Goods meta (with a filter to override)
  • Reorder shortlist — everything at or below its low-stock level (or out of
    stock) with CSV export, plus a negative-stock warning
  • Count-completeness warning before a full/zero-based apply
  • CSV export
  • One-click stock adjustment

Pro

  • Quick stock check — scan any product, see its live stock with a full
    per-variant breakdown, and fix a quantity on the spot (audit-logged, with
    configurable access for count staff)
  • Add-on-top (tally) counting mode — count box by box across passes
  • Goods-in (receiving) mode — scanned quantities are added to current stock
  • Full restore-point history — browse and roll back to any point
  • Inventory valuation report — on-hand value at retail and at cost, per category, with a purchase-price field
  • Insights — ABC count-priority classification and an accuracy & shrinkage trend across your stocktakes
  • Per-session variance-by-category breakdown — see which part of the shop leaks stock
  • Multiple counters with attribution (who counted what)
  • Recount / approval workflow
  • Scheduled / recurring count reminders
  • Printable count sheets and branded PDF reports
  • Priority email support

Third-party libraries

This plugin bundles the ZXing barcode library (@zxing/library, MIT license,
https://github.com/zxing-js/library) at assets/js/vendor/zxing.min.js, used as a
fallback decoder for the phone-camera scanner when the browser has no native
BarcodeDetector. It is served locally and never loaded from a remote CDN.

External services

This plugin uses the Freemius SDK (https://freemius.com) for optional usage
tracking and for licensing/updates of the separate Pro version. On first
activation you are shown an explicit opt-in screen; NOTHING is sent anywhere
unless you click “Allow & Continue” — choosing “Skip” keeps the plugin fully
functional with no data leaving your site. If you opt in, Freemius receives
basic site data (site URL, WordPress/PHP versions, plugin version, admin email)
to provide update notifications and support.
Freemius terms: https://freemius.com/terms/
Freemius privacy policy: https://freemius.com/privacy/

Installation

  1. Upload the stocktake-for-woocommerce folder to /wp-content/plugins/.
  2. Activate the plugin through the Plugins menu in WordPress.
  3. Go to Stocktake in the admin menu and create your first session.

WooCommerce must be installed and active.

FAQ

Does it change my stock automatically?

No. Counting only records numbers. Stock is changed only when you press
Apply adjustments.

Will counting block sales?

No. Each session snapshots stock at creation time, so the store can keep selling
while you count. The variance is measured against the snapshot.

Does it work with variations?

Yes — each stock-managed variation is counted as its own line. Scanning a
variation’s barcode (SKU or the WooCommerce GTIN/UPC/EAN/ISBN field) counts
that exact variation, and applying updates that variation’s stock.

Which barcodes are recognised?

A scanned code is matched against the SKU first, then against WooCommerce’s
own GTIN / UPC / EAN / ISBN product field (WooCommerce 9.2+). Both work for
products and variations.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Eren Labs – Stocktake for WooCommerce” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.1.20

  • Fix: the bundled ZXing barcode library is back in the package — a packaging
    step had been leaving assets/js/vendor/ out of the zip, which broke the
    phone-camera scanner’s fallback decoder on iOS.
  • Directory housekeeping for WordPress.org: escapes all admin output through
    wp_kses(), prepares every database query with placeholders, uses a more
    distinct internal PHP namespace, and drops directory image files and build
    metadata from the plugin package.
  • Every Pro-only engine — the approval workflow, presets, scheduled
    reminders, stock-check access layer and the Pro report helpers — now ships
    exclusively in the separately distributed Pro build.

1.1.19

  • Fix: Excel exports now declare a default cell style, so strict readers
    (e.g. openpyxl) no longer warn about a missing default style. The files
    always opened correctly in Excel; this makes them fully standard.
  • Fix: a cancelled stocktake now shows “View” instead of “Count” in the list.
  • Fix: the phone-camera scanner shows a clear message when the camera can’t
    start (unsupported browser or insecure context) instead of doing nothing.

1.1.18

  • WordPress.org review compliance: the free plugin now contains no Pro code
    at all — Pro-only counting modes and cost valuation live exclusively in
    the separately distributed Pro build (nothing is locked or gated).
  • All admin JavaScript is enqueued via wp_enqueue_script (no inline tags).
  • Documents the optional Freemius opt-in under “External services”.

1.1.17

  • Variable products: parent-level (pooled) stock is now counted correctly as one
    line; scanning any of its variations lands on that line, and per-variation
    SKUs can no longer count against the wrong sibling.
  • Fix: a recount saved after “Apply” is now always pushed on the next Apply,
    while items whose count matched the records are never touched — sales made
    during the stocktake are preserved exactly.
  • Reports: Pulse/Insights pages now stay fast and light on huge catalogues,
    exclude trashed products, respect the shop timezone, and exports stream
    any catalogue size without memory limits or skipped rows.
  • History gains paging past 300 entries; goods-in sessions export the received
    quantity; presets are addressed by stable ids (stale tabs can no longer
    delete the wrong preset); many smaller fixes from the second code audit.

1.1.16

  • Security & reliability: reject counting/adjusting draft or trashed products;
    validate quantities; guard against concurrent Apply double-counting stock;
    the auto-backup now aborts Apply if it can’t be fully written.
  • Fix: Undo now rolls back each Apply wave correctly; a failed save no longer
    freezes the counting screen; blind counts no longer leak expected quantities.
  • Fix: comma decimals (12,5) are accepted; upgrade/activation edge cases,
    the count reminder after reactivation, and full data cleanup on uninstall.
  • Adds a Cancel button to a stocktake; clearer export column and safer CSVs.

1.1.15

  • Fix: the admin menu icon rendered as a plain white square on some
    colour schemes; the brand icon now displays in full colour.

1.1.14

  • i18n: the checkout now opens in the plugin’s selected language where
    supported (EN/ES/DE/FR/IT), with automatic detection elsewhere.

Older releases: see the changelog.txt file shipped with the plugin.