Skip to main content
Talk to an expert
Odoo ERP system

Odoo integration for ecommerce

Web orders captured reliably to Odoo, stock respected, invoices delivered on schedule iWeb integrates Odoo as the transactional system of record, ensuring stock availability is queried reliably, web orders map correctly into sales orders, and invoices reach customers after dispatch. Works with Adobe Commerce, Magento Open Source, Shopify Plus, BigCommerce and other storefronts.

Also searched as: connector, plugin, extension, API integration, system integration.

OdooiWeb integration layeryour storefront
Works with - Adobe Commerce · Magento Open Source · Shopify Plus · BigCommerce · Other storefronts
01 · What you get

What a Odoo integration gives you.

Accurate stock and no oversell

Your storefront queries Odoo in real-time or refreshes cached stock on a reliable schedule. Orders only proceed if stock is reserved and confirmed, and the integration prevents double-selling across channels.

Orders captured reliably into finance

Every web order maps to an Odoo sales order with correct customer, lines, delivery address and tax treatment. Invoicing and credit notes flow back to customers on schedule, and finance can reconcile web revenue to cash received.

Credit limits and customer rules enforced

Before checkout completes, the integration validates customer account status and credit limit against Odoo. High-risk or over-limit customers are blocked or routed for approval, preventing bad debt.

Pricing accuracy and margin protection

Base prices, bulk discounts and customer-specific pricing are maintained in Odoo and applied consistently across all sales channels. Margin leakage from stale or misapplied pricing is eliminated.

Operational transparency and exception ownership

Failed orders, credit blocks and pricing gaps surface in monitored queues with named owners. SLAs on resolution are tracked, and root causes feed back into Odoo process improvements.

02 · When it's worth it

Where a Odoo integration earns its place.

If two or more of these are true, the integration usually pays for itself quickly.

Real-time stock availability queried from Odoo during checkout
Web orders captured into Odoo sales orders for fulfilment and invoicing
Customer credit limits and account status checked before order confirmation
Invoice and credit note delivery to customers after dispatch
Pricing and customer-specific discounts published from Odoo to the storefront
03 · The limits

Where off-the-shelf connectors fall short.

Vendor connectors are fine for simple cases. Here's where the real ones need more.

No native fallback pricing during Odoo downtime

If Odoo is unavailable, the storefront has no automatic fallback to cached pricing or stock. Orders either stall at checkout or proceed with stale data, creating risk of oversell or margin leakage. A governance decision on fallback behaviour must be built before launch.

Manual exception queue handling

Orders that fail to map to Odoo customers, stock exceptions, or pricing mismatches land in manual queues. Without named ownership and SLA, these exceptions grow backlog and delay revenue recognition.

Limited multi-channel stock allocation

Odoo does not natively allocate stock across multiple sales channels or marketplaces. If you sell via the website, Amazon and eBay simultaneously, you must build custom allocation logic or accept oversell risk.

No built-in order acknowledgement routing

Odoo captures the order but does not automatically route confirmation emails or trigger fulfilment workflows. The storefront and Odoo operate independently unless you build event-driven routing on both sides.

Customer-specific pricing requires manual maintenance

Odoo supports customer price lists, but they must be maintained in Odoo and synced to commerce. If your sales team changes pricing in Odoo, the storefront does not refresh it automatically without a scheduled export job.

04 · The real work

The tension in Odoo integration is always between real-time accuracy and operational tolerance: if you query Odoo for every stock check, checkout becomes slow; if you cache prices, they drift; if you queue orders during downtime, you risk oversell. Governance clarity upfront prevents reconciliation chaos later.

05 · Where it sits

Where this integration sits in your estate.

Odoo holds the commercial record. The iWeb integration layer manages the rules, mappings, monitoring and exceptions. The commerce platform presents the customer-facing experience. The estate map helps agree ownership before anything is built.

Storefront independent. Odoo feeds stock, pricing, orders and customer data into your chosen platform.

System of record
Source / owner
Odoo
System of record for stock, pricing, customer accounts and financial transactions
  • Stock levels and availability
  • Base and customer-specific pricing
  • Customer accounts and credit limits
  • Sales order creation and order numbering
  • Invoicing and credit note generation
  • Nominal codes and tax treatment
iWeb integration layer
Customer-facing commerce
Commerce platform
Adobe CommerceMagento Open SourceShopify PlusBigCommerceOther storefronts
  • Order placement and checkout experience
  • Shopper identity and session management
  • Catalogue presentation and search
  • Payment capture and authorization
  • Order history and account dashboards
Connected neighbours
Integration layer
PIM
Product attributes, descriptions and images; stock and pricing feed into the storefront from Odoo
Integration layer
WMS or fulfilment partner
Receives orders from Odoo for picking and packing; sends shipment and tracking back to Odoo for invoicing
Integration layer
Payment processor
Captures payment from the storefront; payment status is recorded on the Odoo sales order for invoice release
Integration layer
Search and merchandising
Receives product data and pricing from Odoo; respects stock and availability in search results
Integration layer
Marketplace connectors
Orders from Amazon, eBay, etc. are routed to Odoo; stock is allocated across all channels
Two-way sync where relevant
06 · Surrounding systems

Systems this integration usually sits next to.

Examples, not a closed list. iWeb is platform-agnostic on both sides: we wire this integration into whatever ecommerce platform and surrounding systems your estate already runs.

Ecommerce platforms (examples)
  • Adobe Commerce
  • Magento Open Source
  • Shopify Plus
  • BigCommerce
  • Other storefronts
Surrounding systems (examples)
  • Product Information Management (PIM)
  • Search and merchandising index
  • Order Management System (OMS)
  • Warehouse Management System (WMS)
  • Payment processor
  • Marketplace connectors (Amazon, eBay)
  • Email and fulfillment workflow
  • Business intelligence and analytics
Not sure?

Not sure if this works with your stack?

Tell us what you’re using and what needs to connect. We’ll give you a straight view on what’s possible, what might be awkward, and the safest way to approach it.

07 · Data flows

The data flows we wire.

Each flow has a direction and an owner. We agree both before a line of code is written.

Into ERP
From ERP
BOTH WAYS
Stock and pricing export: Odoo exports current stock levels, base prices and customer-specific pricing to commerce
This feed refreshes at regular intervals, typically every 15-60 minutes depending on trading volume and the freshness SLA your business requires.
Web order ingestion: Web orders from your commerce platform are captured as sales orders in Odoo with customer, line items, delivery and payment status
The integration ensures order numbers are tracked both ways so that shipment and invoicing updates feed back to the storefront.
Invoice and credit note dispatch: Once an order ships or is refunded in Odoo, invoices and credit notes are sent to the commerce platform for delivery to the customer email and storage in their account.
Customer and credit limit synchronisation: Customer account data, credit limits and payment terms flow from Odoo to commerce for pre-checkout validation
Changes to credit status or customer details are reflected bidirectionally to keep both systems in sync.
Nominal codes and VAT treatment: Tax codes and accounting treatment for each product or customer class are maintained in Odoo and applied to invoices and financial reports
The integration ensures the storefront respects these rules during order capture.
08 · How we build it

How iWeb configures the integration around your business.

Same method on every integration. The decisions come before the code.

  1. 01
    Design the ownership map

    We document who in your team owns stock levels, pricing rules, customer credit and exception handling. Odoo becomes the system of record, and the storefront respects that authority without overriding or caching stale state.

  2. 02
    Build order-to-cash flows

    We implement web order ingestion into Odoo sales orders, shipment-triggered invoicing, and credit note delivery. Every step is idempotent so that retries do not create duplicate invoices or payments.

  3. 03
    Implement fallback and observability

    We define what happens when Odoo is down (stale pricing, order queue, graceful degradation or checkout block) and instrument logging so you know immediately when the integration drifts from expected behaviour.

  4. 04
    Integrate with neighbouring systems

    We connect Odoo to your PIM so product attributes feed into the storefront alongside pricing and stock. We link to payment and fulfilment systems so that order capture, dispatch and reconciliation flow end-to-end.

  5. 05
    Test and monitor before and after launch

    We validate order mapping, stock reservation, pricing application, invoice delivery and reconciliation against live Odoo data. Post-launch, we establish dashboards for order success rate, exception queue age and finance reconciliation drift.

09 · Ownership

Who owns what.

The single most important table in any integration. One system owns each field; everything else reads it.

Data
Source / owner
Maintained by
Notes
DataStock availability and reservation
Source / ownerOdoo
Maintained byWarehouse / inventory operations team
NotesCommerce queries Odoo in real-time or on a regular refresh schedule. Stock is reserved at order capture and released only on refund or cancellation.
DataBase and customer-specific pricing
Source / ownerOdoo
Maintained byPricing / sales operations team
NotesCommerce receives base prices and customer price lists from Odoo on each export cycle. No overrides or discounts are applied by the storefront without Odoo approval.
DataCustomer accounts and credit limits
Source / ownerOdoo
Maintained byCredit control / customer service team
NotesCommerce validates customer identity and credit status against Odoo before order confirmation. Changes to credit limits or payment terms in Odoo trigger immediate cache invalidation.
DataWeb orders and sales order creation
Source / ownerOdoo
Maintained byOrders team (via integration)
NotesCommerce captures order intent; the integration transforms it into an Odoo sales order with correct customer, lines, tax and delivery details. The integration is responsible for idempotency and retry logic.
DataInvoices, credit notes and payment receipts
Source / ownerOdoo
Maintained byFinance / customer service team
NotesOdoo generates invoices after shipment and credit notes after refund. The integration delivers these documents to customers and stores them in commerce order records for reconciliation.
DataNominal codes and tax treatment
Source / ownerOdoo
Maintained byFinance / accounting team
NotesTax codes and ledger account allocation for each product class and customer are maintained in Odoo. The integration applies these codes to all invoices and financial reports.
10 · Experienced integrator

Built this before

iWeb understands how Odoo sits as the transactional backbone of a commerce estate. We have designed and supported Odoo integrations across retail, manufacturing, and trade businesses, handling stock allocation, pricing governance, customer credit and order-to-cash flows.

We know how to structure web order ingestion into Odoo so that sales orders are created reliably with correct customer mapping, line items and tax treatment, and how to handle retries without creating duplicates.
We design stock reservation logic so that Odoo inventory is the single source of truth and oversell is prevented across all sales channels, including handling of refresh lag and peak-time contention.
We integrate Odoo pricing alongside PIM and search systems so that promotions, bulk discounts and customer-specific pricing are exported correctly and applied consistently across the estate.
We establish exception handling for failed orders, credit blocks, and mapping mismatches so that they surface early and are resolved before they break finance reconciliation or customer experience.
We instrument Odoo integrations with observability dashboards, alerting and pre-launch testing so that order success, exception queue age, and pricing accuracy are monitored continuously post-launch.
11 · Before launch

What we test before launch.

Every one of these is rehearsed before a customer ever sees the integration.

Verify that stock is reserved in Odoo at order placement and released only on cancellation or refund, with no gap allowing oversell.
Test order mapping for correct customer matching, line items, taxes and totals; confirm idempotency so retries do not create duplicate orders.
Validate that pricing applied on the storefront matches the price list exported from Odoo, including bulk discounts and customer-specific rules.
Confirm that invoices are generated in Odoo after shipment and delivered to customers; validate that totals reconcile with payment captured.
Test fallback behaviour when Odoo is unavailable: verify that checkout either blocks, queues, or uses stale data according to your governance decision.
Audit the exception queue for orders that fail to map or are held for credit block; confirm that they surface to a monitored dashboard with SLA.
Load test the integration at peak trading volume to ensure stock queries, order ingestion and reconciliation do not time out or degrade.
12 · Failure points

Common risks and where they bite.

We name these on day one. A risk written down is a risk you can plan around.

Stock oversell across channels or during peak

If Odoo stock is not reserved immediately after order placement or if multiple channels query simultaneously without locking, inventory can be allocated twice. This surfaces days later when dispatch fails and customer refunds are issued.

Orders lost in exception queues

When a web order fails to map to an Odoo customer (bad email, duplicate account, credit block), it lands in a manual queue. If the queue is not monitored daily, orders age and customers receive no confirmation, leading to complaints and lost revenue.

Stale pricing and margin leakage

If the storefront caches Odoo prices and the cache is not refreshed on time, a promotion or price change in Odoo does not reach the website. Orders proceed at old prices, eroding margin or creating customer confusion.

Finance reconciliation drift

If web orders are not captured in Odoo with exact line amounts, taxes and discounts, the invoice total will not match the payment captured. Reconciliation teams spend days investigating, and revenue recognition is delayed.

Odoo downtime breaks checkout

If the storefront queries Odoo synchronously for stock or credit limit validation and Odoo is unavailable, checkout times out or fails. Without a fallback policy (allow, block, or use stale data), you lose sales or expose yourself to oversell.

Customer credit changes not reflected in real-time

If a customer's credit limit is reduced in Odoo, the storefront does not know immediately. They continue to place orders above their new limit until the next sync cycle, creating credit risk and manual hold-release overhead.

14 · Questions

Common questions about Odoo integrations.

Who owns the decision to check customer credit at checkout, and what happens if the check fails?

Your credit control team maintains credit limits and payment terms in Odoo. The integration validates every order against these rules before confirmation. If credit is exceeded, the order is either blocked or routed for manual approval depending on your policy. That policy is owned by credit control, and the storefront enforces it.

How does stock get allocated if we sell across the website, Amazon and eBay at the same time?

Odoo holds the master stock position, but it does not automatically allocate inventory across channels. You must decide: reserve stock in Odoo at order placement across all channels (first-come-first-served with oversell risk if channels are slow to confirm), or manually adjust Odoo stock levels to account for expected channel volume. iWeb can build channel-aware allocation logic, but Odoo by default does not provide it.

What happens to a web order if Odoo is down during checkout?

This depends on your governance decision and integration design. You can: (1) block checkout and ask the customer to return later, (2) queue the order locally and sync it to Odoo when it recovers (with risk of oversell), or (3) proceed with stale pricing and stock and reconcile manually afterward. iWeb helps you choose the policy that balances customer experience, margin protection and operational risk.

How does pricing work if we offer customer-specific discounts?

Odoo maintains customer price lists alongside base prices. The integration exports both to the storefront. When a customer logs in, their specific price list is applied. If prices change in Odoo, the integration refreshes the storefront on the next export cycle, typically every 15-60 minutes depending on your SLA.

How long does it take for an invoice to reach the customer after they place an order?

The storefront captures the order, the integration creates an Odoo sales order, and Odoo generates an invoice once shipment is confirmed (or immediately, depending on your invoicing trigger). The integration then delivers the invoice to the customer email and attaches it to their order record. Total time is typically 30 minutes to a few hours, depending on warehouse processing and your Odoo workflow configuration.

What happens if a web order fails to map to an Odoo customer?

The order is held in an exception queue (manually reviewed, not auto-rejected). Common causes are duplicate accounts, invalid email addresses, or customer data mismatches. Your customer service team reviews the queue daily, resolves the mismatch in Odoo, and retries the order. If the queue is not monitored, orders age and customers receive no confirmation.

How do we prevent duplicate orders if the integration retries a failed order?

The integration uses idempotency keys (order IDs) so that retrying a failed order does not create a duplicate sales order in Odoo. This is built into the integration design and tested before launch. Without it, network timeouts and retries would create multiple invoices for the same customer order.

Can we override Odoo pricing on the storefront for flash sales or clearance?

Not recommended. The storefront should always respect Odoo as the pricing source of truth. If you need to run a flash sale, create the promotion in Odoo (using price list rules or discounts) and let the integration export it to the storefront. This keeps margin governance centralized and auditable.

How do refunds work, and when does the credit note reach the customer?

When you refund an order in Odoo (or the storefront triggers a refund), Odoo generates a credit note. The integration delivers the credit note to the customer and updates the order record in commerce. Stock is returned to available inventory. The credit note typically reaches the customer within an hour of refund.

How does the integration handle tax and ensure invoices are accurate?

Odoo is configured with tax rules for each customer and product combination. When the integration creates a sales order, it applies the correct tax codes to each line. Odoo then generates the invoice with the correct total, including all local taxes. The storefront does not calculate tax independently; it trusts Odoo's calculation.

What observability and alerting do we have if orders are not flowing to Odoo?

iWeb instruments the integration with logging for order ingestion, mapping, and Odoo response. A dashboard shows order success rate, exception queue depth, and age of oldest unresolved order. Alerts fire if the exception queue grows or if orders are not reaching Odoo within expected time. This gives your operations team visibility and a trigger to investigate.

How does the integration handle customer data changes in Odoo that need to update the storefront?

Changes to customer credit limits, payment terms, or account status in Odoo are reflected in the storefront on the next sync cycle (typically 15-60 minutes). If a customer is flagged as high-risk or credit-blocked, they cannot place new orders until the block is lifted. This is enforced by the integration at checkout.

Can we integrate Odoo with our PIM or search system so that product data flows correctly?

Yes. Odoo can export product attributes (SKU, base price, stock status) to a PIM or search index. However, Odoo is not a full product information manager; detailed attributes, images and descriptions live in the PIM. The integration ensures that stock and pricing from Odoo are always applied to the correct products in search and on the storefront.

What happens if a customer's payment fails but the order was already created in Odoo?

The order is captured in Odoo as a sales order but marked as unpaid or pending. If the payment is not captured within a defined window (e.g., 24 hours), the order is cancelled in Odoo and stock is released. The integration coordinates this so that Odoo is always aware of payment status and does not invoice unpaid orders.

14b · Same category

Other erp · finance integrations.

Adjacent integrations in the same category. Same shape of work, different vendor.

ERP · finance
Next step

Have a Odoo integration brief?

Send the brief, or tell us what is breaking. You will get a written response from a senior expert: the integration boundary, the realistic shape, the risks worth naming, and what it takes to support after launch.
Talk to an expertOr browse all integrations →