Share stock between products/variations using attributes.
Our plugin allows you to create stock based on global product attributes. A simple feature in concept, yet extremely versatile, fulfilling a wide range of use cases.
Easily track and manage shared product stock, variable stock, linked stock, product addons, product combos, parts, measurements, ingredients, and much more!
Why is this needed?
Let’s say you have an online store that sells custom printed t-shirts, with each t-shirt print listed as a product on your site. Simple enough, right?
Not exactly… Since WooCommerce can only track stock at the product level, there’s no way to keep track of the total number of blank t-shirts you have in stock between each of your products.
Your stock levels would quickly go out of sync and your customers would be able to purchase 10 different prints even if you only have one t-shirt left in stock!
Ok you got me. What can we do about it?
With WooCommerce Attribute Stock you can easily share stock between any number of products or variations. This is achieved by managing stock based on product attributes, making it extremely flexible while still familiar and easy to use.
Shared stock levels are accurately tracked, available stock is displayed to customers, and over-purchasing is prevented.
See the examples section below for more advanced stock setups made possible with attribute stock.
Attribute-based stock
Manage stock at the attribute level. Share stock between all products/variations with one or more assigned attributes.
Limit product stock
Display the effective product stock available on the frontend and prevent over-purchasing.
Quantity multiplier
Specify the amount of stock reduced per purchase (including decimal values). Useful for measurements, weights, packs, lengths, etc.
Stock management
Admin page for easy management of attribute stock items. Set SKUs, internal notes, low stock threshold, product filters, and more.
Stock reports
Keep track of your attribute stock with WooCommerce stock reports.
Low stock emails
Receive email notifications for low stock and out of stock attributes.
REST API
Manage your attribute stock from external software with our fully integrated WooCommerce REST API endpoint.
Highly compatible
Works well with many plugins, such as Variation Swatch plugins, POS systems, Subscriptions, Product Bundles, Waitlists, Cart Stock Reducer, WP-Lister, WPML, Polylang, and more.
Developer friendly
Almost anything that can’t already be configured can be added or changed with actions and filters.
* Please note that WordPress Multisite and multi-store synchronisation is not currently supported.
Example #1
With attribute-level stock it’s possible to track variable stock (different amounts per item). Let’s say your shop sells Tea by the gram. Simply set your total stock on an attribute Tea and add terms such as 25g, 50g, 100g, etc. By setting a quantity multiplier, each deducts the respective amount from your total stock. This works the same for lengths, quantities, or combo packs.
Example #2
Multiple attributes per stock item can also be managed. Imagine you sold necklace pendants with various chains. Each chain has a type and a length. With attribute stock you can accurately track multiple chain inventories shared between each of your pendants and ensure items are not over-purchased.
Example #3
Attribute stock can be used in many more cases. For example, event tickets can be sold with a limited number of seats, days, or both. Different levels of tickets can be sold as separate products while sharing one or more central stock pools.
The WooCommerce Attribute Stock online documentation can be viewed here.
# CHANGELOG 1.7.4 (2022-02-09) - Fixed "Allow backorders" global setting not working in some cases. - Fixed CSV export URL conflicting with some plugins. 1.7.3 (2022-02-05) - WordPress 5.9 compatibility. - Fixed "Any" variations not working properly with some settings. - Fixed multiple admin stock list filters not combining queries correctly. - Fixed WPML and Polylang syncing overridden stock to product translations. - Added a setting to allow disabling product stock action triggering. 1.7.2 (2022-01-24) - Fixed an issue with hiding out of stock products. - Added filters to allow modifying cached out of stock IDs. 1.7.1 (2022-01-16) - Fixed a PHP error in the Lite version. 1.7.0 (2022-01-13) - WooCommerce 6.1 compatibility. - Setting a quantity multiplier of 0 now forces out of stock. - Added several new settings under WooCommerce > Settings > Products > Inventory. - Added support for the new hide out of stock filtered attributes feature in WC 6.0. - Added the ability to update existing stock items when importing CSV files. - Added admin list category filtering when using stock category filters. - Added support for back in stock / waitlist plugins. - Added support for selecting product bundles as stock product filters. - Added several new filters to cart checking logic. - Improved general support for 3rd party plugins. - Fixed multiple backorder products using the same stock showing a cart error. - Fixed "Any" attribute match rules not matching in some cases. - Fixed PHP warnings on admin product attribute pages in some cases. - Fixed duplicated orders retaining metadata of reduced attribute stock. - Fixed a bug causing products to be incorrectly ignored sometimes. - Many more improvements and optimisations. 1.6.9 (2021-10-27) - WooCommerce 5.8 compatibility. - Fixed several edge-case matching issues when using "Any" variations. - Fixed a fatal error in WordPress < 5.5.0 when deleting post items. - Fixed attribute term form fields conflicting with some plugins. - Added a filter to allow limiting stock for different product statuses. 1.6.8 (2021-09-20) - Fixed category filters not working properly with multi-language plugins. - Changed names of custom database tables and registered them in wpdb. - Check for and re-create missing database tables on activation of plugin. - Added a helpful error message when trying to install the full version over the lite version. 1.6.7 (2021-09-13) - WooCommerce 5.6 compatibility. - Fixed a PHP error when a cart item's "variations" value is not an array. - Added several additional helper functions for developers. 1.6.6 (2021-08-06) - WordPress 5.8 compatibility. - WooCommerce 5.5 compatibility. - Fixed match rules with "Any" attribute terms not being included in CSV exports. - Added workaround for object cache implementations that don't use the $found indicator variable. 1.6.5 (2021-07-07) - WooCommerce 5.4 compatibility. - Clear out-of-stock cache when WooCommerce Inventory settings are updated. 1.6.4 (2021-05-28) - Fixed a bug in the product query compatibility. 1.6.3 (2021-05-28) - WooCommerce 5.3 compatibility. - Improved compatibility for product queries when hiding out of stock items. - Added WooCommerce cart stock message filters. - Added Envato Authorize link to plugin links. 1.6.2 (2021-04-23) - Fixed new stock items being disabled by default. 1.6.1 (2021-04-21) - Fixed Facebook for WooCommerce compatibility loading when sync is disabled. - Fixed a slow database query when matching products to sync after stock is updated. - Updated Mewz plugin framework. 1.6.0 (2021-04-14) - Added WooCommerce REST API endpoint. - Added stock status filter to attribute stock admin list. - Added delete confirmation for attribute stock list items. - Added compatibility for Polylang, WP Rocket, and Facebook for WooCommerce. - Improved compatibility for WP-Lister. - Moved attribute stock SKU from 'post_excerpt' to '_sku' meta data. - Enabled product stock limiting during WP-Cron by default. - Fixed duplicated stock items not updating author ID. - Various tweaks and improvements. 1.5.8 (2021-03-31) - Fixed partial refunds restoring attribute stock for all items. - Fixed Cart Stock Reducer compatibility loading in the Lite version. 1.5.7 (2021-03-26) - Added basic compatibility for Lumise Product Designer. 1.5.6 (2021-03-25) - Fixed an issue with "Any" variations incorrectly showing as out of stock on the cart page. - Reworked frontend error messages to use the default WooCommerce messages. 1.5.5 (2021-03-19) - WordPress 5.7 compatibility. - WooCommerce 5.1 compatibility. - Fixed "Hide out of stock items" setting not working with "Any" variations. - Fixed stock being reduced incorrectly when manually adding items to an unpaid order. - Fixed HTML characters in attribute names not being decoded properly. - Added compatibility for WooCommerce Order Status & Actions Manager plugin stock restoration. 1.5.4 (2021-02-17) - WooCommerce 5.0 compatibility. - Fixed updates failing via the Envato Market plugin. - Updated WP-Lister compatibility. 1.5.3 (2021-02-04) - Fixed a bug causing product filters to not work in some cases. - Fixed Envato authorizations being revoked randomly. 1.5.2 (2021-01-18) - WooCommerce 4.9 compatibility. - Added basic WPML compatibility. - Improved performance of "Any" variations with a large number of attribute combinations. - Fixed admin notice dismiss buttons not working in WordPress 5.6. - Retry failed Envato API requests more times before giving up. 1.5.1 (2020-12-04) - WordPress 5.6 compatibility. - WooCommerce 4.7 compatibility. - Fixed "Ignore attribute stock" option not working in some cases. - Fixed decimal quantities not showing in the admin stock list with some locales. - Fixed Cart Stock Reducer not expiring attribute stock correctly. - Added more validations before sending stock notifications. - Added filter to allow changing the amount of attribute stock reduced per order item. - Disabled Envato Auth prompt in debug mode. - Improved error handling of Envato purchase verification API. 1.5.0 (2020-09-28) - WooCommerce 4.5 compatibility. - Added automatic plugin updates from Envato. - Added basic compatibility for WooCommerce Cart Stock Reducer. - Added Brazilian Portuguese (pt_BR) translations. Big thanks to Manuela Viana for translating! - Reworked "Any" variations to be compatible with most themes, quick views, swatch plugins, and hiding out of stock items. - Fixed add to cart validation not working correctly in some cases. - Fixed products in the WooCommerce mobile app being hidden/limited by attribute stock. - Changed CSV export boolean values to yes/no instead of 1/0. - Many more tweaks and bug fixes. 1.4.3 (2020-08-21) - Added compatibility for WooCommerce Product Bundles. - Added group labels to attribute match groups to improve clarity. - Fixed a conflict with WooCommerce Cart Stock Reducer. - Fixed out of stock variations being incorrectly hidden in some cases. - Fixed attribute stock list not showing the correct stock color after inline editing. - Improved compatibility with some badly coded plugins when adding attribute terms with stock. 1.4.2 (2020-08-14) - Added compatibility for WooCommerce Subscriptions. - Added inline add/subtract stock quantity action. - Added order notes for incremental order item quantity changes. - Various bug fixes and improvements. 1.4.1 (2020-08-11) - Added filter to allow changing or disabling the order note. - Added compatibility to reduce stock for orders created by WP-Lister. - Fixed cache invalidation error on plugin update. - Updated wording for "match all" option to be a bit clearer. - Minor UI accessibility tweaks. 1.4.0 (2020-08-09) - WordPress 5.5 compatibility. - WooCommerce 4.4 compatibility. - Added CSV importing and exporting. - Added new options for filtering matches by products/categories. - Added a new "Match all" option for multi-match stock reduction. - Added list table columns for attributes and filters. - Added inline stock quantity editing from the attribute stock list. - Added a bulk action to duplicate multiple stock items at once. - Added order notes for attribute stock movements. - Many more tweaks, bug fixes, and optimisations. 1.3.7 (2020-07-26) - Fixed incorrect detection of frontend admin-ajax.php requests. - Fixed situations where orphaned variations were looking for their parent - Enabled product stock limiting for frontend REST API requests (by default). - Improved handling of 3rd party queries in the attribute stock admin list. - Added modified date to attribute stock list and edit screen. 1.3.6 (2020-07-11) - WooCommerce 4.3 compatibility. - Fixed attribute terms with numeric slugs not being matched. - Fixed created date not updating when duplicating attribute stock. - Product stock will now also be limited for frontend admin-ajax.php requests (by default). - Improved attribute stock admin list sorting. - Minified and unminified CSS and JS assets are now used accordingly. - Added hooks for add to cart validation. - Added filter for modifying frontend stock limits. 1.3.5 (2020-06-07) - WooCommerce 4.2 compatibility. - Fixed attribute-level stock not displaying on the Attributes screen. - Added duplicate action for attribute matches. - Frontend JavaScript will now only load when needed (for "any" variations). - General optimisations and improvements. 1.3.4 (2020-05-24) - Fixed incorrect matching of "any" variations in certain cases. - More performance optimisations. 1.3.3 (2020-05-22) - Fixed "any" variations being allowed to add more to cart than available. - Setting a quantity multiplier of 0 will now disable the match completely. - Modified several filters for better compatibility with other plugins. - Modified singular "insufficient stock" notice text. - Performance optimisations. 1.3.2 (2020-05-09) - Fixed a packaging error in v1.3.1. 1.3.1 (2020-05-08) - WooCommerce 4.1 compatibility. - Fixed backorders not working when attribute stock is 0. - Fixed 'Allow backorders' not inheriting from variable parent product. - Product stock will now ONLY be "limited" on the frontend (filterable with 'mewz_wcas_limit_product_stock'). - Some other minor fixes and improvements. 1.3.0 (2020-04-20) - WooCommerce 4.0 compatibility. - Non-variation attributes in variable products will now also be used to match attribute stock for all variations. - Attribute-level stock will now only show on the Attributes screen when added from there. - Added tooltip next to attributes "Add match" button. - Modified a few filters. - Several other minor tweaks and improvements. 1.2.1 (2020-02-22) - Fixed some unescaped translation strings. 1.2.0 (2020-02-22) - Initial release on CodeCanyon.Source