Built for margin
Set a minimum order value
Prime MOQ sets a floor or a ceiling on cart value, for the whole cart or only for tagged wholesale customers. A Shopify Function checks the total at checkout, and the storefront explains the shortfall in your own words before anyone gets that far.
A B2B food supplier ran the numbers: after picking, packing, shipping and payment fees, any order under $100 loses money.
They cannot raise prices without losing the accounts that matter, and refusing an order by hand costs an email, a refund and an apology: more expensive than the order itself.
One rule solves it. The cart must reach $100, and the storefront explains why in the merchant's own words before anyone reaches checkout.
The rule
Cart minimum $100
- Limit type
- Order value
- Scope
- Entire cart
- Minimum
- $100.00
- Message
- Wholesale orders start at $100
- Contact us button
- On
In the app this is the Enforce a wholesale minimumquick-start template, already filled in.

Wholesale Green Tea 50g
$12.50 - per unit, 0.5 lb
$50.00 in cart
For bulk orders, please click Contact us
Live demo - this is exactly what your customers see.
- Included
Unprofitable orders stop before they cost you a pick and a pack.
- Included
Scope the floor to tagged wholesale customers so retail is untouched.
- Included
Blocked bulk requests become leads through the Contact us button.
Merchant profile
A B2B food supplier selling dry goods and ambient stock to restaurants, delis and small caterers. The same catalogue serves a twenty-cover bistro and a regional chain, at the same prices, with the same picking process behind it.
Fulfilment cost barely moves with order size. A small order and a large one both need a picker, a packer, a box and a courier collection, which is the fact the pricing has to answer to.
The challenge
Below a certain cart value an order costs more to fulfil than it earns. The work is identical to a large order and the revenue is not.
Refusing those orders by hand is worse than accepting them. It takes an email, a refund and an apology, which together cost more staff time than the order was ever going to make.
What they needed
- Stop unprofitable carts before they reach the warehouse, not after the pick list prints.
- Leave retail and sample buyers untouched, because the threshold is a wholesale problem rather than a catalogue-wide one.
- Turn a refused cart into a conversation rather than a dead end, since a buyer who cannot reach the floor today may be worth an account tomorrow.
Why it costs money
The costs that decide this are fixed per order, not per unit: picking labour, packaging, the courier collection and the payment processing fee. They are the same whether the box holds four items or forty.
That is why a floor is the honest instrument. Raising prices punishes the large accounts that are already profitable, while a floor touches only the orders that were losing money in the first place.
Approaches that fail
Raising prices across the board to cover the small orders
It makes the profitable accounts subsidise the unprofitable ones, and those accounts are the ones most likely to compare prices and leave. The small orders stay, because they were never price-sensitive.
Adding a small-order surcharge at checkout
A surcharge is discovered late, reads as a penalty, and still leaves you fulfilling an order you did not want. It recovers some cost and spends goodwill to do it.
Cancelling small orders manually after they arrive
Every cancellation is an email, a refund and an apology. Done regularly it costs more staff time than the orders were worth, and each one teaches a customer that your site accepts orders you will not honour.
Weighing the options
| Approach | Protects margin | Leaves retail alone | Keeps the lead |
|---|---|---|---|
| Higher prices for everyone | Partly, at the cost of big accounts | No, it changes every price | Not applicable |
| A small-order surcharge | Partly, you still fulfil it | Only with careful scoping | No, it reads as a penalty |
| A cart value floor on tagged accounts | Yes, the order never starts | Yes, scoped by customer tag | Yes, via the contact route |
The rule they chose
A minimum cart value scoped to tagged wholesale customers, checked against the total the customer actually pays. Checking the paid total rather than the pre-discount total is deliberate: the cost of picking and shipping does not fall because a code was applied.
The threshold is paired with a Contact us route, so a buyer who genuinely needs a smaller delivery sends an enquiry instead of abandoning. That turns the rule from a wall into a filter.
What the buyer sees
The shortfall is explained in the storefront before checkout, in the merchant's own words, so the buyer learns the threshold while they can still add to the cart rather than at the last step.
Above the floor nothing appears at all. A rule that only speaks when it has something to say is a rule a regular buyer stops noticing.
What could go wrong
- RiskA retail or sample buyer is blocked by a wholesale threshold
- MitigationScope the floor to a customer tag rather than the whole store, so only the accounts the threshold was written for ever meet it.
- RiskA discount pushes a genuine order below the floor
- MitigationDecide deliberately which total the rule reads, and if promotions are common, set the floor with that in mind rather than discovering the interaction in production.
- RiskA good lead abandons instead of asking
- MitigationEnable the Contact us button on the message, so the refusal has a next step attached rather than ending the visit.
What to take away
- 1
Fixed per-order costs are what make small orders unprofitable, so the fix belongs at order level rather than in the price list.
- 2
Scope the floor to the customers it was written for, or it will block the retail traffic that was never the problem.
- 3
A threshold with a contact route keeps the lead; a threshold without one converts a customer into a bounce.
Questions
Questions merchants ask
- How do I set a minimum order value on Shopify?
- Create an order value rule with a floor, and choose whether it covers the whole cart or only customers carrying a particular tag. A Shopify Function compares the cart total against that floor at checkout, and the storefront explains the shortfall before the buyer gets that far.
- Can I apply a minimum only to wholesale customers?
- Yes. Scope the rule to a customer tag, so tagged wholesale accounts face the floor while retail shoppers are untouched. That is usually the point: the same catalogue serves two kinds of buyer, and only one of them is unprofitable below a threshold.
- Is the minimum checked before or after discounts?
- Against the cart total the customer is actually paying, so a discount that drops the cart under the floor will fail the rule. That is the honest reading of a profitability floor: the cost of picking and shipping does not fall because a coupon was applied.
- What happens to a customer who cannot reach the minimum?
- They see your message explaining the threshold, and optionally a Contact us button. That button is what turns a refusal into a lead: a buyer who genuinely needs a smaller order sends an enquiry instead of abandoning, and you decide case by case.
- Can I set a maximum cart value as well?
- Yes. The same rule type carries a ceiling, which is useful when large orders need a quote, a freight booking or a credit check rather than a card payment. Above the ceiling the cart is held and the buyer is pointed at your enquiry route.
More case studies
Five other stores, five other rules
Every quick-start template in the app has a story behind it. Here are the rest.
Minimum order quantity
A beverage wholesaler stops buyers breaking a case of 6.
Maximum order quantity
A parts retailer stops one order clearing the shelf.
Sell in pack multiples
A candle maker makes the box and the order the same thing.
Weight limits
A tile store keeps carts inside what the carrier will take.
Limit quantity per customer
A collectibles brand stops resellers coming back for more.