Shopify B2B: SA Wholesale Pricing Strategies

April 4, 2026

Shopify is built for B2C by default. It assumes your customer is an individual buying one or two items at a price that includes 15% VAT. But for South African wholesalers and manufacturers, the reality is different.

You have "Tier 1" distributors in Cape Town who get 40% off, "Tier 2" retailers in Joburg who get 25% off, and certain clients who might be tax-exempt for export orders to neighboring SADC countries.

If you try to run this on a standard Shopify setup, you'll quickly hit a wall. Here’s how to handle the "plumbing" of Shopify B2B in South Africa without breaking your store or your accounting.

Option 1: The Shopify Plus B2B Route

If you’re on Shopify Plus, you have access to the native B2B features. This is the "gold standard" because it allows you to:

  • Assign specific price lists to customer companies.
  • Offer net payment terms (e.g., Net 30).
  • Show prices excluding VAT until checkout.

The catch? Shopify Plus starts at $2,000/month (around R38,000+). For many mid-sized SA wholesalers, that’s a steep jump.

Option 2: The "App Stack" for Standard Shopify

If you're on a Basic or Shopify plan, you can still build a robust B2B system using apps like SparkLayer or Wholesale Gorilla.

SparkLayer, in particular, is excellent for technical users. It sits on top of your existing Shopify store and creates a custom B2B interface. It handles complex pricing logic and even integrates with ERPs like Sage or Xero to pull live wholesale data.

Option 3: The Custom "Liquid" Approach (Low Cost)

For simpler B2B needs (e.g., just two tiers of pricing), you can use customer tags and Liquid logic. This is the "DevDarren way"—clean, fast, and no monthly app fees.

Step 1: Tag Your Customers

In the Shopify Admin, tag your wholesale clients with

wholesale
or
tier_1
.

Step 2: Modify the Price Display

In your

main-product.liquid
(or equivalent), you can hide the retail price and show a discounted price based on the tag:

{% if customer.tags contains 'wholesale' %}
  {% assign discount_factor = 0.6 %} {{-- 40% discount --}}
  <span class="price-wholesale">
    {{ product.price | times: discount_factor | money_with_currency }} (Wholesale)
  </span>
  <p><small>Retail: {{ product.price | money }}</small></p>
{% else %}
  <span class="price-retail">{{ product.price | money }}</span>
{% endif %}

The VAT Problem in SA (15%)

In SA, B2C prices must include VAT by law. However, B2B buyers almost always want to see prices excluding VAT during their browsing.

Showing Ex-VAT Prices

Shopify's default setting is "All taxes are included in my prices." To show ex-VAT prices to wholesalers while keeping VAT-inclusive prices for retail, you need to use a "Dual Pricing" strategy.

The easiest way to do this without Shopify Plus is to calculate the ex-VAT price in Liquid:

{% if customer.tags contains 'wholesale' %}
  {% assign ex_vat_price = product.price | divided_by: 1.15 %}
  <span class="price-ex-vat">{{ ex_vat_price | money }} (Ex. VAT)</span>
{% endif %}

Handling Tax-Exempt Clients (Exports)

If you’re shipping from SA to Namibia or Botswana, the order is zero-rated (0% VAT). Shopify handles this natively through Tax Overrides.

  1. Go to Settings > Taxes and duties.
  2. Select the country (e.g., Namibia).
  3. Ensure the tax rate is set to 0% for those regions.
  4. For specific tax-exempt entities within SA (rare but possible), you can toggle the "Tax exempt" status on the Customer profile in the Shopify Admin.

The Plumbing: Volume-Based Pricing

Wholesale is all about "Buy 10, save 10%." You can build a simple quantity break table in your product template:

<div class="quantity-breaks">
  <table>
    <tr><th>Qty</th><th>Price</th></tr>
    <tr><td>1-9</td><td>{{ product.price | money }}</td></tr>
    <tr><td>10-49</td><td>{{ product.price | times: 0.9 | money }}</td></tr>
    <tr><td>50+</td><td>{{ product.price | times: 0.8 | money }}</td></tr>
  </table>
</div>

Warning: This Liquid code only displays the price. To actually apply the discount in the cart, you’ll need a Shopify Function (if you’re a dev) or an app like Bold Quantity Breaks.

Integrating with Xero/Sage

For SA wholesalers, the website is just the front door. The real work happens in the accounting software.

When a B2B order comes in, it needs to sync to Xero as an Invoice (not just a sales receipt), often under a specific wholesale account code. Use a connector like Stock2Shop or a custom-built Webhook to map Shopify's

customer_tag
to your Sage/Xero customer categories.

Final Thoughts

Shopify is incredibly powerful for B2B, but only if you get the plumbing right. Don't let the "B2C-first" nature of the platform hold you back. Whether you're using native Plus features, a specialized app like SparkLayer, or custom Liquid logic, you can build a system that scales with your wholesale business.

Struggling with SA VAT compliance or custom wholesale pricing on your Shopify store? Let's talk on WhatsApp. I help local brands turn their retail stores into wholesale powerhouses.


Related Articles