Build a credit-approval flag stored on each B2B customer account. Use a Checkout UI extension to hide the payment step for approved customers. Display net 30 terms and "no payment required" messaging on cart and checkout. Route approved orders through Shopify Flow to the accounting backend, tagged for invoice processing.
A mid-market B2B wholesale merchant on Plus needs to surface net 30 payment terms at checkout—but only for customers who have passed internal credit approval. Approved accounts should complete checkout without entering payment information, with order details routed to accounting for invoice generation.
Four pieces
B2B / Wholesale
Approval Metafield
Adds a credit-approved flag and terms date to each B2B customer so checkout knows who qualifies for net 30.
# Function input query — Payment Customization
query Input {
cart {
buyerIdentity {
customer {
id
metafield(namespace: "b2b_credit", key: "approved") {
value
}
}
}
}
}
Requires Shopify Plus Checkout Extensions. The function returns the approval flag; your handler hides payment UI if true.
Storefront
Net 30 Terms Display
Shows net 30 payment terms and no-payment-required messaging on cart and checkout pages for approved B2B accounts.
Theme snippet + section
theme/snippets/b2b-net30-terms.liquid, included in cart/checkout templateliquid
{% if customer and customer.metafields.b2b_credit.approved.value == true %}
<div class="b2b-net30-banner">
<p>
<strong>Net 30 Terms Applied</strong><br>
Your account is credit-approved. No payment required at checkout.
Invoice will be sent to {{ customer.email }} after fulfillment.
</p>
</div>
{% endif %}
Include this snippet in your cart page and checkout page templates. Style the banner to match your site.
Operations
Approved Order Router
Watches for orders from approved customers and routes them to your accounting system, tagged for manual invoice generation.
Shopify Flow + backend webhook
Shopify Flow editor: When → Thenflow
Trigger: When an order is created
Condition:
- Customer metafield 'b2b_credit.approved' equals true
Then:
1. Add tag 'b2b_net30_no_payment' to order
2. Send to Zapier or Make webhook:
- Payload: order ID, customer email, billing/shipping address, line items, total
3. Send notification to accounting@company.com with order details link
Adjust the webhook URL to your accounting system (QuickBooks, NetSuite, etc). Tag ensures you can filter approved orders in your admin.
Got a similar problem?
Sketch your build in 30 seconds — voice, type, or attach a screenshot.