If you sell to both retail customers and wholesale buyers, you already know the problem. Shopify shows everyone the same price. You end up working around it: coupon codes that anyone can share, duplicate products with wholesale prices, or a completely separate Shopify store just for trade accounts. None of these scale particularly well.
This guide walks you through how customer group pricing actually works on Shopify, what your setup options are in 2026, and how to get from zero to a working multi-tier pricing system without a Shopify Plus subscription.
How Shopify handles pricing (and why groups are not built in)
Shopify's default model is one price per variant. There is no native concept of "this customer sees $40, that customer sees $28" at the product level unless you are on Shopify Plus and using their B2B features, which are designed for large enterprise catalogues and require significant setup.
For everyone else, the workaround options have traditionally been:
- Discount codes applied at checkout. Easy to set up, impossible to keep exclusive, and they do not show the discounted price on the product page.
- Duplicate products with a separate wholesale collection, hidden from the main nav. Works until your catalogue grows and you are maintaining two sets of listings.
- A separate Shopify store for wholesale. Doubles your subscription, splits your inventory management, and creates a completely separate checkout flow.
- Custom development using Shopify's storefront API and a custom price lookup. Expensive to build and fragile to maintain across theme updates.
None of these are the right answer. The right answer is customer group pricing at the checkout function level, which became genuinely practical when Shopify launched Shopify Functions in 2023.
What Shopify Functions changed
Shopify Functions let approved apps run logic inside Shopify's checkout and cart processes, not in a script tag on your storefront. That means pricing rules run server-side, apply before taxes and shipping are calculated, and cannot be tampered with by the buyer.
Apps built on Shopify Functions can show a customer their group price on the product page, carry that price through cart, and apply it natively in checkout without any workarounds. The price the customer sees is the price they pay. No coupon codes. No post-purchase adjustments.
This is the foundation that makes proper customer group pricing possible on any Shopify plan today.
Setting up customer groups: step by step
The setup process below uses Miko B2B Wholesale House, which is built on Shopify Functions and works on Basic, Shopify, Advanced, and Plus. The concepts apply to any similar app.
Step 1: Install the app and connect it to your store
Go to the Shopify App Store listing and install. The app will request permission to read your products, customers, and orders, and to write Shopify Functions into your checkout. Approve these permissions and you land in the Miko dashboard.
Step 2: Create your customer groups
In the Miko dashboard, go to Customer Groups and click Create Group. Give it a name that matches how you think about your buyers: Wholesale, Dealer, Trade, Distributor, VIP, whatever makes sense for your business. The group name becomes the customer tag you will apply in Shopify.
You can create as many groups as you need. There is no technical limit, though most merchants find three to five groups covers their segmentation requirements.
wholesale is easier to work with than Wholesale Tier A Accounts.
Step 3: Choose your pricing method
Each group can use one of two pricing approaches, and you can mix them across different groups.
Percentage discount applies a flat percentage off your retail price for every product in your catalogue. If your Wholesale group gets 25% off, every product they browse shows the discounted price. This is the simplest option and works well when your margins are consistent.
Percentage pricing is more flexible than it sounds. You can exclude specific collections or individual products from the discount, so items with thin margins or products you never discount (such as sale lines or limited releases) are protected. The percentage only applies to the products and collections you choose to include.
Per-product pricing lets you set a specific dollar price on each product or variant for a group independently, with no percentage logic involved at all. Your Dealer group might get $28 on Product A and $45 on Product B regardless of what the retail prices are. You can also apply a different percentage discount per product rather than a flat blanket rate. For example, give the Wholesale group 30% off your apparel range but only 10% off accessories, all within the same group. This is the right choice when margins vary significantly across your catalogue or when you have negotiated rates per SKU.
Percentage pricing is available from the Starter plan. Per-product custom pricing and per-product percentage overrides require Growth or Pro.
Step 4: Tag your customers in Shopify
Go to Customers in your Shopify admin. Find the wholesale account you want to add. Click Edit and add the group tag (for example, wholesale) to their customer tags. Save.
That is the trigger. When this customer logs in, the app reads their tags, identifies which group they belong to, and applies the pricing rules for that group. No other steps required on the customer side.
For bulk onboarding, you can also import a customer CSV from Shopify's built-in customer import tool with the appropriate tags pre-populated, or use the Shopify admin API if you are migrating from another system.
Step 5: Test before you go live
Create a test customer account in Shopify with your wholesale tag applied. Log in using that account in an incognito window and browse your store. You should see the group price on the product page, in the cart, and at checkout. Confirm the price is correct before tagging any real accounts.
If the price is not showing, the most common cause is that the customer tag does not exactly match the group name you created in the app. Tags are case-sensitive in Shopify, so Wholesale and wholesale are different tags.
Advanced features worth knowing about
NET payment terms
If your wholesale buyers pay on invoice rather than upfront, you can enable NET 30, 45, 60, or 90 terms for specific groups. When an eligible buyer reaches checkout, they see a payment terms option alongside the standard payment methods. The order is created and fulfilled normally, and the invoice is due on the agreed date.
This runs entirely inside Shopify Checkout via Extensions. There is no separate portal, no external payment processor, and no custom code. It is as native as any other Shopify payment option. NET terms require the Pro plan.
Product visibility per group
On the Pro plan you can control which products or collections each group can see. Hide trade-only SKUs from retail customers. Show a regional catalogue only to the accounts in that territory. Restrict new product lines to approved wholesale accounts during a soft launch.
This is one of the most consistently requested features from merchants running combined D2C and B2B channels on the same store. Without visibility rules, you are either showing your wholesale pricing structure to retail customers or maintaining separate stores.
Storefront access lock
If you run a wholesale-only storefront and want to restrict access to approved accounts, the Pro plan lets you lock your entire store to logged-in customers with an approved group tag. Unapproved visitors see a custom message or get redirected. One toggle in the settings. No theme edits required.
Shopify POS integration
Group pricing follows tagged customers into Shopify POS on Growth and Pro. If a trade account walks into your showroom, the staff member finds them in the POS customer lookup and their group rate applies automatically. No manual price overrides needed.
Common mistakes to avoid
- Mismatched tags: The customer tag must exactly match the group name in the app. Check capitalisation and spacing.
- Testing while logged in as admin: Shopify admin sessions bypass most app logic. Always test in an incognito window logged in as the test customer.
- Forgetting the customer login step: Group pricing only applies to logged-in customers. Guest checkouts always see retail prices. Make sure your wholesale customers know they need an account.
- Setting percentage and per-product pricing on the same group: If a group has both set, per-product pricing takes precedence on products where it is defined. This is usually correct behaviour, but worth understanding before you set up a mixed catalogue.
What this costs
Miko B2B Wholesale House is free to install. Paid plans are:
- Starter ($29/month): One customer group, percentage pricing across your full catalogue.
- Growth ($59/month): Unlimited groups, per-product and per-variant pricing, Shopify POS integration, in-app analytics.
- Pro ($89/month): Everything in Growth plus NET 30/45/60/90 payment terms, product visibility rules per group, storefront access lock, and CSV purchase order management.
Annual billing saves 25% on all plans. There is a 14-day free trial on all paid plans so you can test every feature before committing.
Questions
Can you have different prices for different customers on Shopify?
Yes. Using an app built on Shopify Functions, you can create named customer groups, tag customers to those groups, and set either percentage discounts or custom per-product prices per group. Tagged customers see their group price from the product page through to checkout with no coupon codes or workarounds.
Do you need Shopify Plus for customer group pricing?
No. Shopify native B2B requires Plus, but apps like Miko B2B Wholesale House implement customer group pricing on Basic, Shopify, Advanced, and Plus using Shopify Functions. No Plus subscription needed.
What is the difference between percentage pricing and per-product pricing?
Percentage pricing applies a flat discount to every product for a group. Per-product pricing lets you set a specific price on each product or variant independently. Percentage is simpler. Per-product is better when margins vary across your catalogue or when you have negotiated rates per SKU.
How do NET payment terms work with customer groups?
You enable NET terms (30, 45, 60, or 90 days) per customer group in the app settings. When an eligible buyer reaches checkout, they see the payment terms option. The order is created and fulfilled, and the invoice is due on the agreed date. This requires the Pro plan and runs natively inside Shopify Checkout via Extensions.
Can you hide products from certain customer groups?
Yes, on the Pro plan. You can restrict which products or collections each group can see. Hide wholesale-only SKUs from retail customers, show regional catalogues to specific accounts, or lock new product lines to approved trade buyers during a soft launch.
Get your first group live today
Customer group pricing on Shopify does not require Plus, custom development, or separate stores. Install Miko B2B Wholesale House free and have your first wholesale pricing tier live before end of day. Questions about your setup? Talk to the team.