An order reaching the invoicing system does not mean the integration works. A customer may change the order, pay later or return only one item. These are the situations to resolve before launch.

Start with which system owns each piece of data

Shopify may own orders, the warehouse system availability and the invoicing system documents. Agree this for each data type. Two systems changing prices or stock without rules will create conflicts.

Write a short list: orders go from Shopify to the destination, availability returns from the warehouse and document numbers link back to orders. Synchronising everything in both directions is rarely a good starting point.

An order being created does not confirm payment

Define which state triggers a document or a fulfilment request. Creation, payment and dispatch are different events. Cash on delivery and deferred payment may need different flows.

Confirm the rule for issuing each document with your accountant for your workflow. The integration should implement agreed rules rather than infer them from the first available order state.

One order must remain one order

An event can arrive more than once. The destination must recognise an order it has already processed. Store the link between the Shopify order ID and its destination record.

Shopify also notes that webhook delivery order is not guaranteed. An older message must not overwrite a newer state. Plan for current-data checks and safe retries.

Inventory needs precise variant identifiers

A T-shirt in two sizes is two inventory items. Verify that every sold variant has a unique SKU and the correct stock-item mapping. Product names are not sufficient identifiers.

Check bundles, reservations and multiple warehouses separately. Agree whether customers see physical stock or quantities available after reservations. A technically correct transfer can still be commercially wrong.

Test the day something fails

Prepare orders with discounts and shipping, unpaid orders, cancellations, partial refunds and unknown SKUs. Write the expected state in both systems for each case.

Add duplicate events and an unavailable invoicing system. Processing must recover without issuing a second document. Operations needs an error list and an owner, not just a green “integration active” badge.

An existing connector or a custom integration

First check an existing connector for your exact tool combination. Verify variants, refunds and your order states rather than relying on a Shopify logo on a supplier website.

Custom integration makes sense when existing tools miss an essential rule or you need to connect your own system. Start with tool names, an anonymised sample order and situations you currently handle manually.

Explore the related service