Miko B2B Wholesale Hub · Merchant Guide

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.

  1. In your Shopify Admin, go to Online Store → Themes
  2. Click Customise on your active theme
  3. Click App Embeds in the left sidebar
  4. Toggle on Miko B2B
  5. Click Save
That's it for setup. The app embed doesn't change how your store looks for regular customers - it only activates when a tagged wholesale buyer is logged in.

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

  1. Open the Miko B2B app in your Shopify Admin
  2. Click Customer Groups → New Group
  3. Enter a Group Name (e.g. "Gold Wholesale")
  4. Set the Customer Tag - this is the Shopify tag you'll add to customers in this group (e.g. wholesale-gold)
  5. Choose a Pricing Type: percentage discount or fixed custom prices
  6. Set the discount value or enter fixed prices per product
  7. 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.

Tip: Keep your tag names simple and consistent - lowercase with hyphens works well (e.g. 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

  1. In your Shopify Admin, go to Customers
  2. Open the customer's profile
  3. In the Tags field, type the wholesale tag (e.g. wholesale-gold)
  4. 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:

  1. Go to Customers in your Shopify Admin
  2. Filter or search for the customers you want to tag
  3. Select them all using the checkbox
  4. Click Actions → Add tags
  5. Enter the wholesale tag and confirm
To remove wholesale access: Simply remove the tag from the customer's profile. Their prices will revert to retail immediately on their next page load.

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.

Which should I use? Start with percentage pricing - it's simpler and covers everything automatically. Switch to (or add) fixed pricing when you have specific price agreements per SKU with key accounts.

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
No double discounts: Miko B2B wholesale pricing is separate from your regular Shopify discount codes. If a wholesale customer also has a coupon code, Shopify's standard stacking rules apply - you can control this in your Shopify discount settings.

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.

  1. Open a new sale in Shopify POS
  2. Add products to the cart as normal
  3. Tap Add customer and select your wholesale buyer
  4. Their wholesale prices apply to the cart immediately - no manual steps
Works automatically. The same Shopify discount logic that powers your online store also runs in POS. As long as the customer has the correct wholesale tag, pricing updates the moment you add them to the sale.

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.

Tip: Train your staff to always add the customer to the sale before completing the checkout. This ensures the correct wholesale pricing is applied and the sale is attributed to the right account.

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

ModeWhat it doesWhen 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

  1. In the Miko app, go to Product Visibility
  2. Select the Customer Group to configure
  3. Choose your visibility mode (hide or show)
  4. Use the product picker to select which products apply
  5. Save - changes take effect immediately
Note: Product visibility works by showing/hiding products on the storefront. It does not affect your Shopify admin, reports, or other sales channels. For fully private products, combine with Storefront Lock.

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

  1. Go to Miko App → Settings → Storefront Lock
  2. Toggle it on
  3. Set a redirect page for non-wholesale visitors (optional - defaults to your account login page)
  4. Add any pages you want to keep public (e.g. your homepage or a "Request Access" landing page)
  5. Save
Tip: Create a simple landing page in Shopify explaining who your wholesale portal is for, with a "Request Account" contact form. Add this as an exempt page so new potential buyers can still find you.

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

  1. Go to Miko App → Net Terms
  2. Click Add Net Terms Configuration
  3. Select the Customer Group to enable net terms for
  4. Choose the payment term: NET 30, 45, 60, or 90
  5. Save - net terms will now appear as a payment option at checkout for customers in that group
Invoice management: Miko handles the checkout step. For invoice creation, payment tracking, and reminders, use your accounting software (Xero, QuickBooks, MYOB) alongside Shopify's orders. You can also use Shopify's built-in invoice emails.

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

  1. Your buyer sends you their PO by email or PDF (no change to their workflow).
  2. You open Miko in the Shopify admin and click Purchase Orders → Upload PO.
  3. Upload the line items as a CSV (SKU, quantity, optional unit price override).
  4. Miko validates the SKUs, matches them to your Shopify variants, and previews the order with the correct group pricing applied.
  5. 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

ColumnRequired?Example
skuYesWIDGET-RED-LG
quantityYes50
unit_priceNo12.50
noteNoUrgent

A downloadable CSV template is available inside the Miko admin so you can structure incoming POs consistently.

12. Plans & Features

FeatureStarter
$29/mo
Growth
$59/mo
Pro
$89/mo
Customer groups1UnlimitedUnlimited
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.

When do you need this? Only if you want to show custom content beyond what Miko shows by default - for example, a "Wholesale Account" badge next to the customer's name, or a collection banner that only appears for wholesale buyers.

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>
Note for theme developers: Miko's App Embed already handles standard price elements automatically using CSS selectors. These custom snippets are only needed for non-standard theme layouts or custom price display components.

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

Ready to start your wholesale operation?

Get early access to Miko B2B and run wholesale pricing natively on your Shopify store.