Blog Complete Guide to Shopify Wholesale (Without Plus) - Part 3

Adding Net 30 Payment Terms to Shopify Wholesale (Without Plus)

18 min read Advanced

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:

  1. Customer places order (no payment required)
  2. You ship the goods
  3. You send invoice (due date = ship date + 30 days)
  4. 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:

  1. Customer emails you their order (or calls, sends PO via email, etc.)
  2. You create a draft order in Shopify
  3. You mark it as “pending payment” (don’t send invoice yet)
  4. You ship the order
  5. You convert draft to order and send invoice with payment terms
  6. Customer pays via bank transfer, check, or ACH
  7. 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

  1. Go to OrdersDrafts
  2. Click Create order
  3. Search for customer (must exist in customer database)
  4. Add products to order
  5. Apply wholesale discount:
    • Click Add discountCustom amount
    • Enter discount percentage (e.g., 20%)
  6. Add custom line item for shipping (if not using Shopify rates)
  7. Critical: Under Payment, select Mark as pending
  8. Add Note with payment terms: “Net 30 - Due [date]”
  9. Add Tags: payment-terms-net-30 (for filtering later)
  10. Click Save (do NOT send invoice yet)

Step 3: Ship the Order

  1. Fulfill the order (pick, pack, ship)
  2. Mark as fulfilled in Shopify
  3. Note the shipping date (invoice date = shipping date)

Step 4: Send Invoice

  1. Go back to draft order
  2. Click Send invoice
  3. 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!
    
  4. 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:

  1. Go to order in Shopify
  2. Click Mark as paid
  3. Select payment method: “Bank transfer” or “Other”
  4. Add note: “Paid via ACH on [date]”
  5. Remove payment-pending tag
  6. 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:

  1. Customer logs into their account
  2. Adds products to cart
  3. Goes to checkout
  4. Selects payment method: “Net 30 Payment Terms”
  5. Completes order (no payment charged)
  6. You fulfill and ship
  7. You send invoice manually (or automatically via app)
  8. 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:

  1. SettingsPayments
  2. Scroll to Manual payment methods
  3. Click Add manual payment method
  4. Name: “Net 30 Payment Terms”
  5. Instructions: “Payment due 30 days after shipping. Invoice will be sent via email.”
  6. 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:

  1. Shopify Plus - Custom per-store apps can use Functions (requires Plus subscription)
  2. 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:

  1. Create Shopify Function (JavaScript)
  2. Function checks if customer has tag payment-terms-enabled
  3. If yes, show “Net 30 Terms” payment method
  4. 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

  1. Order comes in with payment method “Net 30 Terms”
  2. You fulfill and ship
  3. 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

  1. Set up webhook for orders/create event
  2. Webhook triggers when order placed with “Net 30 Terms”
  3. 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.

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:

  1. Install Sufio app
  2. Customize invoice template:
    • Add “Payment Terms: Net 30”
    • Add “Due Date: [auto-calculated]”
    • Add bank transfer details
  3. Enable auto-send on fulfillment
  4. Tag wholesale customers: payment-terms-enabled

Customer workflow:

  1. Customer checks out with “Net 30 Terms” payment method (via Function or manual method)
  2. Order created in Shopify (unpaid)
  3. You fulfill and ship
  4. Sufio auto-generates invoice PDF
  5. Sufio auto-sends invoice to customer with Net 30 terms
  6. Customer receives invoice, pays within 30 days
  7. 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:

  1. Customer places order on Shopify (with “Net 30 Terms” payment method)
  2. Order syncs to QuickBooks/Xero via integration app
  3. Accounting system creates invoice with Net 30 terms
  4. Accounting system tracks payment due dates, sends reminders
  5. When customer pays, you record payment in accounting system
  6. 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:

  1. Install Webgility app on Shopify
  2. Connect to QuickBooks account
  3. 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-30 tag → “Net 30” terms in QB)
    • Sync on order fulfillment (not on creation)
  4. Set up QuickBooks to send automated payment reminders (7 days before due, on due date, 7 days overdue)

Customer workflow:

  1. Customer checks out with “Net 30 Terms”
  2. You fulfill and ship
  3. Webgility syncs order to QuickBooks
  4. QuickBooks creates invoice with Net 30 terms, due date auto-calculated
  5. QuickBooks auto-sends invoice to customer
  6. QuickBooks sends payment reminders automatically
  7. Customer pays via bank transfer
  8. You record payment in QuickBooks
  9. Webgility syncs payment back to Shopify
  10. 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:

  1. Payment Customization Function - Show/hide “Net 30 Terms” based on customer tags and credit limit
  2. Webhook Handlers - Listen for order creation, fulfillment, payment events
  3. Custom Database - Track invoices, due dates, payment status, credit limits
  4. Automated Workflows - Send invoices, payment reminders, sync to accounting
  5. 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_balance via 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.

Written by Michael Wallbaum

Building a wholesale program?

We're building a Shopify wholesale app based on custom systems we've built for merchants managing $2.3M+ in B2B revenue.