A useful Shopify and Odoo integration keeps the storefront, warehouse and finance team working from consistent records. Start by deciding which system owns each field, then test how information moves when an order changes. Connecting two accounts is only the beginning.
This checklist covers a third-party connector or a custom integration. It does not assume that a particular connector supports every Odoo edition, Shopify setup or business process. The Odoo API references below cover version 19; confirm the requirements for your actual deployment.
1. Define the first workflow and its boundaries
Write one sentence describing the first release: for example, “Import approved Shopify orders into Odoo, reserve stock, and return shipment details to Shopify.” Specify when an order becomes eligible, which store and warehouse participate, and which exceptions need a person.
Separate that workflow from later ambitions such as catalogue publishing, customer marketing, multiple currencies or marketplace stock. Give each addition its own acceptance criteria. An integration that handles ordinary orders can still fail on bundles, subscriptions or amended orders.
Check access before choosing a connector. Odoo’s version 19 API documentation states that its external API is available on Custom pricing plans, not One App Free or Standard. Confirm the selected plan, hosting arrangement and connector requirements with the responsible provider.
2. Assign an owner to each data field
A record can appear in both systems without allowing both systems to edit every field. Agree a mapping sheet with the field, authoritative system, direction, trigger and conflict rule. The following is an illustrative starting point, not a required architecture.
| Information | Example owner | Decision to document |
|---|---|---|
| Product identity | Odoo product master | Stable product and variant mapping; treatment of missing or repeated SKUs |
| Storefront descriptions | Shopify | Whether catalogue updates may overwrite merchandising copy |
| Sellable stock | Agreed Odoo warehouse calculation | Included locations, reservations, safety buffer and damaged stock |
| Online order | Shopify at purchase | Import trigger and handling of later edits or cancellation |
| Dispatch confirmation | Fulfilment operation | Which system records shipped quantities and tracking |
| Refund status | Payment transaction evidence | How money, returned goods and credit records are reconciled |
Use external record identifiers alongside SKUs. Product titles can change, and a blank SKU should create a visible mapping exception rather than an accidental match. Keep customer matching rules explicit too: email alone may not distinguish a company’s separate contacts or delivery addresses.
3. Review connector support with realistic examples
Ask the supplier to demonstrate your intended version, hosting, product variants, warehouse structure and payment flow. Request a written list of supported operations, known exclusions, update policy and responsibility for resolving failures. Compare the work needed to maintain a connector with the ownership required for a custom integration.
Do not reduce fulfilment to one “shipped” checkbox. Shopify’s FulfillmentOrder documentation describes items assigned to a fulfilment location and allows multiple fulfilment orders for an order. Test partial shipment and location changes against the connector’s actual behaviour.
Likewise, separate a refund record from successful money movement. Shopify’s Refund reference explains that transaction status determines whether funds have actually been returned. Decide separately whether returned items are saleable, damaged or awaiting inspection.
4. Plan for duplicate, delayed and missing updates
Shopify documents that webhook ordering is not guaranteed and recommends periodic reconciliation to recover missed updates. A later-arriving event must not silently replace newer information. Ask how the integration checks current state and records unresolved differences. See Shopify’s webhook behaviour guidance.
For HTTPS webhooks, verify signatures before accepting content. Repeated delivery must not create a second order or repeat a stock movement. Shopify’s delivery verification guidance covers signature checks and duplicate handling. Business operations also need stable identifiers so a retry can safely resume after an interruption.
Give the operations team an exception queue showing the affected order, failed step, last attempt and responsible owner. Define which failures can retry automatically and which need investigation. Reconciliation should compare expected and actual records, quantities and totals; a green connection indicator cannot establish that they match.
5. Run acceptance tests before expanding
| Test | Evidence required |
|---|---|
| Same order delivered twice | One business order and one intended stock effect |
| Unknown product variant | Visible exception; no substitute product chosen silently |
| Partial fulfilment | Shipped and remaining quantities agree across both systems |
| Cancellation after reservation | Reservation and order state follow the approved cancellation rule |
| Partial refund | Correct line amounts, payment state and separate stock disposition |
| Connection outage | Recovery finds missing changes without duplicating completed work |
A fictional example: two items, one return
Imagine an online shop selling two lamps in one order. One ships today; the other is cancelled before dispatch. The shipped lamp later returns damaged. This is a fictional test scenario, not a Lava customer case.
The team should trace the order identifier, reserved quantities, shipment, cancelled line and refund transaction through both systems. The damaged return should follow its agreed inspection process rather than automatically increasing saleable stock. If the same update is replayed, all final quantities and financial records should remain consistent.
Prepare a reviewable integration brief
Bring your mapping sheet, representative orders, exception rules and acceptance results to the implementation discussion. Name who monitors failures and who can pause synchronization. Keep a recovery procedure and reconcile the pilot before adding more products or locations.
For the surrounding implementation decisions, read Odoo configuration versus customization or explore Lava’s Odoo services. Contact Lava with your current systems and the first workflow you want to connect.
For a related planning step, use the ecommerce CRM workflow guide.
