Maximum, Minimum and Multiple Quantity for WooCommerce Shops

Skildring

Maximum, Minimum and Multiple Quantity for WooCommerce Shops is a simple extension for WooCommerce that lets you set a maximum and/or minimum limit for the number of items that can be added to the cart, and/or force customers to buy a product in multiples of a set number (e.g. 3, 6, 9, …), for each product, per order.

It’s like one of those signs at the grocery store that says, “LIMIT 2 PER CUSTOMER!”, “MINIMUM 5 ITEMS” or “SOLD IN PACKS OF 3”. This plugin will not add a sign like that, but the quantity input field will honor the maximum, the minimum and/or the multiple.

You can set a global maximum, minimum and/or multiple to affect all products in your WooCommerce store or, if you prefer, a different one for each product, individually. Each product’s own setting will always override the global one.

This works for all products in your WooCommerce store: Simple and Variable products.

Customers do not have to be logged in for this to work. This works for guest buyers, as well as logged-in buyers.

This plugin was initially developed by Isabel Castillo and later adopted by Marco Almeida | Webdados / Naked Cat Plugins.

Header photo by Mick Haupt.

Other (premium) plugins

Already know our other WooCommerce (premium) plugins?

Skjermbilete

Installasjon

Install and Activate

  1. In your WordPress dashboard, go to Plugins, Add New.
  2. Search for “Maximum, Minimum and Multiple Quantity for WooCommerce Shops” to find the plugin.
  3. When you see “Maximum, Minimum and Multiple Quantity for WooCommerce Shops”, click “Install Now” to install the plugin.
  4. Click “Activate” to activate the plugin.

Configuration

The plugin has 3 global settings and the same 3 settings again per product, so you can override the global ones for a specific product. You can use these settings in a variety of ways to accomplish the unique goals of your store:

  1. To set a global maximum, minimum and/or multiple to affect all products, go to WooCommerce, Settings, Products tab. Click “Inventory”. Scroll down to “Maximum quantity per product”, “Minimum quantity per product” and “Sell in multiples of”. Set your desired values there.
  2. To override this for a single product, go the product’s own “Edit product” page. Scroll down to the “Product Data” box. Click on the Inventory tab. There, you’ll see the same three settings, “Max quantity per order”, “Min quantity per order” and “Sell in multiples of”, where you can set your desired values for that product.

Vanlege spm.

Does this plugin work with products with variations (Variable products)?

Yes, since version 1.4.

Can I set a different limit for different products?

Yes, since version 1.4.

Can I set a minimum quantity that customers must order?

Yes, since version 3.0, globally or per product.

Can I force customers to buy a product in multiples of a set number (e.g. 3, 6, 9, …)?

Yes, since version 3.0, globally or per product.

Is this plugin compatible with the new WooCommerce High-Performance Order Storage?

Yes, since version 2.0.

Is this plugin compatible with the new WooCommerce block-based Cart and Checkout?

Yes, since version 2.0.

I need help, can I get technical support?

This is a free plugin. It’s our way of giving back to the wonderful WordPress community.

There’s a support tab on the top of this page, where you can ask the community for help. We’ll try to keep an eye on the forums but we cannot promise to answer support tickets.

If you reach us by email or any other direct contact method, we’ll assume you need premium, paid-for support.

Where do I report security vulnerabilities found in this plugin?

You can report any security bugs found in the source code of this plugin through the Patchstack Vulnerability Disclosure Program. The Patchstack team will assist you with verification, CVE assignment and take care of notifying the developers of this plugin.

Can I contribute with a translation?

Sure. Go to GlotPress and help us out.

Omtalar

8. oktober 2020
Thanks for this plugin. We use it along with WP Job Manager and WooCommerce Subscriptions. It ensures that our users can only purchase one subscription plan. Before, we faced the issue that a few users accidentally purchased a plan twice. Thanks for investing your time. 🙂 Florian
Les alle 37 omtalar

Bidragsytarar og utviklarar

“Maximum, Minimum and Multiple Quantity for WooCommerce Shops” is open source software. The following people have contributed to this plugin.

Contributors

“Maximum, Minimum and Multiple Quantity for WooCommerce Shops” er omsett til 10 språk. Takk til omsetjarane for bidraga deira.

Omset “Maximum, Minimum and Multiple Quantity for WooCommerce Shops” til ditt eige språk.

Interested in development?

Les kjeldekoden, sjekk SVN-lageret eller abonner på utviklingsloggen med RSS.

Endringslogg

3.0

  • [NEW] «Minimum quantity per product» option, globally and per product, to require a minimum quantity per order (mirrors the existing maximum quantity option)
  • [NEW] «Sell in multiples of» option, globally and per product, to force quantities to be bought in multiples of a set number (e.g. 3 allows 3, 6, 9, …)
  • [NEW] Renamed to «Maximum, Minimum and Multiple Quantity for WooCommerce Shops» to reflect the new options
  • [FIX] «Add to cart» buttons on product archives/lists (classic and block-based) now add a valid multiple and/or the minimum instead of always trying to add 1, when a «Sell in multiples of» and/or a minimum quantity is set
  • [TWEAK] Added a «Settings» link to the plugin’s entry on the Plugins list page

2.4 – 2026-06-06

  • [FIX] Fatal error in edge cases (e.g. a cart item referencing a product/variation that no longer exists)
  • [DEV] Move plugin repository to GitHub
  • [DEV] Requires WordPress 5.9 and WooCommerce 7.3
  • [DEV] Tested up to WordPress 7.1-alpha-62456 and WooCommerce 10.8.1

2.3 – 2025-04-14

  • [NEW] We are now called Naked Cat Plugins 😻
  • [DEV] Requires WordPress 5.8, WooCommerce 7.1, and PHP 7.2
  • [DEV] Tested up to WordPress 6.8-RC3-60146 and WooCommerce 9.8.1

2.2.1 – 2024-10-08

  • [FIX] Load text domain at the right time to avoid PHP notices on WordPress 6.7 and above
  • [DEV] Tested up to WordPress 6.7-beta1-59184 and WooCommerce 9.4.0-beta.2

2.1 – 2024-06-30

  • [NEW] Rename plugin to a more understandable title
  • [TWEAK] Main plugin file header adjustments
  • [TWEAK] Remove .pot file from repository
  • [TWEAK] readme.txt adjustments

2.0 – 2024-06-27

  • Plugin adopted by Marco Almeida | Webdados
  • Rename plugin main file and textdomain to the same as the folder name to follow the plugin development guidelines (the plugin will deactivate on update, and should be manually activated again)
  • Code refactor – Use namespacing, apply coding standards, better logic
  • Use WooCommerce CRUD functions instead of get_post_meta and update_post_meta
  • Fix maximum quantity on the WooCommerce block-based Cart
  • Test and declare WooCommerce High-Performance Order Storage compatibility
  • Test and declare WooCommerce block-based Cart and Checkout compatibility
  • Requires WooCommerce 5.0 and WordPress 5.6
  • Tested up to WooCommerce 8.9.0 and WordPress 6.6-alpha-58011

1.6

  • Fixed – Can no longer use WC’s name in plugin.

1.5.2

  • Fixed – Fixed a bug that was ignoring the max on some Variable Products.

1.5.1

  • Fixed – Honor the “Sold individually” setting above the universal max limit.

1.5

  • New – Added filters to the error message strings.
  • Fixed – The max was not being enforced the input field for Variable products.
  • Fixed – The max now works even when backorders are enabled.

1.4.3

  • Fixed – The max limit also works on Variable Products, as long as backorders are not enabled.

1.4.2

  • Fixed a fatal error regarding get_parent_data().

1.4.1

  • New – For variable products, the stock quantity display has been restored. Previously, the stock quantity was hidden for products with variations. This only affected those who were displaying the stock quantity on the product page.
  • Fixed several PHP notices. Thanks to @brettmhoffman.
  • Internationalization – load_plugin_textdomain is now loaded on init rather than plugins_loaded, as it should be.

1.4

  • New – Support for different limits for individual products. See the version 1.4 release post for details.
  • New – Support for Variable products (products with variations). Now, the plugin works with all products, Simple and Variable.
  • Code refactoring – Many functions were renamed:
    isa_get_qty_alread_in_cart was changed to isa_wc_max_qty_get_cart_qty
    isa_max_item_quantity_validation was changed to isa_wc_max_qty_add_to_cart_validation
    add_isa_max_quantity_options was changed to isa_wc_max_qty_options
    isa_woo_max_qty_load_textdomain was changed to isa_wc_max_qty_load_textdomain
    isa_woo_max_qty_update_cart_validation was changed to isa_wc_max_qty_update_cart_validation
    isa_woocommerce_quantity_input_args was changed to isa_wc_max_qty_input_args
  • Code refactoring – One function was removed: isa_woocommerce_available_variation, which was hooked to woocommerce_available_variation, was removed.

1.3

  • New – Added compatibility with the WooCommerce Direct Checkout plugin

1.2.4

  • Fix – The setting had disappeared on last WC update.

1.2.3

  • New – Added Dutch translation, thanks to Martijn Heesters.

1.2.2

  • New – Added German translation, thanks @tofuSCHNITZEL.

1.2.1

  • Fix – Did not calculate quantity properly if you UPDATE Quantity on Cart page. This did not let some users DECREASE or INCREASE the quantity while on the cart page.
  • Maintenance – Tested and passed for WordPress 4.0 compatibility.

1.2.0

  • New – Added .pot translation file.
  • New – Added translations for French, Hindi, and Spanish languages.
  • New – Changed textdomain to plugin slug.
  • Maintenance – Tested and passed for WP 3.9 compatibility.

1.1.9

  • Fix: added _update_cart_validation to avoid manual override on cart update at checkout.
  • Tweak: remove passed=true in validation checks, use the passed parameter instead.
  • Maintenance: replace woocommerce – add_error with wc_add_notice.

1.1.8

  • Fix: now checks for manually-typed quantity because maximum limit was able to be overridden by typing in a number.
  • Fix: a problem in which limit was ignored if product was previously added to cart, then added another item to cart, then re-added this item to cart.
  • Maintenance: Updated description to reflect that this plugin does not yet support products with variations.

1.1.6

  • Fix: maximum limit was able to be overridden by adding a new instance of the item to cart.
  • Fix: maximum limit was able to be overridden by updating quantity on cart page.

1.1.5

  • Tested for WP 3.8 compatibility.

1.1.4

  • Tested for WP 3.7.1 compatibility.

1.1.3

  • bug fix related to syncing with Git.

1.1.2

  • bug fix related to syncing with Git.

1.1.1

  • bugfix related to syncing with Git.

1.1

  • Tested for WP 3.6.1 compatibility

1.0

  • Initial release.