B2B buyers expect to order now and pay on invoice. Shopify has a native answer on Plus and a custom pattern everywhere else — both end with an approved buyer checking out with no card, and everyone else seeing a normal checkout. Which one applies depends on whether you run B2B companies.
Shopify Plus B2B models each wholesale account as a company with locations. Payment terms — net 7 through net 90 — attach to the company location; buyers from that company see a pay-later option at checkout that places the order with a due date instead of charging a card. Orders carry their terms in admin, due dates are trackable, and no custom code sits in the payment path. If you're on Plus and can model accounts as companies, this is the answer — the build work is catalog assignment, terms setup, and buyer onboarding, not checkout code.
Stores gating by customer instead of company replicate terms in three pieces.
Credit approval is a business decision recorded on the customer — a b2b_credit.approved boolean metafield plus an approval date, written when your credit process clears the account:
mutation SetApprovalStatus($metafields: [MetafieldsSetInput!]!) {
metafieldsSet(metafields: $metafields) {
metafields { id namespace key value }
userErrors { field message }
}
}
Create a manual payment method named "Net 30 Invoice" in payment settings, then register a payment customization Function that hides it unless the buyer's approval metafield is true. The Function's input query reads exactly what the decision needs:
query Input {
cart {
cost { totalAmount { amount } }
buyerIdentity {
customer {
hasTags(tags: ["b2b"]) { hasTag tag }
metafield(namespace: "b2b_credit", key: "approved") { value }
}
}
}
paymentMethods { id name }
}
Approved buyers see "Net 30 Invoice" alongside — or instead of — card options; everyone else never sees it. The Function is registered once via paymentCustomizationCreate and runs inside Shopify's checkout, the same mechanism as hiding Shop Pay Installments conditionally.
A "Net 30 Invoice" order arrives unpaid. A Shopify Flow rule tags it (net30), notifies accounting, and — if you run an ERP or accounting integration — pushes it for invoice generation. Payment is recorded against the order when the invoice settles, so admin reporting stays truthful about outstanding receivables.
Approved accounts should see the terms stated — a storefront banner reading "Net 30 terms applied — no payment required at checkout, invoice follows fulfillment" on cart and checkout. The confusion cost of a silent no-payment checkout is real support volume.
Email Tom whether you're on Plus with B2B companies or gating by customer, plus how credit approval works today — that decides which of the two paths fits.
Email Tom →