WooCommerce Invoicing Solutions — Plugin vs. Custom Build
When a WooCommerce B2B site needs to generate and track invoices for offline payment methods (check, bank transfer, COD), there are two practical paths: a third-party QuickBooks integration plugin or a custom-built PHP solution. Each has distinct trade-offs in cost, control, and long-term flexibility.
The Problem
WooCommerce treats offline payment orders as fulfilled from the platform's perspective once the order is placed — but the business still needs to:
- Generate a formal invoice and deliver it to the customer
- Track whether that invoice has been paid
- Sync the transaction into their accounting system (typically QuickBooks)
Without a solution, staff must manually cross-reference WooCommerce orders with their accounting system, which breaks down at scale.
Option 1 — QuickBooks Integration Plugin
Cost: ~$100/year (recurring)
A pre-built WooCommerce–QuickBooks integration plugin (several exist in the WooCommerce marketplace) can automatically send invoices for unpaid orders. Key features typically include:
- Automatic invoice generation triggered on order placement
- Email delivery of the invoice to the customer
- Syncing order data into QuickBooks Online
Pros:
- Fast to deploy — minimal configuration required
- No custom development needed
- Maintained by the plugin vendor
Cons:
- Annual recurring cost
- Limited control over invoice logic, formatting, and edge cases
- Dependent on the vendor's continued support and compatibility with WooCommerce updates
- Harder to adapt if business rules change
Option 2 — Custom PHP Plugin
Cost: ~$300 one-time build
A custom plugin connects WooCommerce to QuickBooks Online via the QuickBooks API. The general architecture:
- Open the WooCommerce REST API on the site
- Register a QuickBooks Online Developer App to obtain API credentials
- Write a plugin (~300–400 lines of PHP) that listens for the
woocommerce_order_status_completedhook and pushes order data to QuickBooks - QuickBooks creates the invoice; optionally, the invoice is pulled back and emailed from WooCommerce
Pros:
- One-time cost — no recurring fees
- Full control over invoice logic, field mapping, and triggers
- Easily extended to handle edge cases (e.g., per-kitchen invoicing, custom PO fields, per-customer rules)
- Can be adapted without waiting on a vendor
Cons:
- Requires initial development time (~2–3 hours to build and configure API access)
- Client must provide QuickBooks API access
- Ongoing maintenance responsibility falls on the development team
Recommendation Framework
| Situation | Recommended Option |
|---|---|
| Single site, simple invoicing needs, low budget | Plugin ($100/yr) |
| Multiple sites or complex business rules | Custom build ($300 one-time) |
| Client has edge cases (per-location invoicing, PO tracking, etc.) | Custom build — extensible to handle multiple edge cases |
| Client wants full ownership and no vendor dependency | Custom build |
For clients with growing B2B complexity — such as per-customer invoice rules, purchase order fields, or multi-location billing — the custom build pays for itself quickly and avoids the compounding cost and rigidity of a third-party plugin.
Implementation Notes
- The custom plugin approach pairs well with other WooCommerce customizations (e.g., the [1]) since all logic lives in version-controlled, site-specific code
- QuickBooks API access must be granted by the client — walk them through creating a QuickBooks Online Developer App or adding your app to their account
- The PO field discussed in [2] can be mapped through to the QuickBooks invoice for full traceability
Client Example
This comparison was first developed for [3] during B2B site buildout. Their offline payment workflow (check payments, pay-on-delivery) required invoice generation that WooCommerce alone couldn't provide. Both options were presented to the client for a decision.
Source: [4]