WooCommerce Attribute Stock supercharges your stock by allowing you to share inventories between multiple products/variations, or deduct different amounts of stock for each purchase of a product, variation, or attribute.
Easily track and manage shared product stock, variable stock, linked stock, product addons, product combos, parts, measurements, ingredients, and much more!
First, a short message and friendly warning <3
Since Attribute Stock was released in early 2020, when no other plugins offered this level of stock control, several competing plugins have popped up over time, as one would expect. They range from offering a subset of features from Attribute Stock to shameless clones of our plugin (looking at you “Shared Attribute Stock“).
Please don’t be fooled by some of these plugins, especially from WooCommerce.com. These are not official WooCommerce plugins. They are developed by 3rd parties and are often of poor quality. The only requirement by WooCommerce.com is to pass their automated testing suite, but this doesn’t ensure quality control or prevent against errors, poor UI/UX, or unhelpful support.
We continue to stand by the quality, performance and extensive feature-set of Attribute Stock, while offering it at a fraction of the cost of competing plugins. We are a small independent developer and we make plugins because it’s what we love doing. When you contact us for support, you’re speaking directly to the people who make the plugin, not a support agent or company representative.
With that said, we’d like to say a huge thank you to everyone for your kind words, invaluable feedback and amazing support over the years!!! <3
Why would I need this?
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!
How does attribute stock fix this?
By adding stock to global product attributes, you can effortlessly share one or more inventories between any number of products or variations that have these attributes.
Shared stock levels are accurately tracked, available stock is displayed to customers, and over-purchasing is prevented.
This example barely scratches the surface of what’s possible. Make sure to check out all of the features and examples below for more advanced use cases.
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 to customers on the frontend and prevent over-purchasing.
Quantity multipliers
Deduct different quantities of attribute stock or product/variation stock per unit. Useful for measurements, weights, packs, lengths, etc.
Product filters
Add filters to your attribute stock to match only specific products, product types or product categories.
Stock management
Admin page for easy management of attribute stock items. Set SKUs, internal notes, low stock threshold, product filters, and more.
CSV import/export
Instantly export your attribute stock to CSV. Add or update stock in your favorite spreadsheet editor, then import your changes with a single click.
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 or planned.
Example #1 – Variable stock
You have a candy shop and sell candy in bags of 10, 25, and 100. Simply set your total stock at the product level and specify a Stock multiplier on each of your product variations (demo). The respective amount will be deducted from your total stock for each purchase. If you need to share variable stock across more than one product listing, you can use an attribute stock item instead (demo).
Example #2 – Multiple attributes
Often your stock will have more than one attribute, such as t-shirts with different sizes and colors. In this case it’s trivial to create an attribute stock item with rules to match any number or combination of attributes and attribute terms (demo).
Example #3 – Product bundles
Sometimes you’ll want to sell several simple products as well as a bundle of these products for a discount. Since attributes can be assigned at the product-level as well as the variation-level, you can easily create and manage stock that’s shared between a product and a variation of a different product (demo).
Example #4 – “Any” variations
Attribute stock doesn’t require you to specify each of your product variations explicitly, like you’d normally need to do when managing stock on variations. If you have product variations that share similar data like price and weight, you can simplify your product by grouping them into a single variation with Any selected for its attribute(s). Stock will be accurately handled for each attribute according to your attribute stock rules (demo).
Want to learn more about WooCommerce Attribute Stock? Our up-to-date documentation can be viewed online here.
Be sure to take a look at our FAQ / Troubleshooting if you’re running into any issues.
# CHANGELOG
1.10.0 (2023-10-23)
- WordPress 6.3 compatibility.
- WooCommerce 8.2 compatibility.
- PHP 8.2 compatibility.
- New feature: Product stock multipliers.
- Added tags to CSV import/export and REST API.
- Added a filter to allow zero multipliers to exclude match rule groups when matched.
- Added compatibility for the "Advanced Order Export for WooCommerce" plugin.
- Added a "Settings" button to the Attribute Stock admin screen.
- Improved performance when matching many stock items with the same attributes.
1.9.4 (2023-05-05)
- WooCommerce 7.6 compatibility.
- Added support for WooCommerce's "Product Updated" webhook.
- Added support for importing multiple items with the same titles or SKUs.
- Added handling of hidden characters in imported CSV files.
- Added "|" separator for imported CSV attributes (as an alternative to new lines).
- Fixed the product attribute terms "Stock" column appearing to be sortable.
- Various minor tweaks and improvements.
1.9.3 (2023-01-24)
- WooCommerce 7.3 compatibility.
- Fixed WooCommerce attribute lookup table compatibility requiring the "Trigger product stock actions" setting.
- Added new filters to allow modifying imported CSV data.
1.9.2 (2023-01-07)
- Handled a case where a product object is expected but an invalid object is provided.
1.9.1 (2023-01-05)
- Fixed incorrect table prefix used in some queries.
1.9.0 (2022-12-31)
- WooCommerce 7.2 compatibility.
- Added quantity multiplier override field on products and variations.
- Added stock item tags to help with organizing and managing stock.
- Added syncing of product stock status to the product_meta_lookup table.
- Improved performance of querying variations to trigger stock actions.
- Improved stock list table layout spacing.
- Fixed layout of variation option conflicting with options from other plugins.
- Fixed a MySQL error occurring in certain background tasks.
- Fixed a rare PHP warning on product pages using "Any" variations.
1.8.3 (2022-12-02)
- WordPress 6.2 compatibility.
- Remove stock item match groups when deleting related global attributes, to avoid unintended product associations.
- Performance improvements to variable product stock limiting when "Sync product visibility" is enabled.
- Fixed a PHP error in outdated WordPress versions when saving stock items.
- Fixed product stock actions not firing for variations in some cases.
1.8.2 (2022-11-13)
- WooCommerce 7.1 compatibility.
- Added a new [attribute_stock] shortcode to display stock for a single stock item.
- Fixed a PHP error in the Lite version after last update.
- Declared WooCommerce High Performance Order Storage (HPOS) compatibility.
1.8.1 (2022-10-30)
- Fixed products sometimes showing as in stock incorrectly when using decimal stock.
1.8.0 (2022-10-20)
- WordPress 6.1 compatibility.
- WooCommerce 7.0 compatibility.
- Added synchronization of products' product_visibility/outofstock taxonomy/term (optional setting).
- Removed the old out-of-stock products tracking system that was used for product queries.
- Display stock availability for "Any" variations regardless of "Stock display format" setting.
- Improved support for WooCommerce's product attributes lookup table.
- Added an "Ajax Variation Threshold" setting.
- Added compatibility for the Porto theme's Skeleton Lazy Loading feature.
- Fixed styling for the "Ignore attribute stock" product-level option.
- Fixed styling for additional metaboxes on the attribute stock edit screen.
1.7.12 (2022-08-17)
- Fixed a PHP warning after last update.
1.7.11 (2022-08-17)
- WooCommerce 6.8 compatibility.
- Added the REST API to the Lite version.
- Added OpenPOS compatibility.
- Fixed cart items not indicating that accumulative shared stock is backordered.
- Simplified the CSV import/export attribute data format.
1.7.10 (2022-06-29)
- WooCommerce 6.6 compatibility.
- Fixed inline stock edit fields remaining after losing focus.
- Fixed inline edit not updating stock modified date.
- Added filter to allow disabling inline stock editing.
- Handle cases where object cache returns false unexpectedly.
1.7.9 (2022-05-16)
- WordPress 6.0 compatibility.
- WooCommerce 6.5 compatibility.
- Added support for CJK characters in attribute slugs.
- Fixed refunds sometimes not adjusting stock correctly.
- Fixed a fatal error when the Envato Market plugin is installed incorrectly.
1.7.8 (2022-04-24)
- WooCommerce 6.4 compatibility.
- Fixed being able to add out of stock unmatched "Any" variations to the cart (when using the setting).
- Fixed "Backordered" meta not being added to order items when attribute stock is backordered.
1.7.7 (2022-03-25)
- Fixed SKUs not being searchable in the admin list.
- Improved compatibility with number formats in different locales.
1.7.6 (2022-03-15)
- WooCommerce 6.3 compatibility.
- Improved triggering of product stock actions.
- Changed product filters to only allow selecting main products (no variations).
1.7.5 (2022-02-26)
- Added a product filter to the admin stock list.
- Added support for "Any" variations with the product attributes lookup table.
- Fixed background tasks sometimes not being triggered properly.
- Stopped disabling cache when WP_DEBUG is enabled.
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.