How to set minimum order value and minimum quantity rules for B2B customers in Shopify?

Hi everyone,

I’m setting up a Shopify store that serves both B2C and B2B customers, and I need to apply specific purchase rules only for B2B customers.

Here are the requirements for B2B orders:

  • First order: minimum order value of €500

  • Following orders: minimum order value of €300

  • Product-level rule: minimum 3 pieces per SKU on every B2B order

My questions are:

  1. Is it possible to set different minimum order values for first-time vs returning B2B customers?

  2. Can Shopify enforce a minimum quantity per SKU only for B2B customers?

  3. What is the best approach to implement this?

    • Shopify native features (B2B on Shopify / customer tags / functions)?

    • Shopify Functions?

    • Apps?

    • Custom code?

If anyone has experience implementing similar B2B rules or can recommend a clean and scalable solution, I’d really appreciate your advice.

Thanks in advance!

Based on your requirements, the best way is to use the shopify app. There are multiple shopify apps that you can use for to setup the min order Quantity.

Some of the apps that listed below.

You can use any app that suits you best.

If you’re using Shopify Functions:

  • Use a Cart/Checkout Validation Function
  • Query Input.cart.buyerIdentity.customer.numberOfOrders (new customers have 0 orders so far)
  • Query Input.cart.buyerIdentity.purchasingCompany to ensure it’s a B2B customer
  • Determine order minimums based on number of orders and reject if the minimums are not met.

That should be enough context to vibe code a simple custom app. :wink:

Best,

Tobe

Hi @FitmiEcom ,

This is doable, but I’d split it into two parts.

For the 3 pieces per SKU rule, Shopify B2B catalog quantity rules may already cover that if you’re using native B2B company accounts and catalogs.

The first-order vs returning-order minimum is the harder part. For that, you’d need some way to identify whether the B2B customer has ordered before. A common approach is to use Shopify Flow to tag the customer after their first order, then apply different minimum order values based on whether they have that “returning B2B” tag.

So the clean setup would probably be:

  • B2B catalog quantity rules for the 3-piece SKU minimum
  • Flow to tag B2B customers after their first order
  • A checkout/order validation rule to enforce the €500 first-order minimum and €300 returning-order minimum

One thing I’d confirm first: are your B2B customers using Shopify’s native B2B company accounts, or are they regular customer accounts with a wholesale/B2B tag? That affects the cleanest setup.

Hi @FitmiEcom,

A few separate pieces here.

Per-SKU minimums for B2B customers: if you’re on Plus with native B2B, catalogs already do this. Quantity rules on a catalog set min, max, and increments per variant, and they only apply to the companies assigned to that catalog. Cleanest version, needs no app.

Minimum order value that differs for first-time vs returning buyers: no native setting for this anywhere, including Plus. Order-value rules need checkout validation (a Cart and Checkout Validation Function), and the first-vs-returning part is the tricky bit. The usual pattern is customer tags: Flow tags a company after their first paid order, and your validation keys off the tag. So you’d want custom Function code, or an app whose rules can be scoped by customer tag.

On build vs app: custom code gives you exactly your logic but you own the deploy and upkeep. Apps are faster, but check the specific scoping you need (customer tag or company) is supported before subscribing. A lot of order-minimum apps only do storewide rules.

For your setup I’d start with native catalogs for the per-SKU minimums (that part’s free), and only reach for validation once you’ve pinned down the exact first-vs-returning logic you want.

Splitting this into the two halves helps, because Shopify treats them very differently. The flat parts (a minimum order value and a 3-per-SKU minimum on every B2B order) can be enforced properly at checkout with Shopify’s checkout validation layer. Native quantity rules on Plus B2B catalogs cover some of it; on other plans it takes an app that uses checkout validation. Full disclosure, I build one of those apps (Mastiff: Order Limits and MOQ), and flat minimums scoped to your B2B customers are exactly what it does.

The tiered part (EUR 500 on the first order, EUR 300 after) is the hard half: that needs the buyer’s order history, which checkout validation alone does not see. The usual pattern is a customer tag flipped after the first order (Shopify Flow can do the tagging automatically) and two rules keyed off the tag.

Happy to sketch that setup in more detail if useful.

Hey — there are actually two different rules bundled into your question, and Shopify enforces them in different places, so I’ll split it up.

1. First, separate B2B from B2C
Shopify needs to know which customers are B2B so the rules only hit them:

  • Shopify Plus / B2B: use native B2B — Companies + Company locations with dedicated catalogs. Rules attach to the catalog, so B2C shoppers never see them.
  • Any other plan: use customer tags (e.g. b2b / wholesale). Tag the wholesale accounts and make every rule conditional on that tag.

2. Minimum quantity per SKU (your “3 units per SKU”)

  • On Plus/B2B this is built in: each product in a B2B catalog has Quantity rules — set the minimum to 3 (you can also set an increment and a max). Shopify enforces it in the cart automatically.
  • On other plans there’s no native per-line minimum. The reliable way is a Cart & Checkout Validation function (Shopify Functions) that loops the cart lines and blocks checkout if any B2B line is below qty 3. Avoid theme/cart-page JavaScript “minimum” tricks — buyers can jump straight to /checkout and skip them, so enforce it in checkout, not the theme.

3. Minimum order value (€500 first order / €300 repeat)
This is a cart-total rule, and the first-vs-repeat part is the interesting bit:

  • Use a Cart & Checkout Validation function to block checkout when the subtotal is under the threshold. These functions can read the buyer’s identity and customer tags, so you scope it to B2B only.
  • For the €500-then-€300 logic, drive it off a tag. Set up Shopify Flow (or any automation app) with a trigger on order created → add a tag like has-ordered to that customer. Your validation function then reads: no has-ordered tag → require €500; has it → require €300. That gives you the higher bar on the first order without hardcoding anything per customer.

If you’d rather not build a function, search the App Store for “order minimum” / “minimum purchase” apps — several handle min order value + min quantity with tag-based conditions out of the box. Just confirm the app enforces at checkout (not only on the cart page), otherwise the minimum can be bypassed.

Quick recap of the stack:

  • B2B vs B2C → native B2B catalogs (Plus) or customer tags
  • Min 3 units/SKU → B2B Quantity rules (Plus) or a validation function
  • Min order value w/ first-vs-repeat → validation function + a Flow tag on first order

Happy to sketch out the validation-function logic if you go the Functions route — it’s only ~40 lines and the same shape handles both the subtotal and the per-line minimum.

Hey @FitmiEcom

hope you’re doing well!

This is possible but you’ll likely need Shopify plus with Shopify functions to enforce different minimum order values for first-time vs. returning B2B customers and minimum quantities per SKU. If you’re not on plus a B2B rules app or custom apps would be the best approach