How to Set a Minimum Order Amount in WooCommerce

Small orders can quietly drain your profit. After shipping, packaging, and payment fees, a $6 order can leave you with nothing. This matters because nearly 48% of shoppers abandon their cart when extra costs feel too high. A smart WooCommerce minimum order amount helps you cover your costs and nudge buyers to add more, without scaring them off.

This guide shows you different ways to set a minimum order amount in WooCommerce. You will also learn the one mistake that makes minimums “not work” on modern WooCommerce checkouts.

What Is a Minimum Order Amount?

What Is a Minimum Order Amount (1)

A minimum order amount is the smallest cart total a customer must reach before they can check out. If their cart is below that amount, WooCommerce shows a message and blocks checkout until they add more.

Example: You set a $50 minimum. A shopper has $35 in their cart. They see a notice like “Add $15 more to check out.” Once they hit $50, the block goes away.

Minimum Order Amount vs. Minimum Order Quantity

People mix these up. They are not the same.

Minimum Order Amount vs. Minimum Order Quantity (1)
TypeWhat it countsExample
Minimum order amountCart total in dollarsSpend at least $50
Minimum order quantityNumber of itemsBuy at least 6 units

This guide is about the amount (the dollar value). If you need a quantity rule instead, most quantity plugins handle both.

Good Read: Backorder vs Out of Stock: Key Differences Every eCommerce Owner Needs to Know

Does WooCommerce Have a Built-In Minimum Order Setting?

No. Core WooCommerce has no native option for this. You will need one of the methods below. This surprises many new store owners who search the settings and find nothing.

When Should You Set a Minimum Order Amount?

A minimum is not right for every store. It helps most in these cases:

  • You sell low-cost items. If products cost $5 to $15, a single order may not cover shipping and packaging.
  • You offer free shipping. Pair a minimum with a free shipping threshold so the rule feels like a reward.
  • You run a wholesale or B2B store. Bulk buyers expect minimums, often $100 or more.
  • Payment fees eat your margin. A flat processing fee on a tiny order can take a big cut of your profit.

If your prices are already high, you may not need one at all. Check your average order value in WooCommerce > Reports first.

Method 1: Use a Plugin (Easiest, No Code)

This is the best choice for most store owners. Plugins let you set rules with no code and add options like category or user-role minimums.

Popular options include the official Minimum Order Amount for WooCommerce extension, Order Minimum/Maximum Amount for WooCommerce (free on WordPress.org), and quantity plugins like WooCommerce Min/Max Quantities.

Here is the general setup. Steps look similar across most plugins.

Install & activate plugin (1)

Go to Plugins > Add New in your WordPress dashboard. Search for your chosen minimum order plugin Order Minimum/Maximum Amount for WooCommerce.

Click Install Now, then Activate. (For paid extensions, upload the .zip under Plugins > Add New > Upload Plugin.) 

Go to WPFactory > Order Minimum/Maximum Amount Limits for WooCommerce.

General settings of plugin

In the General tab, tick the box to enable the plugin. Set Amount Limits to Min (or Min and Max if you also want a cap). Set Amount Types to Sum. This checks the cart value, not the item count.

Under Checkout Options, turn on Block so customers cannot check out below the minimum.

Amount Settings

Open the Amounts tab. Enter your minimum in the Min field, such as 50. Leave Max at 0 to ignore it.

Open the Messages tab. Edit the notice customers see, and pick where it shows (before cart, checkout, and so on).

Click Save, then test with a low cart.

Optional rules: use the User Roles tab for wholesale minimums, the Product tab for per-product or per-category limits, and the Shipping or Payment Gateway tabs to tie a minimum to a method.

Why pick a plugin: it survives theme updates, works with block checkout, and lets you set different rules for different customers.

Method 2: Use Free Code (Two Versions You Need)

If you are comfortable with a little code, you can do this for free. But there is a trap. WooCommerce now has two kinds of checkout:

  • Classic (shortcode) checkout – the older style.
  • Block checkout – the default since WooCommerce 8.3, built with blocks.

The old code snippet you find in most tutorials only works on classic checkout. On a block checkout, it does nothing. This is the number one reason people say their minimum order “doesn’t work.”

To be safe, add the block version too, or use both.

Safety tip: Never paste code into your parent theme’s functions.php. A theme update will erase it. Use a child theme or a free plugin like Code Snippets instead.

Code for Classic Checkout

This shows an error on the cart and checkout pages when the total is too low. Change 50 to your minimum.

php

add_action( ‘woocommerce_checkout_process’, ‘wc_minimum_order_amount’ );

add_action( ‘woocommerce_before_cart’, ‘wc_minimum_order_amount’ );

function wc_minimum_order_amount() {

    $minimum = 50; // Set your minimum here

    if ( WC()->cart->get_subtotal() < $minimum ) {

        if ( is_cart() ) {

            wc_print_notice(

                sprintf(

                    ‘You need a minimum of %s to check out. Your current total is %s.’,

                    wc_price( $minimum ),

                    wc_price( WC()->cart->get_subtotal() )

                ),

                ‘error’

            );

        } else {

            wc_add_notice(

                sprintf(

                    ‘You need a minimum of %s to check out. Your current total is %s.’,

                    wc_price( $minimum ),

                    wc_price( WC()->cart->get_subtotal() )

                ),

                ‘error’

            );

        }

    }

}

Code for Block Checkout

This uses the woocommerce_store_api_cart_errors hook. It works with the newer block-based cart and checkout. Change 50 to your minimum.

php

add_action( ‘woocommerce_store_api_cart_errors’, ‘block_minimum_order_amount’, 10, 2 );

function block_minimum_order_amount( $errors, $cart = null ) {

    $minimum = 50; // Set your minimum here

    if ( $cart && is_object( $cart ) && method_exists( $cart, ‘get_subtotal’ ) ) {

        if ( $cart->get_subtotal() < $minimum ) {

            $errors->add(

                ‘minimum_order_amount’,

                sprintf(

                    ‘You need a minimum of %s to check out.’,

                    wc_price( $minimum )

                )

            );

        }

    }

}

Not sure which checkout you use? Open your Cart page in the editor. If you see WooCommerce blocks, you are on block checkout. Adding both snippets covers you either way.

Good Read: How to Customize the WooCommerce Cart Page

Common Problems and Fixes

The minimum does nothing on checkout. You are likely on block checkout with only the classic code. Add the block snippet from Method 2, or switch to a plugin.

The old total still shows. Caching. Clear your site and browser cache. Go to WooCommerce > Status > Tools and clear transients.

The message shows but checkout still goes through. Your snippet may be printing a notice without blocking. Use a tested plugin, or make sure your error is added with the ‘error’ type on the correct hook.

It blocks the wrong customers. Check for overlapping rules. If you set both a store-wide and a role-based minimum, the most specific rule usually wins.

Best Practices (So You Don’t Lose Sales)

Setting the number too high is the fastest way to grow abandoned carts. Keep these in mind:

  • Do not set it far above your average order value. Check your AOV first. Set the minimum near or just above the point where shipping is covered.
  • Tell customers early. Show the minimum on product pages, the cart, or a notice bar. A surprise block at checkout feels like a wall.
  • Frame it as a reward. “Spend $15 more for free shipping” beats “You can’t check out.” Same rule, better feeling. Roughly 60% of shoppers say they won’t buy without free shipping (Shopify data), so tie the two together.
  • Show the exact gap. “Add $8 to continue” works better than a vague error.
  • Start low, raise later. Watch your checkout completion rate. Nudge the number up only if the data supports it.

Frequently Asked Questions (FAQs)

Does WooCommerce have a minimum order amount by default? 

No. You must add it with a plugin or a code snippet. Core WooCommerce has no built-in setting.

Can I set a minimum for one product or category only? 

Yes, but not with the basic code snippet. Use a plugin that supports category or product rules. Order Minimum/Maximum Amount Limits for WooCommerce handles this in its Product tab.

Why is my minimum order amount not working? 

The most common reason is block checkout. Old code snippets only work on classic checkout. Add the block-compatible snippet or use a plugin.

Should the minimum be based on the subtotal or the total? 

Most stores use the subtotal (the price of items before shipping and tax). This keeps the rule fair and easy for customers to understand.

What is a good minimum order amount? 

There is no single number. Set it near the point where an order covers your shipping and handling. Keep it close to your average order value so most carts can reach it.

Can I set both a minimum and a maximum? 

Yes. Many plugins support a maximum too. A maximum can help you cap very large orders you cannot fulfill quickly.

Final Takeaway

A minimum order amount protects your margins and lifts your average order value when you set it with care. Start with a plugin if you want the fastest, safest path. Use the block-compatible code if you prefer free and hands-on. Whatever you choose, keep the number reasonable, tell customers early, and test before launch.

Next step: open WooCommerce > Reports, find your average order value, and pick a minimum you know most carts can reach.

author
I'm a technical content writer with a passion for simplifying complex ideas into clear, engaging content for web, email, and social media. With experience in SEO, CRM tools, and digital strategy, I've worked with RTOs, education consultancies, and global campaigns. I enjoy creating high-performing content, leading creative teams, and diving into performance analytics. Outside of work, you'll find me reading, doing photography, or hunting for the next great café spot.