PluginGauge

How to set a minimum order quantity in WooCommerce

By Raz Technologies · published · data updated

How do I set a minimum order quantity in WooCommerce?

Use a wholesale pricing plugin with minimum quantity rules (6 of the 16 we track document one, 3 in the free version) or add three WooCommerce hooks (below) that set the minimum and block checkout below it. As of 2 November 2026, the top-ranked plugin in our wholesale pricing ranking is Tiered Pricing Table for WooCommerce (83.2/100). See our wholesale pricing plugin ranking for the full comparison.

The problem

Wholesale and trade stores often sell only in cases or above a minimum number of units, while retail customers can buy one. WooCommerce has no minimum quantity setting, so the rule needs a plugin or custom code.

Option 1: a plugin (no code)

These ranked wholesale-pricing plugins document a minimum order quantity per product or per role. The column shows whether it is in the free or the paid version (evidence: Documented, from each plugin's readme or listing).

Plugins documenting a minimum order quantity — from our wholesale pricing and roles ranking, 2 Nov 2026
PluginRankFeature inCheckout BlocksInstalls
Tiered Pricing Table#1Free versionYes10,000+
WooCommerce B2B#4Paid versionNot declaredNo data
Role Based Pricing for Woo by Meow Crew#5Paid versionYes2,000+
Whols#6Free versionNot declared3,000+
Role Based Pricing#12Not statedNot declared100+
Wholesale & Tiered Pricing#13Free versionNot declared100+

Option 2: three hooks (for developers)

This sets a minimum of 10 units per product line for customers with the wholesale_customer role and 1 for everyone else. Add it to a small custom plugin or your child theme's functions.php, and change the role and number to yours.

function my_store_min_qty() {
    $roles = (array) wp_get_current_user()->roles;
    return in_array( 'wholesale_customer', $roles, true ) ? 10 : 1;
}

// Product page quantity box
add_filter( 'woocommerce_quantity_input_args', function ( $args, $product ) {
    $args['min_value'] = max( (int) ( $args['min_value'] ?? 1 ), my_store_min_qty() );
    if ( ! is_cart() ) {
        $args['input_value'] = max( (int) ( $args['input_value'] ?? 1 ), $args['min_value'] );
    }
    return $args;
}, 10, 2 );

// Block cart quantity selector (Store API)
add_filter( 'woocommerce_store_api_product_quantity_minimum', function ( $min, $product, $cart_item ) {
    return max( (int) $min, my_store_min_qty() );
}, 10, 3 );

// Stop checkout if a line is below the minimum
add_action( 'woocommerce_check_cart_items', function () {
    $min = my_store_min_qty();
    foreach ( WC()->cart->get_cart() as $item ) {
        if ( $item['quantity'] < $min ) {
            wc_add_notice( sprintf( __( '%1$s: the minimum order quantity is %2$d.', 'my-store' ),
                $item['data']->get_name(), $min ), 'error' );
        }
    }
} );

Then test as a guest and as a wholesale customer: the product page, the cart (classic or block) and the checkout.

What to check before you choose

Other plugins people ask about

FAQ

Does WooCommerce have a minimum order quantity setting?

No. WooCommerce core only offers "Sold individually" (a maximum of one). A minimum quantity per product or per customer role needs a plugin or a few lines of code.

Can I set a minimum order value instead of a quantity?

Yes, but fewer plugins document it: 1 of the 16 wholesale-pricing plugins we track document a minimum order value, against 6 for a minimum quantity (as of 8 November 2026).

Will a minimum quantity work with the block cart and checkout?

Test it. The block cart has its own quantity selector, so code needs the Store API filter shown above, and plugins need to support the blocks: 5 of the 16 wholesale-pricing plugins we track declare Cart & Checkout Blocks compatibility (as of 8 November 2026).