"i only speak liquid" #89: Some Liquid tricks for Shopify B2B

Written by Georgie (a Storetasker Expert)

Hey everyone,

This is Georgie’s very 1st edit of “i_only_speak_liquid”!
So excited to have her share her wisdom with y’all over the next 4 edits.

About Georgie: Georgie is a developer based between Lisbon and NY. She’s contributed to projects for leading brands including John Frieda, Bioré and Bio Oil. Her expertise spans front-end development, Shopify e-commerce, EDM creation, and digital consulting.

Ofc: She’s an expert on Storetasker 😉 apply here.

Let’s dive in 🤿

But wait before we do: I want to give a shout out to our partners at Hookdeck. Their team has built a tool for Shopify developers like y’all. Here’s what it’s all about:

Losing webhooks? Reclaim your sanity with Hookdeck 

Webhook issues led to customer complaints. Don’t let the next flash sale or bulk operation from your biggest merchant take down your app. Sound familiar?

Hookdeck Event Gateway acts as a middleware between Shopify webhooks and your app. It automatically queues webhooks, managing spikes and warning you of issues.

With a persistent event log, you can inspect, retry, and debug any webhooks.

Best of all, no code changes or background jobs required; just update your webhook URLs to get up to 10k free events per month.

What I’ve been thinking about:

I’ve been working on a lot of Shopify B2B projects recently, everything from migrating stores off old setups to building from scratch. Shopify B2B still has its limitations and the features are pretty basic, but overall the experience has been really positive. Every client I’ve moved over has been genuinely happy with the outcome, and getting them off custom apps and old tagging systems has been a huge relief for them.

So what can you actually do with Shopify B2B?

Once the company/location data lives in Shopify, you can actually do things with it in Liquid without too much custom code or apps.

Out of the box Shopify B2B allows you to customize a completely different homepage for B2B customers without any custom code, but what about the other pages?

A few super simple Liquid wins I keep using:

B2B only announcement bars

{% if customer.b2b? %}
  <div class="b2b-announcement">Free Wholesale Shipping for orders over $500</div>
{% else %}
  <div class="d2c-announcement">Free Shipping for orders over $30</div>
{% endif %}

Clean, helpful, and way better than showing wholesale messaging to retail shoppers. This is also a super clear way of showing customers that they are logged in as a wholesale shopper.

Swap hero CTAs based on B2B vs D2C

{% if customer.b2b? %}
  <a class="wholesale-btn" href="/collections/shop-all">Shop Wholesale Now</a>
{% else %}
  <a class="d2c-btn" href="/pages/application-form">Register to become a wholesale customer</a>
{% endif %}

Create a Wholesale landing page with custom CTAs depending on the customer status.

Hide features that don’t work for B2B

A big one that I unfortunately found out the hard way: subscriptions aren’t compatible yet with Shopify B2B. Instead of letting customers click into a dead feature:

{% unless customer.b2b? %}
  {% render 'subscription-widget' %}
{% endunless %}

The options are endless. The more tailored you make the B2B experience the better in my opinion.

A few things you might not know

  • Shopify can enable discount codes for B2B — you just have to ask support.

  • Currently only Shopify Plus stores can use native B2B.

  • You don’t need “Customer tags” anymore, it’s all Company > Location settings.

  • Shopify Forms app allows you to create an easy application form for wholesale customers.

Hopefully there are more features being rolled out for Shopify B2B in the near future, but so far I’ve been really happy with how it works.

1 app I like:

I use both of these Chrome extensions daily to quickly check fonts and colors.

One learning as a freelancer:

One thing I’m trying to get better at is setting clearer expectations and writing scopes that leave less room for interpretation. Every time I rush that part, I end up under quoting my time or taking on extra work that was never meant to be in scope. It’s not great for me, and it doesn’t actually help the client either. The more specific I am upfront, the smoother the project runs and the easier it is for everyone to know what’s included, what’s not, and what’s going to take extra budget.