{"id":3039,"date":"2025-12-27T21:03:39","date_gmt":"2025-12-27T21:03:39","guid":{"rendered":"https:\/\/www.swiftcommerce.io\/help\/?post_type=docs&#038;p=3039"},"modified":"2026-11-07T11:44:18","modified_gmt":"2026-11-07T11:44:18","password":"","slug":"quantity-limits","status":"publish","type":"docs","link":"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/","title":{"rendered":"Quantity Limits"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The Quantity Limits feature allows you to control how many products customers can purchase from your WooCommerce store. Set minimum and maximum quantity rules at the product level, order level, or category level to manage inventory, enforce wholesale minimums, or control purchasing behavior.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Key Capabilities<\/h3>\n\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Product-Level Limits<\/strong>: Set min\/max quantities for individual products<\/li>\n\n\n\n<li><strong>Variation-Level Limits<\/strong>: Apply different rules to specific product variations<\/li>\n\n\n\n<li><strong>Order-Level Rules<\/strong>: Enforce minimum\/maximum items per order or order totals<\/li>\n\n\n\n<li><strong>Category-Level Rules<\/strong>&nbsp;(Pro): Apply quantity rules to entire product categories<\/li>\n\n\n\n<li><strong>Step Quantities<\/strong>: Require products to be purchased in specific multiples (e.g., packs of 6)<\/li>\n\n\n\n<li><strong>Validation Controls<\/strong>: Block checkout if rules aren&#8217;t met<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Getting Started<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Enabling Quantity Limits<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<strong>Swift Commerce \u2192 Products \u2192 Quantity Limits<\/strong>&nbsp;in your WordPress admin<\/li>\n\n\n\n<li>Turn on the feature with its header switch if it is disabled<\/li>\n\n\n\n<li>Configure your global settings, then set rules on individual products<\/li>\n\n\n\n<li>Click&nbsp;<strong>Save Changes<\/strong>&nbsp;to apply changes<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Setting Quantity Limits on Products<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The most common use of this feature is setting quantity rules directly on products. Here&#8217;s how to do it:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Edit a Product<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to&nbsp;<strong>Products \u2192 All Products<\/strong>&nbsp;in your WordPress admin<\/li>\n\n\n\n<li>Click on the product you want to configure<\/li>\n\n\n\n<li>In the Product Data section, click the&nbsp;<strong>Quantity Limits<\/strong>&nbsp;tab<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Configure Product Rules<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Field<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Minimum Quantity<\/strong><\/td><td>The minimum number of items required to add this product to cart. Leave empty for no minimum.<\/td><\/tr><tr><td><strong>Maximum Quantity<\/strong><\/td><td>The maximum number of items allowed per order. Leave empty for no maximum.<\/td><\/tr><tr><td><strong>Quantity Step<\/strong><\/td><td>Products must be purchased in multiples of this number. For example, set to 6 for six-packs.<\/td><\/tr><tr><td><strong>Exclude from Order Rules<\/strong><\/td><td>Check this to exclude the product from global order quantity\/total rules.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Save the Product<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Click&nbsp;<strong>Update<\/strong>&nbsp;to save your quantity limit settings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Examples<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Scenario<\/th><th>Minimum<\/th><th>Maximum<\/th><th>Step<\/th><\/tr><\/thead><tbody><tr><td>Wholesale minimum order<\/td><td>12<\/td><td>\u2014<\/td><td>\u2014<\/td><\/tr><tr><td>Limited edition (max 2 per customer)<\/td><td>\u2014<\/td><td>2<\/td><td>\u2014<\/td><\/tr><tr><td>Six-packs only<\/td><td>6<\/td><td>\u2014<\/td><td>6<\/td><\/tr><tr><td>Wholesale with case quantities<\/td><td>24<\/td><td>\u2014<\/td><td>12<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Variable Product Support<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quantity limits work seamlessly with variable products. You can set rules at both the parent product level and for individual variations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Parent Product Rules<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Rules set on the parent variable product apply to&nbsp;<strong>all variations<\/strong>&nbsp;unless overridden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Variation-Level Rules<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">To set different limits for specific variations:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to the&nbsp;<strong>Variations<\/strong>&nbsp;tab in the product data<\/li>\n\n\n\n<li>Expand the variation you want to configure<\/li>\n\n\n\n<li>Look for the&nbsp;<strong>Quantity Limits<\/strong>&nbsp;fields below the pricing section<\/li>\n\n\n\n<li>Enter values for&nbsp;<strong>Min Qty<\/strong>,&nbsp;<strong>Max Qty<\/strong>, and&nbsp;<strong>Step (Multiples)<\/strong><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Field<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Min Qty<\/strong><\/td><td>Minimum quantity for this specific variation<\/td><\/tr><tr><td><strong>Max Qty<\/strong><\/td><td>Maximum quantity for this specific variation<\/td><\/tr><tr><td><strong>Step (Multiples)<\/strong><\/td><td>Multiples required for this variation<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note:<\/strong>&nbsp;If a variation field is left empty, it will inherit the parent product&#8217;s rules.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">General Tab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Configure global display and validation options.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Display Options<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td><strong>Show Product Notices<\/strong><\/td><td>Display quantity limit information on product pages<\/td><td>On<\/td><\/tr><tr><td><strong>Notice Style<\/strong><\/td><td>Visual style for notices: Info (Blue), Warning (Yellow), Success (Green), or Neutral (Gray)<\/td><td>Info<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">When enabled, customers will see helpful notices like &#8220;Minimum order quantity: 6&#8221; on product pages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Validation Options<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><th>Default<\/th><\/tr><\/thead><tbody><tr><td><strong>Block Checkout on Violation<\/strong><\/td><td>Prevent customers from completing checkout if quantity rules are not met<\/td><td>On<\/td><\/tr><tr><td><strong>Combine Variation Quantities<\/strong><\/td><td>Count all variations of a product together for maximum quantity limits<\/td><td>Off<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Combine Variation Quantities Example:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Product has a max limit of 5<\/li>\n\n\n\n<li>Customer adds 3x Blue and 3x Red variations<\/li>\n\n\n\n<li>With setting OFF: Each variation is checked independently (both pass)<\/li>\n\n\n\n<li>With setting ON: Total is 6, which exceeds the max of 5 (blocked)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Products Tab<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This tab provides quick access to manage product-level quantity limits.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Quick Links<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Link<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>View All Products<\/strong><\/td><td>Opens the Products list where you can edit any product<\/td><\/tr><tr><td><strong>Add New Product<\/strong><\/td><td>Create a new product with quantity limits<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Available Product Options<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Option<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Minimum Quantity<\/strong><\/td><td>Per-product minimum requirement<\/td><\/tr><tr><td><strong>Maximum Quantity<\/strong><\/td><td>Per-product maximum limit<\/td><\/tr><tr><td><strong>Quantity Step<\/strong><\/td><td>Per-product multiple requirement<\/td><\/tr><tr><td><strong>Exclude from Order Rules<\/strong><\/td><td>Per-product order rules exclusion<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Cart tab (Pro)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Set global rules that apply to entire orders, regardless of individual product settings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cart Quantity Restrictions<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Minimum Items per Order<\/strong><\/td><td>The minimum total number of items required to checkout<\/td><\/tr><tr><td><strong>Maximum Items per Order<\/strong><\/td><td>The maximum total number of items allowed per order<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Minimum of 5 items = Customers must have at least 5 products in their cart<\/li>\n\n\n\n<li>Maximum of 50 items = Limit bulk orders to 50 products<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Cart Spend Restrictions<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Setting<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Minimum Order Total<\/strong><\/td><td>The minimum cart value required to checkout (in your store currency)<\/td><\/tr><tr><td><strong>Maximum Order Total<\/strong><\/td><td>The maximum cart value allowed per order<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Examples:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Minimum $50 = Enforce a minimum spend before checkout<\/li>\n\n\n\n<li>Maximum $10,000 = Limit high-value orders for fraud protection<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Excluded Products<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Some products shouldn&#8217;t count toward order rules. Use the search field to find and exclude products:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Type a product name in the search field<\/li>\n\n\n\n<li>Click a product from the dropdown to add it to the exclusion list<\/li>\n\n\n\n<li>Excluded products appear as badges below the search<\/li>\n\n\n\n<li>Click the X on any badge to remove the exclusion<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Use Cases:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Exclude gift cards from minimum order totals<\/li>\n\n\n\n<li>Exclude shipping insurance from item counts<\/li>\n\n\n\n<li>Exclude free samples from quantity rules<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Categories tab (Pro)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Apply quantity limits to entire product categories. Products inherit these rules unless they have their own settings.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Setting Category Rules<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Category Rules tab displays a table of all your product categories:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Column<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Category<\/strong><\/td><td>The category name<\/td><\/tr><tr><td><strong>Products<\/strong><\/td><td>Number of products in this category<\/td><\/tr><tr><td><strong>Min Qty<\/strong><\/td><td>Minimum quantity for products in this category<\/td><\/tr><tr><td><strong>Max Qty<\/strong><\/td><td>Maximum quantity for products in this category<\/td><\/tr><tr><td><strong>Step<\/strong><\/td><td>Multiples required for products in this category<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">To set a rule:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Find the category in the table<\/li>\n\n\n\n<li>Enter values in the Min Qty, Max Qty, or Step fields<\/li>\n\n\n\n<li>Rules save automatically when you leave the field<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Rule Priority<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When multiple rules might apply, this is the order of precedence:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Variation-Level Rules<\/strong>&nbsp;(highest priority)<\/li>\n\n\n\n<li><strong>Product-Level Rules<\/strong><\/li>\n\n\n\n<li><strong>Category-Level Rules<\/strong>&nbsp;(Pro)<\/li>\n\n\n\n<li><strong>No Rule<\/strong>&nbsp;(lowest priority)<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Example:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Category &#8220;Beverages&#8221; has max_qty = 24<\/li>\n\n\n\n<li>Product &#8220;Premium Coffee&#8221; in that category has max_qty = 6<\/li>\n\n\n\n<li>Result: Premium Coffee uses max of 6 (product rule overrides category rule)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Messages Tab (Pro)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Customize the error messages shown to customers when quantity rules are violated.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Product Messages<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Message Type<\/th><th>Placeholder<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Minimum Quantity<\/strong><\/td><td>{min},&nbsp;{product}<\/td><td>Shown when quantity is below minimum<\/td><\/tr><tr><td><strong>Maximum Quantity<\/strong><\/td><td>{max},&nbsp;{product}<\/td><td>Shown when quantity exceeds maximum<\/td><\/tr><tr><td><strong>Step Quantity<\/strong><\/td><td>{step},&nbsp;{product}<\/td><td>Shown when quantity isn&#8217;t a valid multiple<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Order Messages<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Message Type<\/th><th>Placeholder<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Min Order Quantity<\/strong><\/td><td>{min}<\/td><td>Shown when cart has too few items<\/td><\/tr><tr><td><strong>Max Order Quantity<\/strong><\/td><td>{max}<\/td><td>Shown when cart has too many items<\/td><\/tr><tr><td><strong>Min Order Total<\/strong><\/td><td>{min}<\/td><td>Shown when cart value is too low<\/td><\/tr><tr><td><strong>Max Order Total<\/strong><\/td><td>{max}<\/td><td>Shown when cart value is too high<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Category Messages (Pro)<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Message Type<\/th><th>Placeholder<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><strong>Category Minimum<\/strong><\/td><td>{min},&nbsp;{category}<\/td><td>Shown when category quantity is below minimum<\/td><\/tr><tr><td><strong>Category Maximum<\/strong><\/td><td>{max},&nbsp;{category}<\/td><td>Shown when category quantity exceeds maximum<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Example Custom Messages<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Default Message<\/th><th>Custom Message<\/th><\/tr><\/thead><tbody><tr><td>&#8220;Minimum quantity for {product} is {min}.&#8221;<\/td><td>&#8220;Please order at least {min} units of {product} to continue.&#8221;<\/td><\/tr><tr><td>&#8220;A minimum of {min} items is required to checkout.&#8221;<\/td><td>&#8220;Your cart needs at least {min} items. Add more to proceed!&#8221;<\/td><\/tr><tr><td>&#8220;Minimum order total is {min}.&#8221;<\/td><td>&#8220;We require a ${min} minimum order. Add more items to checkout.&#8221;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Current dashboard map<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Use <strong>General<\/strong> for display and validation behavior, <strong>Products<\/strong> for product-level rules and links to edit products, <strong>Categories<\/strong> (Pro) for category rules, <strong>Cart<\/strong> (Pro) for whole-cart quantity and spend limits, and <strong>Messages<\/strong> for customer-facing validation copy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cart restrictions (Pro)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Minimum and maximum cart quantity use zero for no restriction. Cart Spend Restrictions can set minimum and maximum spend in the store currency; include shipping rates and related fees only if your policy requires it. <strong>Excluded Products<\/strong> are left out of cart quantity and spend calculations. Test mixed carts containing <\/p>\n\n\n\n\n\n<p class=\"wp-block-paragraph\">included and excluded products, and test checkout as well as the cart page.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rule test checklist<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Check a simple product below, at, and above its minimum and maximum.<\/li>\n\n\n\n<li>For variable products, compare parent-level rules with variation-level overrides and confirm which rule wins.<\/li>\n\n\n\n<li>Add products from multiple categories to the same cart and confirm category and cart-level restrictions do not produce contradictory guidance.<\/li>\n\n\n\n<li>Review storefront messages and order validation in the active WooCommerce checkout type.<\/li>\n<\/ul>\n<h2 id=\"product-defaults-pro\" class=\"wp-block-heading\">Product Defaults and additional product controls (Pro)<\/h2>\n<p class=\"wp-block-paragraph\">The additional controls below require licensed Pro. Enable Quantity Limits, edit a WooCommerce product and open <strong>Product data \u2192 Quantity Limits<\/strong>. Save with the product\u2019s normal <strong>Update<\/strong> or <strong>Publish<\/strong> button. Existing product minimum, maximum and step controls remain in Free.<\/p>\n<h3 class=\"wp-block-heading\">Choose a dropdown or quantity buttons<\/h3>\n<ol class=\"wp-block-list\"><li>In <strong>Quantity selector<\/strong>, choose Use dashboard default, Number input, Dropdown or Quantity buttons.<\/li><li>For Dropdown or Quantity buttons, set <strong>Quantity choices<\/strong> to generate from the range or use custom quantities. Enter custom choices such as <code>1, 3, 6, 12<\/code>.<\/li><li>Optionally set <strong>Control width (px)<\/strong> from 80\u2013320 and a <strong>Label suffix<\/strong>, such as items.<\/li><li>To change the inherited default, go to <strong>Swift Commerce \u2192 Quantity Limits \u2192 Product Defaults<\/strong>, configure the selector and click <strong>Save Changes<\/strong>. Only products using Use dashboard default inherit this change.<\/li><\/ol>\n<p class=\"wp-block-paragraph\">Generated choices need a finite maximum. Custom lists support up to 100 positive whole quantities and can work without a finite maximum; duplicates are removed and choices are sorted. Both sources are filtered through the current minimum, maximum, step and stock. An invalid range, a read-only quantity input or more than 100 valid choices falls back to the number input. This is not a purchase cap. Classic product forms are supported; Cart and Checkout Blocks retain native quantity controls.<\/p>\n<h3 class=\"wp-block-heading\">Set quantities for each role<\/h3>\n<p class=\"wp-block-paragraph\">Expand <strong>Role-specific quantities<\/strong>. Each WordPress role and Guest has its own row. Enter Minimum, Maximum or Step only where that role needs an override. Blank fields inherit the product\/variation or category rule. If a customer matches several roles, the highest specified minimum, lowest specified maximum and common step multiples apply. For example, steps of 2 and 3 require multiples of 6. Test the intended customer role after saving.<\/p>\n<h3 class=\"wp-block-heading\">Cap a customer\u2019s purchases over time<\/h3>\n<ol class=\"wp-block-list\"><li>Expand <strong>Customer purchase limit<\/strong>. Set <strong>Maximum units per customer<\/strong>; blank or zero disables it.<\/li><li>Choose Lifetime, Last 24 hours, Last 7 days, Last 30 days or Last 365 days. Rolling windows use order creation time; they are not calendar-day resets.<\/li><li>Save the product and test with a logged-in customer that has relevant order history.<\/li><\/ol>\n<p class=\"wp-block-paragraph\">The limit uses the customer account, not an IP address or a guest-entered email. Restricted products require sign-in. All variations of the same parent count together. Paid orders, On hold and Pending payment orders reserve units, along with current cart quantities. Cancelled, Failed and Refunded orders do not. Partial refunds restore only refunded item quantities; a money-only refund does not restore units. Pending orders reserve allowance until their status changes. The current order is excluded when validating its own payment.<\/p>\n<h3 class=\"wp-block-heading\">Set product-specific spend limits<\/h3>\n<p class=\"wp-block-paragraph\">In <strong>Product spend limits<\/strong>, enter a minimum and\/or maximum in the store\u2019s base currency. Blank or zero disables that bound. The check combines this product\u2019s discounted cart line totals and its variations, excluding tax, shipping and fees. It runs in the cart and at checkout after discounts; minimum spend does not prevent a shopper building the cart incrementally. With Swift Commerce Currency Switcher, the thresholds use the selected currency\u2019s exchange rate\u2014not fixed product prices, conversion fees or price-ending rounding.<\/p>\n<h3 class=\"wp-block-heading\">Exclude category rules separately<\/h3>\n<p class=\"wp-block-paragraph\"><strong>Exclude from category rules<\/strong> skips inherited category quantity rules and removes the product from category quantity totals. It does not disable the product\u2019s own quantity, role, customer-history or spend restrictions. <strong>Exclude from Order Rules<\/strong> separately controls global order quantity and spend restrictions. Set the two independently.<\/p>\n<h3 class=\"wp-block-heading\">Verify the additional rules<\/h3>\n<ul class=\"wp-block-list\"><li>Compare Guest, Customer and any custom role you configured. Check overlapping roles do not leave an impossible quantity range.<\/li><li>Switch product variations and confirm the selector, quantity range and stock remain consistent.<\/li><li>Test a prior purchase, a pending order and a quantity refund when using customer-history limits.<\/li><li>Test spend after coupons, then check your active classic or block checkout.<\/li><li>Confirm dashboard selector changes affect only products using dashboard defaults.<\/li><\/ul>\n\n\n<script type=\"application\/ld+json\" data-swift-commerce-documentation-schema=\"1\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/#article\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/\",\"headline\":\"Quantity Limits\",\"description\":\"Set WooCommerce product minimums, maximums and quantity steps. Configure Pro role rules, purchase limits, spend limits and quantity selectors.\",\"inLanguage\":\"en\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/#webpage\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Swift Commerce\",\"url\":\"https:\/\/swiftcommerce.io\/\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/#webpage\",\"url\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/\",\"name\":\"Quantity Limits\",\"description\":\"Set WooCommerce product minimums, maximums and quantity steps. Configure Pro role rules, purchase limits, spend limits and quantity selectors.\",\"inLanguage\":\"en\",\"breadcrumb\":{\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Documentation\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Products\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/docs-category\/products\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Quantity Limits\",\"item\":\"https:\/\/www.swiftcommerce.io\/help\/products\/quantity-limits\/\"}]}]}<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Set WooCommerce product minimums, maximums and quantity steps. Configure Pro role rules, purchase limits, spend limits and quantity selectors.<\/p>\n","protected":false},"author":101,"featured_media":0,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"doc_category":[72],"doc_tag":[],"class_list":["post-3039","docs","type-docs","status-publish","hentry","doc_category-products"],"year_month":"2026-11","word_count":1903,"total_views":"139","reactions":{"happy":"0","normal":"0","sad":"0"},"author_info":{"name":"Mansoor Ahmad","author_nicename":"helpadmin","author_url":"https:\/\/www.swiftcommerce.io\/help\/author\/helpadmin\/"},"doc_category_info":[{"term_name":"Products","term_url":"https:\/\/www.swiftcommerce.io\/help\/docs-category\/products\/"}],"doc_tag_info":[],"knowledge_base_info":[],"knowledge_base_slug":[],"_links":{"self":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/users\/101"}],"replies":[{"embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/comments?post=3039"}],"version-history":[{"count":12,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3039\/revisions"}],"predecessor-version":[{"id":3398,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/docs\/3039\/revisions\/3398"}],"wp:attachment":[{"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/media?parent=3039"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_category?post=3039"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www.swiftcommerce.io\/help\/wp-json\/wp\/v2\/doc_tag?post=3039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}