{"id":358807,"date":"2026-08-27T13:56:19","date_gmt":"2026-08-27T13:56:19","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/inventory-check-for-woocommerce\/"},"modified":"2026-08-27T13:55:47","modified_gmt":"2026-08-27T13:55:47","slug":"inventory-check-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/co.wordpress.org\/plugins\/inventory-check-for-woocommerce\/","author":492305,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.5","stable_tag":"0.1.5","tested":"7.1","requires":"6.5","requires_php":"8.1","requires_plugins":null,"header_name":"Inventory Check for WooCommerce","header_author":"Neil Matthews","header_description":"Walk the warehouse with your phone, count stock, review differences, and update WooCommerce safely.","assets_banners_color":"","last_updated":"2026-08-27 13:55:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/neilmatthews.com\/inventory-check-for-woocommerce\/","header_author_uri":"https:\/\/neilmatthews.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.5":{"tag":"0.1.5","author":"ngmatthews","date":"2026-08-27 13:55:47","revision":3668989}},"upgrade_notice":{"0.1.5":"<p>Removes an unused static web app manifest from the plugin zip. Safe to update.<\/p>","0.1.4":"<p>History lists all completed stock checks. Safe to update.<\/p>","0.1.3":"<p>Freemius integration uses the icfw_fs helper. Safe to update.<\/p>","0.1.2":"<p>WordPress 7.1 compatibility header and Plugin Check clean-up. Safe to update.<\/p>","0.1.1":"<p>Free installs no longer receive the Pro barcode scanner scripts.<\/p>","0.1.0":"<p>First stocktaking release. Open <code>\/inventory-check\/<\/code> on a phone after activating.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.5"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[6601,12448,277892,13907,286],"plugin_category":[45],"plugin_contributors":[78154,277893],"plugin_business_model":[],"class_list":["post-358807","plugin","type-plugin","status-publish","hentry","plugin_tags-inventory","plugin_tags-stock","plugin_tags-stocktake","plugin_tags-warehouse","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-freemius","plugin_contributors-neilmatthews","plugin_committers-ngmatthews"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/inventory-check-for-woocommerce.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Inventory Check for WooCommerce is a stocktaking tool for warehouse staff. It is not a warehouse-management system.<\/p>\n\n<p>Warehouse counting happens in a dedicated app on your own WordPress site at <code>\/inventory-check\/<\/code>, not in wp-admin.<\/p>\n\n<p>Use it to:<\/p>\n\n<ul>\n<li>Sign in with a WordPress user (counter or supervisor)<\/li>\n<li>Optionally install the app on a phone home screen<\/li>\n<li>Search WooCommerce products by name or SKU<\/li>\n<li>Record physical counts for simple products and variations<\/li>\n<li>Pause and resume a stock check<\/li>\n<li>Review expected quantity versus what was counted<\/li>\n<li>Catch conflicts when live stock changed during the count<\/li>\n<li>Approve updates before WooCommerce stock is changed<\/li>\n<li>See recent completed stock checks<\/li>\n<\/ul>\n\n<p>This plugin requires WooCommerce. Pretty permalinks are required for the app URL.<\/p>\n\n<h4>What this plugin does not do<\/h4>\n\n<ul>\n<li>It does not replace a warehouse-management system<\/li>\n<li>It does not collect customer names, addresses, emails, or payment data<\/li>\n<li>It does not change WooCommerce stock until a supervisor confirms in the app<\/li>\n<\/ul>\n\n<h4>Pro<\/h4>\n\n<p>A Pro build (sold separately from neilmatthews.com) adds camera barcode scanning, offline counting, CSV export, and detailed audit views. The WordPress.org zip is the complete manual stocktake: search, count, review, history, and update.<\/p>\n\n<h4>Documentation<\/h4>\n\n<p>Setup, roles, counting, review, and troubleshooting:<\/p>\n\n<p>https:\/\/neilmatthews.com\/inventory-check-for-woocommerce\/<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Inventory Check processes:<\/p>\n\n<ul>\n<li>WordPress account data already on the site (login, display name, user ID)<\/li>\n<li>WooCommerce product names, SKUs, barcodes\/GTINs, thumbnails, and stock quantities<\/li>\n<li>Stocktake names, physical counts, and audit rows of stock changes<\/li>\n<\/ul>\n\n<p>It does <strong>not<\/strong> process customer personal data or payment card data. Counts stay on the merchant\u2019s WordPress site. There is no neilmatthews.com inventory cloud.<\/p>\n\n<p>The optional home-screen app uses a service worker that caches CSS, JavaScript, and icons only. It does not cache authenticated REST responses.<\/p>\n\n<p>Pro builds may keep unsynced counts in the browser (IndexedDB), keyed by WordPress user ID, and wipe them on log out.<\/p>\n\n<h4>Freemius<\/h4>\n\n<p>Optional licensing and update delivery for the Pro package is provided by Freemius. The free WordPress.org build works without a Freemius licence. Freemius may phone home for licence validation and updates when you use Pro.<\/p>\n\n<ul>\n<li>Freemius Terms: https:\/\/freemius.com\/terms\/<\/li>\n<li>Freemius Privacy: https:\/\/freemius.com\/privacy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate WooCommerce.<\/li>\n<li>Install and activate this plugin.<\/li>\n<li>Log in to WordPress, then open <code>\/inventory-check\/<\/code> on your site.<\/li>\n<\/ol>\n\n<p>Pretty permalinks must be enabled. Production use requires HTTPS (camera, installable app, and secure cookies).<\/p>\n\n<p>Shop Managers and Administrators can count and update stock. You can also add Inventory Check Counter and Supervisor roles from WordPress users.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20collect%20customer%20data%3F\"><h3>Does this collect customer data?<\/h3><\/dt>\n<dd><p>No. The app works with product and stock data only. It does not need customer names, addresses, emails, telephone numbers, or payment details. See the Privacy section below.<\/p><\/dd>\n<dt id=\"do%20warehouse%20staff%20need%20wp-admin%3F\"><h3>Do warehouse staff need wp-admin?<\/h3><\/dt>\n<dd><p>No. Counting is done in the Inventory Check app at <code>\/inventory-check\/<\/code>. Supervisors can open a lightweight History screen in wp-admin.<\/p><\/dd>\n<dt id=\"when%20is%20woocommerce%20stock%20changed%3F\"><h3>When is WooCommerce stock changed?<\/h3><\/dt>\n<dd><p>Only after a supervisor reviews differences and confirms <strong>Update stock<\/strong> in the app. Ready lines are set to the counted quantity. Conflicts are left for a recheck.<\/p><\/dd>\n<dt id=\"what%20if%20stock%20changes%20while%20we%20are%20counting%3F\"><h3>What if stock changes while we are counting?<\/h3><\/dt>\n<dd><p>Inventory Check compares live WooCommerce stock to the quantity captured when the product was first counted. If they differ, that line is a conflict and is not written.<\/p><\/dd>\n<dt id=\"can%20more%20than%20one%20stock%20check%20run%20at%20once%3F\"><h3>Can more than one stock check run at once?<\/h3><\/dt>\n<dd><p>Each user can have one open stock check (counting, paused, or in review).<\/p><\/dd>\n<dt id=\"why%20is%20the%20app%20url%20404%3F\"><h3>Why is the app URL 404?<\/h3><\/dt>\n<dd><p>Enable pretty permalinks (Settings \u2192 Permalinks) and open <code>\/inventory-check\/<\/code> while logged in with Inventory Check access.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.5<\/h4>\n\n<ul>\n<li>Do not ship a static web app manifest file. The live manifest is generated in PHP.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Completed stocktake history lists every check (paginated). The previous Free cap of 20 is removed.<\/li>\n<li>Service worker and web app manifest output uses wp_json_encode for JavaScript and JSON.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Freemius SDK helper suffix is now icfw_fs (matches the Developer Dashboard snippet).<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Tested up to WordPress 7.1.<\/li>\n<li>Plugin Check: no hidden files in languages; user-agent is unslashed before sanitizing; stocktake SQL uses prepared queries.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Pro scanner and offline scripts ship in a separate folder so the free Freemius zip no longer includes them.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>First MVP: search, count, review, safe reconcile, and confirmed WooCommerce stock updates.<\/li>\n<li>Search and scan mark products already counted in this stocktake as Checked.<\/li>\n<li>PWA at <code>\/inventory-check\/<\/code> with home-screen icons.<\/li>\n<li>Roles and capabilities for counters and supervisors.<\/li>\n<li>Recent completed history (Free shows the 20 most recent). Pro adds scan, offline, full history, CSV, and audit detail.<\/li>\n<li>Freemius SDK bundled for Pro licensing. The free build works without a Freemius licence.<\/li>\n<\/ul>","raw_excerpt":"Physical stocktaking for WooCommerce. Count stock on a phone, review differences, and update inventory safely.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/358807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=358807"}],"author":[{"embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ngmatthews"}],"wp:attachment":[{"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=358807"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=358807"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=358807"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=358807"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=358807"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/co.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=358807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}