B2B Wholesale Hub Guide
Everything you need to run wholesale pricing on your Shopify store - no developer required.
1. What is Miko B2B?
Miko B2B Wholesale Hub lets you run your retail store and wholesale operation on the same Shopify store without any complicated setup. Your regular customers see normal retail prices. Your wholesale buyers - identified by a simple Shopify customer tag - automatically see their negotiated prices the moment they log in.
There are no coupon codes to manage, no draft orders to create manually, and no separate B2B store to maintain.
The core idea in one sentence
Tag a customer in Shopify → they log into your store → wholesale prices appear automatically everywhere, including checkout and POS.
What does "automatic" mean in practice?
When a tagged wholesale customer visits your store:
- Product pages show their wholesale price (with the retail price crossed out)
- Collection pages update to show wholesale pricing
- The cart and checkout reflect the correct wholesale price automatically
- Shopify POS applies their wholesale pricing when the customer is added to the sale
No action required from your staff. No codes for the customer to enter.
2. Installation
Step 1 - Install the app
Install Miko B2B Wholesale Hub from the Shopify App Store. During installation, the app automatically sets up everything it needs in the background - you don't need to do anything technical.
Step 2 - Enable the Storefront Embed
This is a one-time step that allows the app to show wholesale prices on your product and collection pages. Without it, pricing only updates at checkout.
- In your Shopify Admin, go to Online Store → Themes
- Click Customise on your active theme
- Click App Embeds in the left sidebar
- Toggle on Miko B2B
- Click Save
Step 3 - Create your first Customer Group
Head to the Miko B2B app in your Shopify Admin and create your first wholesale group. See the Customer Groups section below for instructions.
3. Customer Groups
A Customer Group is a wholesale tier - for example, "Gold Wholesale", "Silver Distributor", or "Staff Pricing". Each group has its own pricing rule and is linked to a specific customer tag.
Creating a Customer Group
- Open the Miko B2B app in your Shopify Admin
- Click Customer Groups → New Group
- Enter a Group Name (e.g. "Gold Wholesale")
- Set the Customer Tag - this is the Shopify tag you'll add to customers in this group (e.g.
wholesale-gold) - Choose a Pricing Type: percentage discount or fixed custom prices
- Set the discount value or enter fixed prices per product
- Click Save
Multiple Groups & Priority
On Growth and Pro plans you can have unlimited groups. If a customer accidentally has two wholesale tags (e.g. both wholesale-gold and wholesale-silver), Miko applies the group with the highest priority - the one you've set as most important. You control priority order in the Groups settings page.
wholesale-gold, wholesale-silver, staff).
4. Tagging Your Wholesale Customers
Once you've created a group, you just need to add the corresponding tag to your customers in Shopify. Miko picks this up automatically - no syncing or importing required.
How to tag a customer
- In your Shopify Admin, go to Customers
- Open the customer's profile
- In the Tags field, type the wholesale tag (e.g.
wholesale-gold) - Click Save
That's it. Next time that customer logs into your store, they'll see their wholesale prices automatically.
Bulk tagging
To tag many customers at once, use Shopify's built-in bulk customer edit:
- Go to Customers in your Shopify Admin
- Filter or search for the customers you want to tag
- Select them all using the checkbox
- Click Actions → Add tags
- Enter the wholesale tag and confirm
5. Pricing Types
Miko B2B supports two ways to set wholesale prices. You can use both across different groups.
Percentage Discount
Available on all plans (including Starter).
Apply a flat percentage off your regular prices for everyone in a group. For example, "Gold Wholesale gets 25% off everything". This is the simplest option and works across your entire catalogue automatically - including new products you add in the future.
Example: 25% off
A product retails at $100.00. A Gold Wholesale customer with 25% discount sees $100.00 → $75.00. No setup needed per product.
Fixed Custom Pricing
Available on Growth and Pro plans.
Set a specific dollar price for individual products or variants for a customer group. This is ideal when you have individually negotiated prices per SKU - for example, your top distributor pays exactly $45.00 for a product regardless of what the retail price is.
Example: Fixed price per variant
The retail price of a product is $80.00. You set a fixed price of $45.00 for your Gold Distributor group. That group always pays $45.00, even if you change the retail price later.
6. What Your Wholesale Customers See
When a tagged wholesale customer logs into your store, here's exactly what changes for them (and only them - retail customers are unaffected):
On product pages
- The retail price is shown with a strikethrough
- Their wholesale price is shown prominently
- An optional banner appears: "Wholesale pricing active" (you can customise this text)
On collection pages
- Product prices in the grid update to show wholesale prices
- Works automatically - no theme changes needed
In the cart
- Line items show the correct wholesale price
- The order total reflects wholesale pricing
At checkout
- Wholesale discounts are applied as line-item discounts on each product
- The customer sees a breakdown showing the discount on each item
- No coupon code required - it's fully automatic
7. Point of Sale (POS)
Growth & Pro Plans
Miko B2B works seamlessly with Shopify POS. No special setup or POS tile required.
How it works
When you add a tagged wholesale customer to a POS sale in Shopify, their wholesale pricing applies to the cart automatically - exactly the same way it works online. Your staff don't need to do anything extra.
- Open a new sale in Shopify POS
- Add products to the cart as normal
- Tap Add customer and select your wholesale buyer
- Their wholesale prices apply to the cart immediately - no manual steps
What staff see
When the wholesale customer is added to the cart, each eligible line item shows the discounted wholesale price. The discount breakdown is visible in the cart summary, making it clear the wholesale pricing is active.
8. Product Visibility Control
Pro Plan
Control which products specific wholesale groups can see in your store. This is useful when you have exclusive products that should only be visible to certain buyers.
Two visibility modes
| Mode | What it does | When to use it |
|---|---|---|
| Hide specific products | Products you list are hidden from this group. Everything else stays visible. | When most products are available but a few should be restricted. |
| Show only specific products | Only the products you list are visible. Everything else is hidden. | When this group should only see a curated subset of your catalogue. |
Setting up visibility
- In the Miko app, go to Product Visibility
- Select the Customer Group to configure
- Choose your visibility mode (hide or show)
- Use the product picker to select which products apply
- Save - changes take effect immediately
9. Storefront Lock
Pro Plan
Storefront Lock restricts your entire Shopify store to approved wholesale customers only. Perfect if your store is a B2B-only channel - a private portal for distributors, resellers, or manufacturers.
What happens when Storefront Lock is on
- Visitors who aren't logged in are redirected to your login page
- Customers who are logged in but don't have a wholesale tag see a "Access Restricted" page
- Approved wholesale customers (with a matching tag) browse freely and see their prices
Enabling Storefront Lock
- Go to Miko App → Settings → Storefront Lock
- Toggle it on
- Set a redirect page for non-wholesale visitors (optional - defaults to your account login page)
- Add any pages you want to keep public (e.g. your homepage or a "Request Access" landing page)
- Save
10. Net Terms Invoicing
Pro Plan
Offer your wholesale buyers the ability to pay by invoice instead of paying at checkout. Set up payment terms like NET 30, NET 45, NET 60, or NET 90 for specific customer groups.
How it works for your customers
When a net terms customer checks out, they select "Pay by Invoice - NET [X] days" as their payment method. The order is created in Shopify as unpaid, and you can then issue a formal invoice and collect payment through your normal accounts process.
Setting up Net Terms
- Go to Miko App → Net Terms
- Click Add Net Terms Configuration
- Select the Customer Group to enable net terms for
- Choose the payment term: NET 30, 45, 60, or 90
- Save - net terms will now appear as a payment option at checkout for customers in that group
11. Purchase Order Management
Pro Plan
How the flow really works: wholesale buyers send POs to you the same way they always have (email, PDF, EDI). Inside the Miko admin you upload the PO line items as a CSV. Miko matches SKUs to Shopify variants, applies the correct group pricing, and creates a Shopify draft order tagged with the PO number and customer - ready to send for payment or fulfilment. This is a merchant-side admin tool, not a customer-facing portal.
How you process a PO
- Your buyer sends you their PO by email or PDF (no change to their workflow).
- You open Miko in the Shopify admin and click Purchase Orders → Upload PO.
- Upload the line items as a CSV (SKU, quantity, optional unit price override).
- Miko validates the SKUs, matches them to your Shopify variants, and previews the order with the correct group pricing applied.
- You confirm and Miko creates a Shopify draft order. From there you can send an invoice, apply NET terms, or convert to a paid order.
CSV format
| Column | Required? | Example |
|---|---|---|
sku | Yes | WIDGET-RED-LG |
quantity | Yes | 50 |
unit_price | No | 12.50 |
note | No | Urgent |
A downloadable CSV template is available inside the Miko admin so you can structure incoming POs consistently.
12. Plans & Features
| Feature | Starter $29/mo | Growth $59/mo | Pro $89/mo |
|---|---|---|---|
| Customer groups | 1 | Unlimited | Unlimited |
| Percentage discounts | ✓ | ✓ | ✓ |
| Storefront price display | ✓ | ✓ | ✓ |
| Automatic POS pricing | – | ✓ | ✓ |
| Fixed custom prices per variant | – | ✓ | ✓ |
| Analytics dashboard | – | ✓ | ✓ |
| Storefront lock | – | – | ✓ |
| Product visibility per group | – | – | ✓ |
| Net terms invoicing | – | – | ✓ |
| CSV purchase orders | – | – | ✓ |
All plans include a 14-day free trial. View full pricing →
13. Advanced: Custom Theme Display
Miko B2B handles price display automatically through the App Embed. Most merchants don't need this section.
However, if you want to add custom wholesale-specific content in your theme - such as a wholesale badge, a personalised banner, or conditional content for specific groups - you can do so using Shopify's Liquid template language and a small JavaScript snippet.
Show a wholesale badge in your theme
In any Liquid template, use the customer's tags to conditionally show content:
{% if customer and customer.tags contains 'wholesale-gold' %}
<div class="wholesale-badge">
Gold Wholesale Account
</div>
{% endif %}
Show different content for wholesale vs retail visitors
{% if customer and customer.tags contains 'wholesale-gold' %}
<p>Your Gold Wholesale pricing is active on all products.</p>
{% elsif customer %}
<p>Log in with your wholesale account to see your pricing.</p>
{% else %}
<!-- Regular retail visitor, show nothing -->
{% endif %}
Access live wholesale pricing in JavaScript
If you want to build a fully custom price display (e.g. a custom quick-order form or a collection page with your own layout), you can query the Miko App Proxy from your theme's JavaScript to get the active customer's wholesale configuration:
fetch('/apps/b2b')
.then(response => response.json())
.then(data => {
if (!data.isWholesale) return; // retail customer, do nothing
console.log('Group:', data.groupName);
// data.discountPercent - e.g. 25 (for 25% off)
// data.customPrices - object of variantGid → price
// e.g. { "gid://shopify/ProductVariant/123": 45.00 }
// Example: update a price element on the page
const priceEl = document.querySelector('.product-price');
const variantGid = priceEl.dataset.variantGid; // set this in your Liquid
if (data.customPrices[variantGid]) {
priceEl.textContent = '$' + data.customPrices[variantGid].toFixed(2);
}
});
Display wholesale price on a product page (collection grid)
In your product card Liquid snippet, pass the variant GID as a data attribute so your JavaScript can match it to the App Proxy response:
<!-- In your product card snippet (e.g. product-card.liquid) -->
<span
class="price"
data-variant-gid="{{ product.selected_or_first_available_variant.id | prepend: 'gid://shopify/ProductVariant/' }}"
>
{{ product.price | money }}
</span>
14. Frequently Asked Questions
Does it work with Shopify Plus?
Yes. Miko B2B works on all Shopify plans. On Shopify Plus, the checkout discount integration uses Shopify's native Functions API which provides the most reliable and performant wholesale pricing at checkout.
Will my retail customers see any difference?
No. Unless a customer is logged in with a wholesale tag, your store looks and behaves exactly the same as before. Miko B2B is completely invisible to retail shoppers.
Can a wholesale customer still use regular discount codes?
By default, wholesale pricing and discount codes are separate. Your Shopify discount settings control whether they can be combined. We recommend testing this on your store before opening it to buyers.
What happens if I change a product's retail price?
For percentage-based groups, wholesale prices update automatically - they're always calculated from the current retail price. For fixed custom prices, the fixed price remains unchanged until you manually update it in the Miko app.
Can I try it before subscribing?
Yes - all plans include a 14-day free trial with full access to every feature on that plan. No credit card required to start.
Does it work with subscriptions or selling plans?
Miko B2B applies discounts at the cart line level during checkout and is compatible with most Shopify subscription apps. Contact us if you need confirmation for your specific subscription setup.
15. Support
The Miko B2B Wholesale Hub is built and supported by Tripster Developers - a certified Shopify Plus agency since 2016.
Get in touch
- Support form: miko.co.nz/contact.html
- Email: hello@tripsterdevelopers.com
- Response time: Within 24 hours on business days
Ready to start your wholesale operation?
Get early access to Miko B2B and run wholesale pricing natively on your Shopify store.