Odoo and BigCommerce integration
Odoo runs your accounting, inventory, and CRM. BigCommerce runs your online store. Connecting them keeps your e-commerce orders, refunds, and customer records in Odoo without manual entry or data loss. New orders flow into Odoo's accounting module with line items, totals, and shipping costs mapped to the correct revenue accounts. Refunds and customer updates sync automatically so your financial records and CRM stay in agreement.
What moves between them
Orders, refunds, and customers flow from BigCommerce into Odoo. Each BigCommerce order triggers a webhook event that ml-connector receives; the connector fetches the full order details via REST and creates or updates a corresponding Odoo account.move (sales invoice) with line items mapped to Odoo revenue accounts and analytic dimensions. Refunds from BigCommerce are recorded as credit memos or payment reversals in Odoo. Customer records (name, email, billing address) are synced into Odoo res.partner so your CRM and mailing lists stay current. The flow is one-directional (BigCommerce to Odoo) because BigCommerce has no accounting structure; updates to order status or shipments also flow into Odoo so fulfillment state is visible across both systems.
How ml-connector handles it
ml-connector registers BigCommerce webhooks for order and refund events; when an event fires, the stub payload is received and the connector immediately calls the BigCommerce REST v3 API to fetch the full order or refund record using the store-level API account. Each order is mapped to an Odoo sales invoice (account.move) in the sales journal, with order line items (product.product references, qty, unit price) mapped to Odoo revenue accounts and optional analytic accounts for cost center tracking. Tax and shipping totals are allocated to dedicated tax and shipping accounts so the full financial picture posts to Odoo's general ledger. BigCommerce webhooks include HMAC-SHA256 signatures; ml-connector validates the signature against the client secret to ensure authenticity. If a webhook is missed or fails, ml-connector can poll BigCommerce (though BigCommerce recommends webhooks as the primary integration pattern) using order updated_date filters to catch changes. BigCommerce rate limits (450 req/30s on Pro, 150 on Standard) are observed; if limits are hit, the connector backs off and retries. Customer records flow the same way, with BigCommerce customer details (email, name, addresses) upserted into Odoo res.partner, linked by external ID to prevent duplicates on subsequent syncs.
A real-world example
A mid-market e-commerce retailer sells custom industrial equipment through their BigCommerce storefront and uses Odoo to manage accounting, inventory, and fulfillment across multiple warehouses. Before the integration, the finance team received order data from BigCommerce daily, manually entered each order into Odoo as a sales invoice, reconciled discrepancies between the store and the ledger, and struggled to track refunds as they occurred. With Odoo and BigCommerce connected, each order is automatically recorded as an Odoo invoice the moment it is placed on the store, refunds flow directly into the ledger as credit memos, and the fulfillment team sees confirmed orders with shipping status in Odoo without re-keying. Month-end reconciliation is faster because the ledger is already populated with complete, accurate order data.
What you can do
- Create Odoo sales invoices automatically when orders are placed on BigCommerce, with line items and totals mapped to the correct revenue and tax accounts.
- Record BigCommerce refunds as credit memos or payment reversals in Odoo's accounting module.
- Sync BigCommerce customer records into Odoo as partners so your CRM and contact lists stay current.
- Validate BigCommerce webhook signatures (HMAC-SHA256) and handle retries and rate limits transparently.
- Map order fulfillment and shipment status from BigCommerce back into Odoo so your operations team sees a complete order lifecycle.
Questions
- What happens when a BigCommerce webhook is missed or the integration is down?
- ml-connector can poll BigCommerce using order updated_date filters to catch orders and refunds that were created or modified during the outage. The connector uses external IDs to prevent duplicate invoices if a webhook is received after a poll catch-up runs. However, BigCommerce recommends webhooks as the primary pattern, and you should ensure the ml-connector endpoint is monitored and has a low failure rate.
- How does the integration map BigCommerce orders to Odoo GL accounts?
- Each BigCommerce order line item (product, qty, unit price) maps to an Odoo product.product and revenue account configured in your Odoo product category or product record. Tax and shipping are allocated to dedicated tax and shipping GL accounts. The mapping is configured once during setup; ml-connector then applies it to every order. If a product does not exist in Odoo, the order is logged as a failed record with an audit trail so you can review and reprocess it.
- Does the integration handle BigCommerce refunds and partial refunds?
- Yes. When a BigCommerce refund is created or updated, ml-connector fetches the refund record and records it as a credit memo or payment reversal in Odoo's accounting module, reversing the original invoice or reducing the outstanding balance. Partial refunds are handled line-by-line so you can see exactly which items were refunded and which GL accounts are impacted.
Related integrations
More Odoo integrations
Other systems that connect to BigCommerce
Connect Odoo and BigCommerce
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started