Skip to content
Store slow, dated, or hard to edit? Request a Store Diagnostic
Running B2B on spreadsheets or email? Plan Your B2B Project
B2B & Wholesale

Shopify B2B Checkout: What You Can and Can’t Customise for Wholesale Buyers

Wholesale buyers don’t check out like consumers, and if you’ve tried to bolt B2B behaviour onto a standard Shopify checkout, you’ve probably already hit a wall, no purchase order field, no net terms, no way to show a tax-exempt buyer their negotiated price without a workaround app stacked on top of another workaround app.

Shopify’s native B2B functionality, available on Shopify Plus, solves a lot of this properly rather than through duct tape. But it comes with real boundaries: some things are genuinely configurable, some are only reachable through checkout extensibility (Shopify’s supported customisation framework), and some are locked down entirely because of how Shopify’s checkout is architected for security and performance reasons.

This post breaks down exactly where those lines sit, so you’re not discovering the hard way, mid-build, that a requirement your sales team promised a wholesale client isn’t actually achievable without custom development, or conversely, paying a developer to build something that already exists natively.

How Shopify B2B actually works, in brief

Shopify B2B (sometimes still referred to by its earlier name, Wholesale Channel, though the current implementation is more integrated) is built around company accounts rather than individual customer accounts. A company can have multiple contacts, each with their own login, and each company can be assigned specific commercial terms. The core building blocks are:

  • Company accounts, a business entity in Shopify with one or more locations and one or more associated buyer contacts, each with defined permissions (who can place orders, who can only browse, who manages payment methods).
  • Price lists, custom pricing assigned per company or company location, either as fixed prices or percentage-based adjustments off your standard catalogue, so different wholesale accounts can see different negotiated rates without maintaining separate product catalogues.
  • Payment terms, net 30, net 60, net 90 (or custom terms you define) attached to a company, which changes the checkout flow from “pay now” to “invoice, due later,” with Shopify tracking the due date and outstanding balance.
  • Purchase order workflows, buyers can enter a PO number at checkout, which flows through to the order and invoice, satisfying the paper-trail requirement most procurement teams need before they’ll approve a purchase.
  • Quantity rules and minimum order quantities (MOQs), set at the product or variant level, either as fixed increments (multiples of a case size, for example) or minimum thresholds, enforced automatically at checkout rather than relying on the buyer to self-police.

All of this lives on top of Shopify’s checkout, which is why the checkout customisation question matters so much, B2B accounts change what a buyer sees and what terms apply, but the checkout UI itself is still governed by Shopify’s general checkout rules.

What’s genuinely customisable via checkout extensibility

Since Shopify moved fully to extensible checkout (retiring checkout.liquid for Plus merchants), customisation happens through checkout UI extensions, pre-approved extension points where you can inject custom functionality without touching Shopify’s core checkout code. For B2B specifically, the realistic customisation surface includes:

  • Custom fields and validation at checkout, such as a required cost-centre code, a delivery instructions field, or additional PO validation logic beyond the native PO number field.
  • Dynamic messaging based on company or price list, for example showing a banner confirming “You’re purchasing under your negotiated Tier 2 pricing” or surfacing net terms due dates clearly at the payment step.
  • Custom shipping method logic, including presenting freight or palletised delivery options differently for wholesale orders versus retail orders, when built through Shopify Functions.
  • Payment method customisation via Shopify Functions, such as hiding certain payment methods for specific companies (for example, only offering “pay by invoice” to approved accounts and requiring card payment for new or unapproved ones).
  • Discount and pricing logic via Shopify Functions, layering promotional logic on top of B2B price lists, volume discounts, bundle pricing, or company-specific promotional codes.
  • Post-purchase and thank-you page customisation, useful for surfacing reorder links, account managers’ contact details, or order approval status for multi-approver company accounts.

These are real, supported customisations, built through Shopify’s official extension APIs, which means they survive Shopify’s platform updates rather than breaking every time checkout changes, which was the constant risk with the old checkout.liquid hacks.

What’s locked down and can’t be customised

This is the part that catches teams off guard, especially those coming from more open platforms or from Shopify’s old, more editable checkout:

  • You cannot fundamentally restructure the checkout flow or step order. The core sequence (contact/company info, shipping, payment, review) is fixed. You can add fields and messaging within steps, but not reorder or remove Shopify’s core steps.
  • You cannot build a fully custom checkout page layout. Extensions inject components into defined slots within Shopify’s checkout; you’re not writing free-form HTML/CSS for the whole page as you once could.
  • You cannot bypass Shopify’s payment security requirements, including for B2B, even invoice/net-terms orders still flow through Shopify’s order and payment infrastructure rather than an entirely external payment path.
  • You cannot arbitrarily branch checkout logic outside Shopify Functions’ defined inputs. Custom logic has to work within the data Shopify exposes to Functions (cart, customer, company, discounts), you can’t reach into arbitrary external systems mid-checkout without careful API design and latency trade-offs.
  • True custom quoting (negotiated, one-off pricing outside a price list) isn’t a native checkout feature. Price lists cover tiered/negotiated pricing set in advance, but an ad hoc quote-to-order flow (buyer requests a quote, gets a one-time custom price, converts it to an order) requires either a quoting app or custom development connecting a quote tool to Shopify’s Draft Orders API.

The general rule: extensibility lets you add to and adjust the checkout experience within Shopify’s structure. It doesn’t let you replace the structure. That distinction is worth setting expectations around internally before scoping a B2B build, because “customise the checkout” means something narrower on Shopify than it might on a fully custom-built ecommerce platform.

Mapping common wholesale requirements to the right solution

Wholesale buyers tend to ask for a fairly consistent set of things. Here’s how those map to native Shopify B2B features, checkout extensibility, or third-party apps/custom development:

Requirement Where it lives
Company-specific negotiated pricing Native, price lists
Net 30/60/90 payment terms Native, company payment terms
PO number capture at checkout Native, B2B checkout field
Minimum order quantities / case-pack quantities Native, quantity rules
Multiple buyers per company with different permissions Native, company locations and roles
Tax-exempt purchasing Native, via tax exemptions set on the company or location
Custom checkout fields (cost centre, delivery notes) Checkout UI extensions
Hiding/showing payment methods by account status Shopify Functions
Volume or bundle discounting logic Shopify Functions or a B2B-focused discount app
Ad hoc custom quoting outside standard price lists Third-party quoting app, or custom dev via Draft Orders API
Approval workflows (one buyer submits, another approves) Native buyer roles for some cases; more complex multi-step approval chains typically need custom development
ERP-driven real-time pricing or stock sync Custom integration, not a checkout feature per se

Tax-exempt purchasing is worth a specific note: Shopify B2B supports exempting a company or company location from tax collection, which handles the common case cleanly. Where it gets more complex is jurisdiction-specific exemption certificate management (validating and storing exemption documentation per state or region), which often still needs a dedicated tax app or manual verification process layered on top.

When native features and apps aren’t enough

For a lot of wholesale operations, native B2B plus one or two well-chosen apps covers the requirement list above completely, and that’s the right place to stop, adding custom development where a native feature already exists just adds maintenance overhead for no benefit.

Custom development earns its cost when the requirement is genuinely structural rather than cosmetic: multi-step order approval chains involving several stakeholders, checkout logic that needs to query a live ERP price feed in real time rather than a synced price list, quote-to-order conversion flows that need to preserve custom line-item terms, or checkout behaviour that varies by extremely granular business rules Shopify Functions can’t express cleanly within its execution limits.

If you’re mapping out a B2B build and you’re not sure yet which category your requirements fall into, native, extensible, or custom, that’s exactly the kind of scoping conversation worth having before development starts rather than after a developer has already built the wrong thing. This is the sort of B2B checkout and company-account architecture work we handle through our Shopify B2B development service, mapping your specific wholesale workflow against what’s genuinely achievable natively versus what needs custom Functions or an integration.

A practical checklist before you scope a Shopify B2B checkout project

  1. List every payment term variant your wholesale buyers actually use (not just net 30, include any custom arrangements) and confirm each maps to Shopify’s company payment terms settings.
  2. Document your pricing structure per account tier or individual company, this determines how many price lists you’ll need and whether percentage-based or fixed pricing fits better.
  3. Identify whether any buyers need multi-step order approval (a junior buyer submits, a manager approves), this is often the single biggest driver of custom development in B2B builds.
  4. Confirm your tax-exemption handling requirements by state/region and whether certificate storage needs to be automated.
  5. Separate “nice to have” checkout customisations from genuine dealbreakers, and check each against the native/extensible/custom mapping above before committing budget.
  6. Decide early whether ad hoc custom quoting is a real requirement or an edge case, it materially changes scope if it’s core to how your sales team operates.

Frequently asked questions

Do I need Shopify Plus to use Shopify B2B and checkout extensibility?
Yes, native Shopify B2B functionality (company accounts, price lists, B2B payment terms) is a Shopify Plus feature, and full checkout extensibility for custom logic via Shopify Functions is also part of the Plus checkout capabilities.

Can the same store sell to both B2C and B2B customers through one checkout?
Yes, Shopify supports serving both consumer and B2B company-account buyers from a single store and catalogue, with the checkout experience adapting automatically based on whether the buyer is logged in through a company account.

Can wholesale buyers see standard retail pricing alongside their negotiated price?
Not by default, a buyer logged into a company account with an assigned price list sees their negotiated pricing rather than the standard storefront price, though how prices are displayed can be adjusted within theme and extension customisation.

Is a fully custom quote-to-order workflow possible on Shopify B2B?
It’s possible but not native, it typically requires either a dedicated B2B quoting app or custom development connecting a quote request flow to Shopify’s Draft Orders API to convert an approved quote into a payable order.

What happens if a wholesale requirement genuinely isn’t achievable through Shopify B2B?
It’s rare but not impossible for a specific legacy workflow (particularly complex multi-entity approval chains or deep ERP-driven pricing logic) to sit outside what Shopify Functions can currently express, in those cases, the honest approach is scoping a supported workaround rather than forcing an unsupported one that breaks on the next Shopify update.

Ready to scope your Shopify B2B checkout properly?

If you’re planning a wholesale storefront or trying to work out what’s realistically achievable for your buyers’ requirements, book a call with our team and we’ll map your payment terms, pricing structure and approval workflows against what Shopify B2B genuinely supports before you commit to a build.

Niraj Raut
Written by Niraj Raut SEO Manager

Niraj Raut is the SEO Manager and co-founder at Nexly. He helps Australian Shopify and Shopify Plus brands earn durable organic growth through technical SEO, search-led store architecture and content that ranks. He writes about what actually moves rankings for ecommerce.

Connect on LinkedIn
Have a Shopify project? Chat with us, takes 30 seconds.