Skip to content
Solutions · B2B checkout

Sell to trade accounts
without breaking DTC.

B2B needs custom fields, payment terms, tax-capture. DTC needs the clean form. Conditional Visibility makes one checkout serve both.

$850
avg B2B AOV
7
field types
31
condition types
1
checkout, two modes
B2B checkout · trade account
trade
Email
accounts@acme-supply.com
Added by Checkout Ninja · trade-only
PO Number *
PO-2026-04812
VAT ID
GB123456789
Cost Center
PROC-EU-04
Payment method · Net-30 active
Credit card
Invoice me
Approval flow
Order reviewed within 4 hrs. Invoice issued on approval.
Submit order · $1,247.50
Where native B2B falls short

Four problems Shopify B2B doesn't solve.

01

PO numbers nowhere

Trade accounts need a PO field. Native Shopify doesn't ship one. Without it, orders get matched manually in your finance system — every single time.

02

VAT/Tax ID required

EU B2B sales require a valid VAT ID at invoice time. Without checkout-level capture, you're chasing emails after every order to stay compliant.

03

Payment terms missing

Net-30 customers don't pay at checkout. They need an 'invoice me' option that bypasses the card form. Native checkout assumes everyone pays now.

04

DTC and B2B mixed

Same checkout serves both retail shoppers and trade accounts. Without conditional visibility, B2B fields show to retail customers (confusing) or hide from B2B (broken).

The B2B stack

Four blocks. One checkout. Two modes.

Compliance
PO Number
PO-2026-04812
VAT
GB123456789

Custom Fields (PO, VAT, Tax ID)

PO Number, VAT ID, Tax ID, Cost Center, Buyer Reference — every field a trade account needs. Validation regex per field type.

Account-gated
If customer.tag includes "trade"
→ show B2B fields
Else: hide for DTC

Conditional Visibility

Show B2B fields only to logged-in customers with the 'trade' tag. Retail customers see the clean checkout, B2B sees the full form.

Net-30 ready
For Net-30 accounts
Credit card
Invoice me

Hide Payment Methods

For approved trade accounts, hide credit-card payment and surface 'Invoice me' instead. Conditional rule based on customer tag.

Approval flow
Approval flow
Order reviewed within 4 hours.

Notice Block (terms)

Pinned banner for trade-account messaging: 'Order will be reviewed within 4 business hours. Invoice issued upon approval.'

B2B implementation playbook

Two days from setup to live B2B checkout.

  1. 01 Day 1, AM

    Tag your B2B accounts

    In Shopify customers, add a 'trade' or 'b2b' tag to every approved trade account. Everything downstream keys off this tag.

  2. 02 Day 1, AM

    Add PO + VAT custom fields

    Configure Custom Field blocks for PO Number, VAT, Tax ID. Set them as required for B2B. Validate VAT format per country.

  3. 03 Day 1, PM

    Wrap in Conditional Visibility

    All B2B fields use Conditional Visibility with the rule 'customer has tag: trade'. Retail customers never see them.

  4. 04 Day 2

    Hide cards for Net-30

    Configure Hide Payment Methods to remove credit card for customers tagged 'net30'. Surface 'Invoice me' as the only option.

FAQ · B2B

B2B-specific questions.

Four things wholesale merchants ask before setting up. If your B2B model is more complex (multi-location, multi-currency, multi-tenant), book a setup call.

Get a B2B setup call
  • Do I need Shopify B2B (the new product) for this?

    No. These blocks work on standard Shopify Plus checkout, whether or not you've enabled the Shopify B2B addon. If you ARE using Shopify B2B, the blocks layer on top — your existing company/location structure stays intact, and our blocks add the field/visibility layer.

  • How do I handle 'net-30 approved' vs 'pending approval' customers?

    Tag-based. Customers tagged 'net30-approved' see Invoice option only. Customers tagged 'pending' see a Notice block saying 'Account under review — you can browse but not order'. Customers with no tag see standard DTC checkout. All driven by Conditional Visibility rules.

  • Can I capture cost-center or department codes?

    Yes — Custom Field block supports unlimited text fields. Most B2B merchants add: PO Number (required), Cost Center (optional), Buyer Reference (optional), Internal Notes (optional). Each can have its own validation regex.

  • What about wholesale pricing — does that work here?

    Pricing is upstream of checkout. We layer fields and visibility onto whatever pricing Shopify renders. Most merchants use Shopify's B2B catalogs + price lists for the pricing side, and Checkout Ninja for the field/visibility/messaging side. Clean separation of concerns.