WooCommerce Invoicing
Use the native connector to turn WooCommerce orders into documents. For a custom order-to-invoice integration, see E-Commerce.
Connect Your Store
You need an entity admin in Space Invoices and permission to approve the connection in a WooCommerce store that supports REST API v3 and wc-auth.
- Select the issuing entity, open Integrations, and choose WooCommerce.
- Choose Add store and enter the full HTTPS store URL, including any WordPress subdirectory.
- Continue to WooCommerce and approve the requested
read_writeaccess. - Return to Space Invoices and confirm the store is connected. Open the store’s settings to review document automation and email delivery.
New connections enable automatic order processing and invoice email. Review those settings before sending new orders through the connector. Connecting does not import historical orders.
Space Invoices stores the issued consumer credentials encrypted and manages active order.created and order.updated webhooks automatically.
Order Processing Rules
WooCommerce orders go through the same invoicing flow as Shopify:
- An order counts as paid once WooCommerce sets
date_paid, complete when its status iscompleted, and cancelled when it’scancelledor moved to trash. - Pending online payments are stored but don’t create, email or fiscalize a document until payment is confirmed. If they’re cancelled first, no document is issued.
- Cash-on-delivery and bank-transfer orders follow your configured pre-payment document flow.
- A fully refunded order voids its invoice, including fiscalization. Partial refunds update the order but don’t automatically void the invoice or create a credit note.
Tax percentages are read from tax_lines[].rate_percent; referenced rates are fetched only when the payload omits the percentage. Compound taxes, unresolved rates, malformed totals, and reconciliation failures leave the order visible with a processing blocker and cannot create a document until corrected and replayed. Plugin-specific VAT numbers, tax clauses, and “sold on behalf of” metadata are not supported in the initial connector release.
Recovering failed order processing
An accepted connector webhook confirms that Space Invoices ingested the order; automatic document work may still be running in the background. If that work fails, the failure is reported to operational monitoring.
If processing, estimate conversion or invoice reissue fails, the order keeps the error and the API returns it. After fixing the cause, retry with POST /orders/{id}/process or the Reprocess action, even if the order already has a document. Reissues can also be retried with POST /orders/{id}/reissue.
Retries reuse anything already saved: documents, payments, and a reissue’s credit note. The order is linked to its document as soon as the document is saved, even if later processing fails.
If the provider changes an order after its document was saved, recovery finishes that document and retains the outstanding change for a subsequent reissue. It does not apply the newer payment or email to an outdated document. Historical partial reissues without a reliable recovery checkpoint require manual reconciliation.
For orders with a linked document created before recovery checkpoints were introduced, payment processing continues without repeating document-creation activity, fiscalization or e-invoice submission. Unknown historical email delivery suppresses an automatic resend but does not block payment recording. An unpaid cash-on-delivery invoice can still send its first email when payment arrives.
Automatic order email failures before dispatch can be retried. If delivery may have been accepted but its result could not be recorded, recovery stops for delivery reconciliation rather than automatically sending another email.
Buyer-facing document language
Order-generated documents resolve their language from provider order or checkout language, then an explicit buyer locale, billing country, shipping country when billing country is absent, and finally the entity locale. WooCommerce language metadata is recognized only from the supported allowlist (wpml_language, _wpml_language, trp_language, weglot_language, and wt_pklist_order_language). Shopify uses customer_locale through the same resolver.
The resolved locale controls PDF labels, filenames, dates, numbers, shareable links, and synthesized shipping or fee names. Provider-supplied product, shipping, and fee names are preserved. The locale freezes after the first invoice or estimate is created, so reissues, conversions, credit notes, and later renders remain consistent. Automated email copy uses a translated entity default when available and otherwise falls back to the entity language without changing the buyer-language PDF.
Historical imports and repair
Connecting or re-enabling a store never imports history automatically. Choose an explicit date range of at most 90 days; the UI defaults to the last seven local calendar days and processes at most four WooCommerce pages before requiring Continue. Eligible imported orders can create and send documents under the integration’s current automation settings. First-seen webhook orders older than the connection are ignored unless they were explicitly introduced by historical sync.
Migrating from Apollo v1 keeps your WooCommerce settings, order history and links to migrated invoices and estimates.
- Stores that were disabled stay disabled and don’t ask to be reconnected.
- Active stores stay inactive, processing no orders, until an entity admin reconnects them and completes WooCommerce authorization. The old connector didn’t keep reusable credentials.
- On reconnection, Space Invoices switches off the old connector and catches up on recent orders, without duplicating migrated invoices or missing new orders. If the catch-up can’t finish straight away, the integration page shows an action to resume it.
Disabling or deleting a connector first makes it inactive and then removes its remote webhooks. Cleanup failures remain retryable, and re-enabling reconciles webhooks before activation without importing the disabled interval. Revoked WooCommerce credentials require deleting and reconnecting the integration in this release.
Related Guides and API
- E-Commerce — custom order-to-invoice workflows
- Order Integrations API — integration configuration
- Orders API — processing and recovery endpoints