# switch theme Hire me on Upwork
← all plugins
$ wp plugin activate invoice-bulk-pay

Invoice Bulk Pay

client: US party-supplies e-commerce retailer (confidential) context: Built at WebbDesignz (white-label) shipped: 2026 WooCommerce payments

A bulk-payment console for WooCommerce: one card payment settles any set of NET-30 invoices, and every invoice marks itself paid with the gateway transaction reference.

stack: WordPress WooCommerce (HPOS) PHP WooPayments/Stripe PayPal
🔒wp-admin — invoice-bulk-pay
Invoice Bulk Pay — Picking the invoices one card covers, with a live running total (sample data)
# Picking the invoices one card covers, with a live running total (sample data)
// how it was engineered

From problem to production.

The problem, the build, and what it changed.

  1. 01

    The problem

    The client's trade customers order on NET-30 terms and pay later — often one head office settling many invoices, across several store locations, with a single virtual card. Staff opened every invoice's payment page separately, typed the same card number each time, then manually changed each order's status. Ten invoices meant ten card entries and ten status edits. Worse, WooCommerce refused payment entirely if any product in an old invoice had sold out since the order was placed — blocking money for goods that had already shipped.

  2. 02

    The solution

    A bulk-payment console inside WooCommerce. Office staff tick all the invoices one card covers — even across different customer emails and locations — and the plugin builds one itemized payment page. The card is charged once through the store's normal payment gateway; every covered invoice is then marked paid automatically, carrying the card's transaction reference, and moved to Completed. The payment link can also be emailed to the customer's accounts-payable office to enter the card themselves.

  3. 03

    Key features

    • One payment, many invoices — any set of outstanding invoices becomes a single itemized payment page
    • Everything settles itself — each invoice marked paid with the gateway transaction reference, no manual status edits
    • Payment-evidence gate — invoices settle only when the gateway confirms money moved, or a manager logs an offline payment under their own name
    • Honest reporting — the collection record is excluded from revenue analytics, so the money is counted once
    • Automatic audit trail — every invoice notes which bulk payment covered it; every skip and mismatch is logged
    • Payer-friendly — unpaid groups reserve their invoices against double-charging and cancel themselves after 7 days
    • The out-of-stock fix — payment pages no longer refuse payment because stock ran out after the order was placed
  4. 04

    Engineering & hardening

    Settlement is crash-safe and race-safe: it resumes if interrupted mid-batch, is idempotent under gateway webhook races, and self-heals via cron — no double-charges, no double-credits, no stranded invoices. No card data ever touches the plugin; it integrates through standard gateway flows with zero external services or dependencies. Hardened through three independent audit passes (security, payments correctness, code review) plus end-to-end verification before delivery.

  5. 05

    Outcome

    Ten invoices are now one card entry instead of ten, with zero manual status edits. Money for goods that had already shipped stopped being blocked by later stock-outs, and every settlement carries its own audit trail down to the transaction reference.

$ ls ~/screenshots

Inside the plugin.

The screens behind the story above — real production captures, sample data. Click any to zoom.

🔒wp-admin — invoice-bulk-pay
Invoice Bulk Pay — The created payment group awaiting card entry, with the shareable payment link
# The created payment group awaiting card entry, with the shareable payment link
🔒wp-admin — invoice-bulk-pay
Invoice Bulk Pay — The settled-payments history
# The settled-payments history
🔒wp-admin — invoice-bulk-pay
Invoice Bulk Pay — An invoice after settlement: Completed, paid date recorded
# An invoice after settlement: Completed, paid date recorded
🔒wp-admin — invoice-bulk-pay
Invoice Bulk Pay — The automatic order-note trail with the transaction reference
# The automatic order-note trail with the transaction reference
let's-build

Need a plugin like Invoice Bulk Pay?

The same engineering — idempotent, hardened, documented — pointed at your business problem. You own the code outright.