Extend trade credit to B2B buyers with configurable payment terms (Net 7โ90), real-time balance tracking, and automated overdue management. Fully HPOS-compatible โ works whether you use classic post-based orders or WooCommerce High-Performance Order Storage.
Set a currency limit per company. Orders are blocked or flagged when the limit is reached. Override per-company or set a global default for new accounts.
Six configurable payment terms. Set a global default or override per company. Payment due date is calculated and stored on each order automatically.
Every order placed charges the balance. Every payment recorded restores it. Live utilisation percentage visible on both admin and customer My Account dashboards.
Configurable reminders at 7, 14, 30 days. Optional interest charges. Block new orders when past due. Admin dashboard shows all overdue accounts at a glance.
Charges, payments, manual credits, refunds โ all timestamped and auditable. Filter by date range, transaction type, or order. Export to CSV.
All credit data is stored using WooCommerce's HPOS-compatible order meta API. Works identically on both classic post-based orders and the new high-performance order storage.
Set credit limits per individual user (not just per company). Useful for freelancers and sole traders who don't belong to a company structure. User credit and company credit can coexist.
Credit is tracked in your base currency with exchange rate stored on each order. Prevents currency conversion errors when customers order in different currencies.
Go to B2B Commerce Kit โ Settings โ Features and confirm Company Credit & Net Terms is toggled on.
Go to Settings โ Credit Settings. Set default payment terms (Net 30 is common), overdue behaviour (block orders or just warn), and which customer roles can see the Company Credit gateway at checkout.
Go to B2B Commerce Kit โ Company Accounts โ Add Company. Fill in company name and contact details. This is the account that holds the credit balance.
On the company record, go to the Credit tab. Enter the credit limit (e.g. $5,000) and choose this company's payment terms. This overrides the global default.
Still on the company record, go to Members and add the customer's WordPress user accounts. Everyone assigned to this company shares the credit balance.
Log in as one of the assigned users and go to checkout. "Company Credit" should appear as a payment option showing available balance. Place a test order and verify the balance updates.
When the customer pays, go to Company Account โ Credit โ Add Transaction. Select Payment, enter the amount and a reference note. The balance restores immediately.
Acme Builders has a $10,000 credit limit with Net 30 terms. Their three purchasing agents all share this balance.
Orders above $2,000 shouldn't charge the credit account automatically โ you want to review them first.
A German customer orders in EUR but your credit accounts are tracked in USD.
A freelance architect orders regularly and you want to give them a personal credit line without creating a company for them.
| Setting | What it does | Default |
|---|---|---|
Default Credit Limit | Starting limit for new company accounts. Set 0 to require manual setup per company before credit is available. | $0 |
Default Payment Terms | Net 7 / 14 / 30 / 45 / 60 / 90 days. Applied globally but overridable per company. | Net 30 |
Block When Overdue | Prevent new orders when any balance is past its due date. Shows a clear message at checkout. | Off |
Enable Interest | Charge interest on overdue balances. Set the rate and period (daily, weekly, monthly). Interest appears as a transaction in the audit log. | Off |
Require Approval Above | Orders above this amount need admin approval before credit is charged. Set to 0 to disable. | None |
Allow Negative Credit | Let orders proceed even when they would exceed the credit limit. Set a negative cap to limit how far over the limit they can go. | Off |
Eligible Roles | Which user roles see the Company Credit payment option at checkout. | All logged-in |
PO Number Field | Add a PO number input to checkout for credit orders. Stored on the order as HPOS-compatible meta. | Off |
The module adds a "Company Credit" option to WooCommerce checkout. Eligible users select it and the order total is deducted from their company's available credit balance instantly. No actual card processing โ it's an internal ledger. The order is stored with the credit amount, exchange rate, and payment due date as HPOS-compatible order meta.
Yes โ fully. All order meta (credit amount, exchange rate, payment due date, PO number) uses $order->update_meta_data() and $order->get_meta() throughout. The admin order list column showing credit status works on both the classic shop_order posts screen and the HPOS wc-orders screen via separate hooks registered for each.
Checkout is blocked with a clear message showing current balance and limit. If you've enabled "Allow Negative Credit," orders can proceed up to a configurable negative cap. If you've set "Require Approval Above," orders near the limit route to admin approval instead of blocking outright.
Yes. Go to Company Account โ Credit โ Add Transaction โ Payment. Enter the amount and a reference note (e.g. bank transfer ref). The balance updates immediately and the transaction appears in the auditable history. You can also record partial payments if the customer paid less than the full balance.
The following meta keys are stored on each order placed with Company Credit:
_woob2b_company_id โ the company account ID (used for balance lookups)_woob2b_credit_base_amount โ amount charged in your base currency_woob2b_credit_exchange_rate โ rate at time of order (for multi-currency accuracy)_woob2b_payment_due_date โ calculated due date based on payment terms (Y-m-d format)_woob2b_po_number โ customer-entered PO number (if PO number field is enabled)All are stored and read using WC_Order methods, making them fully HPOS-compatible.
Yes, via the woob2b_credit_charged action hook. It fires after every successful credit charge with the order ID, amount, and company ID as parameters. Use it to push to QuickBooks, Xero, or any webhook-based system. See the Hooks & Filters reference for code examples.