Adding Net 30 Payment Terms to Shopify Wholesale (Without Plus)
In Part 1 and Part 2, we built wholesale pricing systems using tags, discount codes, and customer segments.
But you’re still missing the #1 feature that separates retail from B2B:
Payment terms.
Retail customers pay upfront with credit cards. B2B customers expect to receive goods first, then pay 30-90 days later via invoice.
Real merchant challenges:
wholesale customers will not be invoiced until the order ships, so the wholesale experience needs to allow for terms and invoices
select B2B PO-based customers on 30 day terms wish to submit a singular invoice covering all open invoices generated the previous month
This is standard B2B practice. Your wholesale customers expect it. And Shopify’s native checkout is designed for the exact opposite: immediate credit card payment.
In this guide, I’ll show you:
- How Net 30/60/90 payment terms actually work
- 5 approaches to implementing payment terms on Shopify
- What works (and what breaks) at each level
- When to use manual processes vs apps vs custom development
I’ve built this 7 times for merchants managing $2.3M+ in B2B revenue. Here’s what actually works.
What Are Net Payment Terms?
Net 30 means: “Payment is due 30 days after the invoice date.”
How it works in B2B:
- Customer places order (no payment required)
- You ship the goods
- You send invoice (due date = ship date + 30 days)
- Customer pays invoice within 30 days (usually via bank transfer, check, or ACH)
Common terms:
- Net 30 - Payment due in 30 days
- Net 60 - Payment due in 60 days
- Net 90 - Payment due in 90 days
- Net 15 - Payment due in 15 days (less common)
- 2/10 Net 30 - 2% discount if paid within 10 days, otherwise due in 30 days
Why B2B customers expect this:
- Cash flow management (they don’t pay until they’ve received/sold goods)
- Purchase order (PO) workflow (orders go through approval processes)
- Established business practice (this is how B2B has worked for decades)
- Volume orders (large orders require financing flexibility)
Why Shopify Makes This Hard
Shopify is designed for D2C retail:
- Checkout requires immediate payment
- No concept of “invoice after shipping”
- No built-in invoice generation with payment terms
- No purchase order tracking
- No credit limit management
Shopify Plus B2B features solve this:
- Payment terms on company accounts
- Invoice after shipping
- Purchase order fields
- Credit limit management
The problem: Shopify Plus costs $2,000+/month.
As merchants consistently tell us:
Shopify Plus is just too expensive – i.e. $30,000 per year
So let’s build it without Plus.
Who This Guide Is For
This approach works if you have:
- B2B customers who expect payment terms (Net 30/60/90)
- Established customers with good credit (you trust them to pay)
- 5-50 wholesale customers (manual approaches scale to ~50)
- Time to manage invoices and payment tracking
- Basic accounting system (QuickBooks, Xero, or even spreadsheets)
This approach DOESN’T work if you need:
- Automated credit checks for new customers
- Integration with credit agencies (Dun & Bradstreet, Experian)
- Collections automation for overdue invoices
- Complex approval workflows (multi-level PO approvals)
- 100+ wholesale customers with payment terms
Sound familiar? Let’s dive in.
Approach 1: Manual Draft Orders (Free, Time-Intensive)
The simplest approach: Use Shopify’s Draft Orders feature to manually create invoices.
How It Works
Customer workflow:
- Customer emails you their order (or calls, sends PO via email, etc.)
- You create a draft order in Shopify
- You mark it as “pending payment” (don’t send invoice yet)
- You ship the order
- You convert draft to order and send invoice with payment terms
- Customer pays via bank transfer, check, or ACH
- You manually mark order as paid in Shopify
Step-by-Step Process
Step 1: Receive Order from Customer
Customer sends you an order via:
- Email (“We’d like to order 50 units of SKU-123”)
- Phone call
- Purchase order document (PDF or paper)
- Dedicated order form on your site
Step 2: Create Draft Order in Shopify
- Go to Orders → Drafts
- Click Create order
- Search for customer (must exist in customer database)
- Add products to order
- Apply wholesale discount:
- Click Add discount → Custom amount
- Enter discount percentage (e.g., 20%)
- Add custom line item for shipping (if not using Shopify rates)
- Critical: Under Payment, select Mark as pending
- Add Note with payment terms: “Net 30 - Due [date]”
- Add Tags:
payment-terms-net-30(for filtering later) - Click Save (do NOT send invoice yet)
Step 3: Ship the Order
- Fulfill the order (pick, pack, ship)
- Mark as fulfilled in Shopify
- Note the shipping date (invoice date = shipping date)
Step 4: Send Invoice
- Go back to draft order
- Click Send invoice
- Customize invoice email:
Hi [Customer Name], Your order has shipped! Here's your invoice: Invoice #[Number] Total: $[Amount] Payment Terms: Net 30 Due Date: [Shipping Date + 30 days] Please remit payment via: - Bank transfer: [Account details] - Check payable to: [Company name] Thank you! - Send invoice
Step 5: Track Payment
Manual tracking options:
Option A: Spreadsheet
- Create Google Sheet or Excel file
- Columns: Invoice #, Customer, Amount, Invoice Date, Due Date, Paid?, Payment Date
- Update manually when payments received
Option B: Shopify Order Tags
- Tag unpaid invoices:
payment-pending - Tag overdue invoices:
payment-overdue - Filter orders by tags to see what’s outstanding
Option C: Accounting Software
- Export Shopify orders to QuickBooks/Xero
- Track invoices and payments in accounting system
- Manually sync back to Shopify when paid
Step 6: Record Payment
When customer pays:
- Go to order in Shopify
- Click Mark as paid
- Select payment method: “Bank transfer” or “Other”
- Add note: “Paid via ACH on [date]”
- Remove
payment-pendingtag - Update spreadsheet or accounting system
What Works
- ✅ Zero cost - Uses built-in Shopify features
- ✅ Full control - You manually review every order
- ✅ Flexible terms - Can customize per customer
- ✅ Works with existing accounting - Export to QuickBooks/Xero
What Breaks
- ❌ Completely manual - Every step requires human intervention
- ❌ No self-service - Customers can’t place orders online
- ❌ Doesn’t scale - Breaks down at 10+ orders/week
- ❌ No payment reminders - You manually chase overdue invoices
- ❌ No credit limits - No automated enforcement of customer credit
- ❌ Time-consuming - 15-30 min per order (create draft, ship, invoice, track, reconcile)
🔍 Reality check: This works if you have 5-10 wholesale customers placing monthly orders. Beyond that, you’ll spend 10+ hours/week on manual order processing.
Annual time cost:
- 10 orders/week × 20 minutes each = 200 min/week = ~170 hours/year
- At $50/hour opportunity cost = $8,500/year
Approach 2: Custom Payment Method at Checkout
The next step: Add a custom payment method (“Net 30 Terms”) at checkout that allows customers to self-serve.
How It Works
Customer workflow:
- Customer logs into their account
- Adds products to cart
- Goes to checkout
- Selects payment method: “Net 30 Payment Terms”
- Completes order (no payment charged)
- You fulfill and ship
- You send invoice manually (or automatically via app)
- Customer pays within 30 days
Implementation Options
Option A: Manual Payment Method (Shopify Plus Required)
Shopify Plus allows you to enable “Manual payment methods” in checkout:
- Settings → Payments
- Scroll to Manual payment methods
- Click Add manual payment method
- Name: “Net 30 Payment Terms”
- Instructions: “Payment due 30 days after shipping. Invoice will be sent via email.”
- Save
Limitation: This shows the payment method to ALL customers, not just wholesale.
Option B: Payment Customization Functions (Shopify Functions)
CRITICAL: Shopify Functions Availability
Shopify Functions for payment customization are available in two ways:
- Shopify Plus - Custom per-store apps can use Functions (requires Plus subscription)
- App Store Apps - Apps distributed through Shopify App Store can use Functions on ANY plan
What this means:
- If you’re building a custom app for your own store: Requires Shopify Plus
- If you install an app from the App Store that uses Functions: Works on Basic/Shopify/Advanced plans
Shopify Functions let you show/hide payment methods based on customer tags.
How it works:
- Create Shopify Function (JavaScript)
- Function checks if customer has tag
payment-terms-enabled - If yes, show “Net 30 Terms” payment method
- If no, hide it (only show credit card)
Example Function Logic:
export function run(input) {
const customerTags = input.cart.buyerIdentity?.customer?.tags || [];
const hasPaymentTerms = customerTags.includes('payment-terms-enabled');
if (!hasPaymentTerms) {
// Hide manual payment methods for non-wholesale customers
return {
operations: input.paymentMethods
.filter(method => method.type === 'manualPayment')
.map(method => ({
hide: {
paymentMethodId: method.id
}
}))
};
}
// Show all payment methods for wholesale customers
return { operations: [] };
}
Deploy via Shopify CLI:
shopify app function create
# Select "Payment customization"
# Write function code
shopify app deploy
IMPORTANT: This requires either:
- Shopify Plus (for custom per-store app deployment)
- OR App Store distribution (works on all plans, but more complex setup)
What this does:
- Retail customers (no tag) only see credit card payment
- Wholesale customers (tagged
payment-terms-enabled) see “Net 30 Terms” option - Self-service checkout for wholesale customers
Invoicing After Checkout
Problem: Customer completes checkout with “Net 30 Terms” but Shopify doesn’t automatically send an invoice.
Solutions:
Option A: Manual Invoice Sending
- Order comes in with payment method “Net 30 Terms”
- You fulfill and ship
- You manually send invoice via email (or Shopify’s invoice feature)
Option B: Automated Invoice via App
- Order Printer app - Auto-generate PDF invoices on order creation
- Sufio app - Professional invoices with payment terms, auto-sent on fulfillment
- Bold Invoices - Customizable invoice templates, auto-send on ship
Option C: Webhook + Custom Integration
- Set up webhook for
orders/createevent - Webhook triggers when order placed with “Net 30 Terms”
- Your script:
- Waits for fulfillment
- Generates invoice PDF
- Sends email with payment terms
- Tracks in accounting system
What Works
- ✅ Self-service checkout - Customers can order online
- ✅ Secure - Only tagged customers see Net 30 option (with Functions)
- ✅ Scales better - Less manual order creation
- ✅ Works via App Store apps - App Store apps using Functions work on all plans
What Breaks
- ❌ DIY requires Shopify Plus - Custom per-store apps need Plus for payment Functions
- ❌ App Store distribution required - Non-Plus merchants need to install an app (can’t build custom for own store)
- ❌ Manual invoice sending - Unless you add an app or integration
- ❌ No payment tracking - Still need spreadsheet or accounting system
- ❌ No automated reminders - You manually follow up on overdue invoices
- ❌ No credit limits - Customers can order unlimited amounts
🔍 Reality check:
For merchants (not developers):
- Install a wholesale app from the App Store that handles payment terms (works on all plans)
- Cheaper and faster than DIY development
For developers:
- Building for your own store requires Shopify Plus
- OR build as App Store app (more complex, requires Partner account, but works on all plans)
Invoicing and payment tracking still manual unless you add apps.
Approach 3: Apps for Payment Terms
The middle ground: Use Shopify apps to automate invoicing, payment tracking, and reminders.
Popular Apps
1. Sufio (Professional Invoices)
- Cost: ~$15-30/month
- Features:
- Auto-generate invoices on order fulfillment
- Customizable invoice templates (add “Net 30” terms)
- Auto-send invoices via email
- Multi-currency and VAT support
- Limitation: No payment tracking or reminders
2. Bold Invoices
- Cost: ~$20/month
- Features:
- Invoice templates with custom terms
- Scheduled invoice sending (e.g., send 1 day after fulfillment)
- PDF generation
- Limitation: No payment tracking
3. Wholesale Suite Apps (Wholesale Pricing Discount, B2B/Wholesale Solution)
- Cost: ~$50-100/month
- Features:
- Net payment terms at checkout
- Customer-specific payment terms (Alice gets Net 30, Bob gets Net 60)
- Invoice generation
- Some have basic payment tracking
- Limitation: Payment tracking is basic, no collections automation
4. TradeGecko / Cin7 (Inventory + Invoicing)
- Cost: ~$300+/month
- Features:
- Full B2B order management
- Payment terms management
- Payment tracking and aging reports
- Integration with accounting (QuickBooks, Xero)
- Purchase order management
- Limitation: Expensive, overkill for small operations
How It Works (Example: Sufio + Manual Tracking)
Setup:
- Install Sufio app
- Customize invoice template:
- Add “Payment Terms: Net 30”
- Add “Due Date: [auto-calculated]”
- Add bank transfer details
- Enable auto-send on fulfillment
- Tag wholesale customers:
payment-terms-enabled
Customer workflow:
- Customer checks out with “Net 30 Terms” payment method (via Function or manual method)
- Order created in Shopify (unpaid)
- You fulfill and ship
- Sufio auto-generates invoice PDF
- Sufio auto-sends invoice to customer with Net 30 terms
- Customer receives invoice, pays within 30 days
- You manually mark order as paid in Shopify when payment received
Payment tracking:
- Use Shopify order tags:
payment-pending,payment-overdue - Export orders to accounting system (QuickBooks/Xero)
- Use spreadsheet for aging report (invoices 0-30 days, 30-60 days, 60+ days)
What Works
- ✅ Automated invoicing - Invoices sent automatically on fulfillment
- ✅ Professional invoices - Custom templates, multi-currency, VAT
- ✅ Saves time - No manual invoice creation
- ✅ Affordable - $15-50/month for most apps
What Breaks
- ❌ No payment tracking - Still manual (spreadsheet or accounting system)
- ❌ No automated reminders - You manually email overdue customers
- ❌ No credit limits - Can’t block customers who exceed credit
- ❌ Limited PO support - Most apps don’t track purchase orders
- ❌ Monthly cost - $15-100/month adds up
🔍 Reality check: Apps handle invoicing well but leave payment tracking manual. Good for 10-50 customers if you’re okay with spreadsheet-based tracking.
Annual cost:
- App: $30/month × 12 = $360/year
- Manual payment tracking: 5 hours/month × 12 × $50/hour = $3,000/year
- Total: $3,360/year
Approach 4: Full Accounting Integration (QuickBooks, Xero)
The next level: Sync Shopify with your accounting system to manage payment terms natively.
How It Works
Accounting-first workflow:
- Customer places order on Shopify (with “Net 30 Terms” payment method)
- Order syncs to QuickBooks/Xero via integration app
- Accounting system creates invoice with Net 30 terms
- Accounting system tracks payment due dates, sends reminders
- When customer pays, you record payment in accounting system
- Payment status syncs back to Shopify (order marked as paid)
Integration Apps
1. Webgility
- Cost: ~$100-200/month
- Features:
- Sync Shopify orders to QuickBooks/Xero
- Auto-create invoices with payment terms
- Two-way sync (payment in QB → marks Shopify order as paid)
- Inventory sync
- Customer sync
2. OneSaas
- Cost: ~$30-50/month
- Features:
- Shopify → QuickBooks/Xero sync
- Order sync with invoice creation
- Payment sync
- Limitation: One-way sync (Shopify → accounting only)
3. Sync with Connex
- Cost: ~$50-150/month
- Features:
- Two-way sync
- Custom field mapping (e.g., payment terms, PO numbers)
- Payment tracking
- Automated workflows
4. Native Xero Integration (Shopify App)
- Cost: Free
- Features:
- Basic order sync to Xero
- Invoice creation
- Limitation: Manual payment tracking, no automation
Workflow Example (Webgility + QuickBooks)
Setup:
- Install Webgility app on Shopify
- Connect to QuickBooks account
- Configure sync rules:
- Orders with payment method “Net 30 Terms” → Create QB invoice (not sales receipt)
- Map customer tags to QB terms (e.g.,
net-30tag → “Net 30” terms in QB) - Sync on order fulfillment (not on creation)
- Set up QuickBooks to send automated payment reminders (7 days before due, on due date, 7 days overdue)
Customer workflow:
- Customer checks out with “Net 30 Terms”
- You fulfill and ship
- Webgility syncs order to QuickBooks
- QuickBooks creates invoice with Net 30 terms, due date auto-calculated
- QuickBooks auto-sends invoice to customer
- QuickBooks sends payment reminders automatically
- Customer pays via bank transfer
- You record payment in QuickBooks
- Webgility syncs payment back to Shopify
- Shopify order marked as paid
What Works
- ✅ Fully automated invoicing - Accounting system handles it
- ✅ Payment tracking - Aging reports, overdue tracking built-in
- ✅ Automated reminders - QuickBooks/Xero send payment reminders
- ✅ Credit management - Can set credit limits per customer in accounting system
- ✅ Professional accounting - Everything in one place (invoices, payments, financial reports)
- ✅ Tax compliance - Accounting system handles sales tax, VAT
What Breaks
- ❌ Expensive - $50-200/month for integration app
- ❌ Complex setup - 4-8 hours to configure properly
- ❌ Accounting knowledge required - Need to understand QB/Xero
- ❌ Sync issues - Two systems can get out of sync, requires monitoring
- ❌ Still no credit enforcement - Customers can still checkout even if over credit limit (unless you build custom Function)
🔍 Reality check: This is the best option for 30-100+ wholesale customers. Worth the cost if you’re doing serious B2B volume.
Annual cost:
- Integration app: $100/month × 12 = $1,200/year
- QuickBooks: $30/month × 12 = $360/year
- Setup time: 8 hours × $50/hour = $400
- Total first year: $1,960
- Ongoing: $1,560/year
Time saved:
- Automated invoicing: ~5 hours/month
- Automated reminders: ~3 hours/month
- Payment tracking: ~4 hours/month
- Total: 12 hours/month = 144 hours/year × $50/hour = $7,200/year saved
Net benefit: $5,240/year (savings minus cost)
Approach 5: Custom Development with Shopify Functions
The advanced option: Build a custom payment terms system using Shopify Functions, webhooks, and a database.
CRITICAL: This approach requires Shopify Plus if building for your own store. Custom per-store apps can only use Shopify Functions for payment/shipping customization on Plus. Alternatively, build as an App Store app (works on all plans, but requires Partner account and App Store submission).
How It Works
Architecture:
- Payment Customization Function - Show/hide “Net 30 Terms” based on customer tags and credit limit
- Webhook Handlers - Listen for order creation, fulfillment, payment events
- Custom Database - Track invoices, due dates, payment status, credit limits
- Automated Workflows - Send invoices, payment reminders, sync to accounting
- Admin Dashboard - View aging reports, manage credit limits, track payments
What You Can Build
Features:
- Customer-specific payment terms (Alice gets Net 30, Bob gets Net 60)
- Credit limits (block checkout if customer exceeds limit)
- Automated invoice generation and sending
- Automated payment reminders (7 days before, on due date, 7 days after)
- Aging reports (0-30 days, 30-60 days, 60-90 days, 90+ days)
- Purchase order tracking
- Combined monthly invoicing (all orders from month X on one invoice)
- Integration with accounting systems (QuickBooks, Xero)
Example: Credit Limit Enforcement
Payment Customization Function:
export function run(input) {
const customer = input.cart.buyerIdentity?.customer;
if (!customer) return { operations: [] };
const customerTags = customer.tags || [];
const hasPaymentTerms = customerTags.includes('payment-terms-enabled');
if (!hasPaymentTerms) {
// Hide Net 30 payment method for retail customers
return hideManualPayments(input.paymentMethods);
}
// Fetch customer's credit limit and outstanding balance from metafield
const creditLimit = parseFloat(customer.metafield?.value || '0');
const outstandingBalance = parseFloat(customer.metafields?.find(m => m.key === 'outstanding_balance')?.value || '0');
const cartTotal = input.cart.cost.totalAmount.amount;
const totalOwed = outstandingBalance + parseFloat(cartTotal);
if (totalOwed > creditLimit) {
// Customer exceeds credit limit, hide Net 30 payment method
return hideManualPayments(input.paymentMethods);
}
// Customer within credit limit, show Net 30 payment method
return { operations: [] };
}
function hideManualPayments(paymentMethods) {
return {
operations: paymentMethods
.filter(method => method.type === 'manualPayment')
.map(method => ({
hide: { paymentMethodId: method.id }
}))
};
}
Backend System:
- Custom Rails/Node.js app
- Tracks outstanding invoices per customer
- Calculates total owed
- Updates customer metafield
outstanding_balancevia Shopify API - Function reads metafield in real-time at checkout
What Works
- ✅ Full control - Build exactly what you need
- ✅ Credit limit enforcement - Block checkout if customer over limit
- ✅ Automated everything - Invoicing, reminders, tracking, reporting
- ✅ Custom workflows - Combined monthly invoicing, PO tracking, approval workflows
- ✅ Works via App Store - If distributed via App Store, works on all plans
What Breaks
- ❌ Requires Shopify Plus - If building custom app for your own store
- ❌ High upfront cost - $10,000-25,000 for custom development + $2,000/month for Plus
- ❌ Requires developer - Can’t DIY this unless you’re technical
- ❌ Maintenance - Need ongoing dev support for changes, Shopify API updates
- ❌ Hosting costs - Need to host custom backend ($20-100/month)
- ❌ App Store complexity - If avoiding Plus, need to distribute via App Store (Partner account, review process)
🔍 Reality check: This only makes sense if:
- You’re already on Shopify Plus (or willing to upgrade for $2,000/month)
- You have 50+ wholesale customers with complex needs
- Payment terms are core to your business (>30% of revenue)
- You’ve outgrown apps and need custom workflows
- You have budget ($15,000-30,000 + Plus costs)
Total cost of ownership (5 years) - Custom App on Plus:
- Development: $20,000 (one-time)
- Shopify Plus: $2,000/month × 60 = $120,000
- Hosting: $50/month × 60 = $3,000
- Maintenance: $2,000/year × 5 = $10,000
- Total: $153,000 over 5 years = $30,600/year
Compare to wholesale apps:
- Wholesale App: $100/month × 12 × 5 = $6,000 over 5 years = $1,200/year
- Custom on Plus: $153,000 over 5 years = $30,600/year
- Apps save $147,000 vs custom development on Plus
Reality: Unless you’re already on Plus for other reasons, apps are far more cost-effective.
The Real Cost Breakdown
Let’s compare total cost of ownership for 30 wholesale customers with Net 30 terms:
Option 1: Manual Draft Orders
- Cost: $0/month
- Time: 15 hours/month (order entry, invoicing, tracking, reconciliation)
- Total annual cost: 180 hours × $50/hour = $9,000/year
Option 2: Payment Method + Manual Invoicing
- Cost: $0/month (if you build Function yourself) or $1,000 one-time (hire dev)
- Time: 8 hours/month (invoice sending, payment tracking)
- Total annual cost (DIY): 96 hours × $50/hour = $4,800/year
- Total annual cost (hired dev): $1,000 + $4,800 = $5,800 first year, $4,800/year after
Option 3: Apps (Sufio + Manual Tracking)
- Cost: $30/month
- Time: 5 hours/month (payment tracking, reminders)
- Total annual cost: $360 + (60 hours × $50/hour) = $3,360/year
Option 4: Accounting Integration (Webgility + QuickBooks)
- Cost: $130/month (app + QB)
- Time: 2 hours/month (monitoring, exception handling)
- Total annual cost: $1,560 + (24 hours × $50/hour) = $2,760/year
Option 5: Custom Development (Requires Plus)
- Cost: $20,000 one-time + $2,000/month Plus + $50/month hosting + $2,000/year maintenance
- Time: 1 hour/month (admin tasks)
- Total annual cost (first year): $20,000 + $24,000 + $600 + $2,000 + (12 hours × $50/hour) = $47,200 first year
- Total annual cost (ongoing): $24,000 + $600 + $2,000 + $600 = $27,200/year
Option 6: Shopify Plus
- Cost: $2,000/month
- Time: 2 hours/month (admin tasks)
- Total annual cost: $24,000 + (24 hours × $50/hour) = $25,200/year
Winner for 30 customers: Accounting integration ($2,760/year) or Apps ($3,360/year)
Winner for 100+ customers: Accounting integration ($2,760/year) or comprehensive apps ($3,360/year)
Custom development only makes sense if: You’re already on Plus for other reasons (in which case custom development is $3,200/year vs $27,200/year total)
When You Need More Than This
You’ll know you need to upgrade when:
Signal 1: Manual payment tracking becomes a bottleneck
- Spending >10 hours/week chasing payments
- Losing track of who owes what
- Cash flow suffering from late payments
Signal 2: Credit risk increases
- Customers placing large orders without credit checks
- Need to enforce credit limits automatically
- Need better collections process
Signal 3: Customer complaints
- “I didn’t receive an invoice”
- “I forgot when payment was due”
- “Can I get a combined monthly invoice?”
Signal 4: Accounting headaches
- Manual reconciliation taking hours
- QuickBooks/Xero out of sync with Shopify
- Tax compliance issues (missing VAT numbers, incorrect tax treatment)
Signal 5: Growth
- 50+ wholesale customers (manual tracking unsustainable)
- 20+ invoices/week (apps start to struggle)
- Need for complex workflows (approval processes, multi-currency, combined invoicing)
At this point, you need:
- Shopify Plus B2B (if revenue >$1M and you need enterprise features)
- Comprehensive wholesale app with payment terms, credit limits, and accounting integration
- Enterprise B2B platform (TradeGecko, Cin7, etc.) if you need full ERP-level functionality
What We’re Building
After building 7 custom wholesale systems with payment terms on Shopify Plus, we’re packaging that expertise into an App Store distributed app:
Core features:
- ✅ Net 30/60/90 payment terms at checkout (customer-specific) using Shopify Functions
- ✅ Credit limits with automatic enforcement
- ✅ Automated invoice generation and sending
- ✅ Payment reminders (configurable schedule)
- ✅ Aging reports and payment tracking
- ✅ Purchase order fields and tracking
- ✅ QuickBooks/Xero integration
- ✅ Works on all Shopify plans (App Store distributed, no Plus required)
Target pricing: $75-125/month (based on order volume)
Setup time: Hours, not weeks
Share your payment terms challenges and get early access.
Next Steps
If manual draft orders work for you:
- You have <10 wholesale customers
- Monthly orders (not weekly)
- Comfortable with manual tracking
- Budget: $0/month
Keep using this approach! It’s free and works at small scale.
If you’re ready to automate:
→ Start with apps ($30-100/month) - Sufio for invoicing, accounting integration for tracking → Move to accounting integration ($130/month) when you hit 20+ customers → Consider custom development ($20K+) if you have 50+ customers and complex needs
If you’re hitting limits:
→ Part 4: Customizing Checkout for Wholesale (Coming soon) Learn how to hide credit card payments for wholesale customers, customize shipping methods, and create a true B2B checkout with Shopify Functions.
→ See what we’re building Built by developers who’ve done this 7 times. Get early access.
Questions?
Questions about wholesale? Get help with your setup →
Struggling with payment terms setup? Want to discuss credit limits or accounting integration? Share your feedback via email or schedule a quick call.
Previous: Part 2: Adding Multi-Tier Wholesale Pricing Next: Part 4: Customizing Checkout for Wholesale (Coming soon)
About the author: Michael Wallbaum has built custom wholesale systems for 7 Shopify merchants since 2019, managing over $2.3M in wholesale revenue. He’s currently building a wholesale app for Shopify merchants who’ve outgrown manual processes but don’t need Shopify Plus. Learn more.