{"id":321975,"date":"2026-06-05T06:53:17","date_gmt":"2026-06-05T06:53:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/beziworld-inventory-manager-for-woocommerce\/"},"modified":"2026-06-05T06:52:48","modified_gmt":"2026-06-05T06:52:48","slug":"beziworld-inventory-manager-for-woocommerce","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/beziworld-inventory-manager-for-woocommerce\/","author":23394266,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.0.0","stable_tag":"2.0.0","tested":"7.0","requires":"6.4","requires_php":"7.4","requires_plugins":null,"header_name":"BeziWorld Inventory Manager for WooCommerce","header_author":"Kamil \u0106wiertnia","header_description":"Flexible warehouse stock management for WooCommerce. Single-screen list of products and variations with shortage and low-stock detection, sortable columns, CSV export, AJAX bulk stock updates (batched) and inline per-row saving.","assets_banners_color":"71b992","last_updated":"2026-06-05 06:52:48","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/beziworld.eu\/plugins\/inventory-manager-for-woocommerce","header_author_uri":"https:\/\/beziworld.eu","rating":0,"author_block_rating":0,"active_installs":0,"downloads":31,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.0.0":{"tag":"2.0.0","author":"beziworld","date":"2026-06-05 06:52:48"}},"upgrade_notice":{"2.0.0":"<p>Adds warehouse locations (multi-location stock). Additive and dormant until you define locations.<\/p>","1.9.0":"<p>Adds a stock report and dashboard widget.<\/p>","1.8.0":"<p>Adds WP-CLI commands.<\/p>","1.7.0":"<p>Adds a REST API for integrations.<\/p>","1.6.0":"<p>Adds CSV stock import with a preview.<\/p>","1.5.0":"<p>Adds stock change history with undo, plus German, Czech and French translations.<\/p>","1.4.0":"<p>Adds per-product \/ per-variation alert rules and recipients.<\/p>","1.3.0":"<p>Adds low-stock e-mail alerts with a settings screen.<\/p>","1.2.0":"<p>Adds low-stock detection and a low-stock filter.<\/p>","1.1.0":"<p>Adds sortable columns and CSV export.<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3561937,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3561937,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3561937,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3561937,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3561937,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250},"banner.svg":{"filename":"banner.svg","revision":3561937,"resolution":false,"location":"assets","locale":false}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Inventory screen with shortage badges and inline stock inputs.","2":"Bulk stock update controls.","3":"Filters, search and sorting."}},"plugin_section":[262246],"plugin_tags":[6601,243403,12448,265925,286],"plugin_category":[45],"plugin_contributors":[265339],"plugin_business_model":[],"class_list":["post-321975","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-inventory","plugin_tags-low-stock","plugin_tags-stock","plugin_tags-stock-alerts","plugin_tags-woocommerce","plugin_category-ecommerce","plugin_contributors-beziworld","plugin_committers-beziworld"],"banners":{"banner":"https:\/\/ps.w.org\/beziworld-inventory-manager-for-woocommerce\/assets\/banner-772x250.png?rev=3561937","banner_2x":"https:\/\/ps.w.org\/beziworld-inventory-manager-for-woocommerce\/assets\/banner-1544x500.png?rev=3561937","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/beziworld-inventory-manager-for-woocommerce\/assets\/icon.svg?rev=3561937","icon":"https:\/\/ps.w.org\/beziworld-inventory-manager-for-woocommerce\/assets\/icon.svg?rev=3561937","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>BeziWorld Inventory Manager for WooCommerce<\/strong> turns warehouse stock control into a single, fast admin screen. List every product and variation, spot shortages at a glance, and update stock either in bulk or row-by-row \u2014 without leaving the page.<\/p>\n\n<h4>What this plugin gives you<\/h4>\n\n<ul>\n<li>A dedicated <strong>Inventory<\/strong> screen under the WooCommerce <em>Products<\/em> menu<\/li>\n<li>One unified list of <strong>simple products, variable parents and their variations<\/strong><\/li>\n<li><strong>Shortage detection<\/strong> with colour-coded badges: in stock, low stock, partial shortage, total shortage<\/li>\n<li><strong>Low-stock detection<\/strong> using each product's WooCommerce low-stock amount, with a global fallback you can filter<\/li>\n<li>Aggregated variation stock on the parent row (sum, with <code>\u2265<\/code> when some variations are unmanaged)<\/li>\n<li><strong>Bulk stock updates over AJAX<\/strong> \u2014 set, increase or decrease the stock of every selected row<\/li>\n<li>Large catalogues are processed in <strong>batches<\/strong> so the browser never times out; variations of a selected parent are chunked automatically<\/li>\n<li><strong>Inline per-row editing<\/strong> with a \"Save all\" action that persists every changed quantity at once<\/li>\n<li>Optional automatic <strong>enable stock management<\/strong> and <strong>status recalculation<\/strong> (instock \/ outofstock) on update<\/li>\n<li><strong>Server-side filtering<\/strong> by shortage or low stock, <strong>search by name or SKU<\/strong> (including variation SKUs) and <strong>sortable columns<\/strong> (name, SKU, quantity, status) \u2014 all resolved in SQL<\/li>\n<li><strong>CSV export<\/strong> of the current, filtered list (honours search, filters and sort)<\/li>\n<li><strong>Low-stock e-mail alerts<\/strong> \u2014 a periodic digest of low\/out-of-stock products sent to one or more recipients (configurable frequency)<\/li>\n<li><strong>Per-product \/ per-variation alert rules<\/strong> \u2014 set each product or variation to always alert, never alert, or follow the global setting, and route its alerts to specific recipients<\/li>\n<li><strong>Stock change history<\/strong> with one-click <strong>undo<\/strong> of the last bulk\/inline operation<\/li>\n<li><strong>CSV stock import<\/strong> with a dry-run preview (match by SKU or ID)<\/li>\n<li><strong>REST API<\/strong> under <code>\/wp-json\/bzim\/v1\/<\/code> for headless, mobile and WMS integrations<\/li>\n<li><strong>WP-CLI<\/strong> commands (<code>wp bzim list\/set\/report\/alerts<\/code>)<\/li>\n<li><strong>Stock report<\/strong> (units &amp; value) and an <strong>inventory dashboard widget<\/strong><\/li>\n<li><strong>Warehouse locations<\/strong> \u2014 track stock per location (simple products); the total is the sum of all locations<\/li>\n<li>Translated into English, Polish, German, Czech and French<\/li>\n<li>Pagination tuned for big catalogues<\/li>\n<li>Product image thumbnails with a click-to-zoom lightbox<\/li>\n<li>Capability-gated (<code>manage_woocommerce<\/code>), nonce-protected AJAX endpoints<\/li>\n<li>WooCommerce <strong>HPOS (custom order tables) compatible<\/strong><\/li>\n<li>Fully internationalised; ships with a translation template (<code>.pot<\/code>)<\/li>\n<\/ul>\n\n<h4>Built for speed on large catalogues<\/h4>\n\n<ul>\n<li>Product and variation objects are primed in a single cache pass to avoid N+1 queries<\/li>\n<li>Shortage filtering, search and sorting happen at the database level, not in PHP<\/li>\n<li>Bulk operations are queued client-side and dispatched in configurable batches<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/beziworld-inventory-manager-for-woocommerce<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the <em>Plugins<\/em> screen in WordPress.<\/li>\n<li>Make sure WooCommerce is installed and active.<\/li>\n<li>Open <strong>Products \u2192 Inventory<\/strong> to manage your stock.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20woocommerce%3F\"><h3>Does this require WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. The plugin manages WooCommerce product stock and will show an admin notice if WooCommerce is not active.<\/p><\/dd>\n<dt id=\"does%20it%20change%20my%20data%20on%20uninstall%3F\"><h3>Does it change my data on uninstall?<\/h3><\/dt>\n<dd><p>Stock itself lives in WooCommerce product meta and is never touched on uninstall. The plugin's own data \u2014 the alert-settings option and the stock-history log table \u2014 is removed on uninstall.<\/p><\/dd>\n<dt id=\"can%20it%20handle%20thousands%20of%20products%3F\"><h3>Can it handle thousands of products?<\/h3><\/dt>\n<dd><p>Yes. Filtering, search and sorting are performed in SQL, objects are batch-primed, and bulk updates are dispatched in batches to avoid timeouts.<\/p><\/dd>\n<dt id=\"who%20can%20access%20the%20screen%3F\"><h3>Who can access the screen?<\/h3><\/dt>\n<dd><p>Any user with the <code>manage_woocommerce<\/code> capability (shop managers and administrators by default).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Added warehouse locations (multi-location stock) for simple products; the WooCommerce total is the sum of all locations.<\/li>\n<\/ul>\n\n<h4>1.9.0<\/h4>\n\n<ul>\n<li>Added a Stock Report screen (units and value) and an inventory dashboard widget.<\/li>\n<\/ul>\n\n<h4>1.8.0<\/h4>\n\n<ul>\n<li>Added WP-CLI commands (wp bzim list\/set\/report\/alerts).<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Added a REST API under \/wp-json\/bzim\/v1\/ (list, read, update, bulk).<\/li>\n<\/ul>\n\n<h4>1.6.0<\/h4>\n\n<ul>\n<li>Added CSV stock import with a dry-run preview (match by SKU or ID); imports are logged.<\/li>\n<\/ul>\n\n<h4>1.5.0<\/h4>\n\n<ul>\n<li>Added a stock change history (audit log) with a \"Stock History\" screen and one-click undo of the last operation. Added German, Czech and French translations.<\/li>\n<\/ul>\n\n<h4>1.4.0<\/h4>\n\n<ul>\n<li>Added per-product and per-variation alert overrides (mode + product-specific recipients); the alert digest is now sent per recipient. Added a \"Send test e-mail\" button on the Stock Alerts screen. Added support for the new block-based WooCommerce product editor (alert fields appear in the Inventory section).<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li>Added low-stock e-mail alerts: a \"Stock Alerts\" settings screen with recipient addresses, frequency and scope, sending a periodic digest of low\/out-of-stock products.<\/li>\n<\/ul>\n\n<h4>1.2.0<\/h4>\n\n<ul>\n<li>Added low-stock detection (per-product threshold with global fallback, filterable) with a \"Low stock\" badge and a \"Low stock only\" filter.<\/li>\n<li>Added a \"Products per page\" screen option.<\/li>\n<\/ul>\n\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Added sortable column headers and CSV export of the filtered list. Redesigned the filter bar for alignment and readability.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: inventory list, shortage detection, AJAX bulk updates, inline per-row saving, SQL-level filtering\/search\/sorting, HPOS compatibility.<\/li>\n<\/ul>","raw_excerpt":"Flexible WooCommerce stock management on a single screen: shortage detection, batched AJAX bulk updates and inline per-row stock editing.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/321975","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=321975"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/beziworld"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=321975"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=321975"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=321975"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=321975"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=321975"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=321975"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}