All articles

Enterprise Systems8 min read

ERP and E-Commerce Integration (Shopify, WooCommerce, Amazon): How It Works

ERP and e-commerce integration keeps orders, stock, prices and returns consistent between your online channels and your back office. This guide covers which system should own each record, sync patterns, platform API basics and a test checklist.

Written byUsama AsifPublished

ERP e-commerce integration connects your online channels, such as a Shopify store, a WooCommerce site or an Amazon seller account, to your ERP so that orders flow into the back office automatically, and stock, prices and product data flow back out. Done well, nobody re-keys an order, overselling becomes rare, and finance sees every sale, fee and refund in the ledger.

The technology is the easier half. The harder half is deciding which system is the master for each kind of data, what happens when the two disagree, and how returns, partial shipments and marketplace fees are handled. This guide works through those decisions, then covers what the main platforms offer for integration and how to test it.

If you need the connection built or rebuilt, our ERP integration services team works with packaged and custom ERPs; for broader connections between several platforms, see systems and API integration.

Which system should be the master for each record?

Each record should have one owner, and everyone should know which. A typical split is: the ERP owns items, costs, stock and accounting; the channel owns the customer's checkout and the order as placed; marketing content may live in the channel or a product information tool.

DataUsual masterFlows toNotes
Item codes (SKUs) and variantsERPChannelsNever let a channel create SKUs the ERP does not know
Product descriptions and imagesChannel or PIMRarely the ERPKeep marketing copy out of the ERP unless you need it on documents
Prices and promotionsERP for list prices; channel for campaign discountsBothDecide where a discount is recorded so margin reports stay right
Stock available to sellERPChannelsSend available quantity, not on-hand
OrdersChannel (at creation)ERPERP takes over once imported: picking, shipping, invoicing
Shipment and trackingERP or warehouse systemChannelTriggers the customer notification
Returns and refundsSplit; agree it explicitlyBothThe most common source of mismatches
Payouts and feesPayment provider or marketplaceERPReconciled against the bank, not just order totals

Why "available" is not "on hand"

Sending raw on-hand stock to a channel oversells, because some units are already committed to open orders, damaged or held. Shopify's own inventory model on shopify.dev reflects this: inventory levels per location carry separate states, including incoming, on hand, available, committed, reserved, damaged, safety stock and quality control. Your ERP should calculate the sellable figure and send that, optionally holding back a buffer for fast-moving lines.

How do orders, stock and prices actually sync?

Most integrations combine three patterns: events (webhooks) for speed, scheduled polling for safety, and periodic full reconciliation to catch anything missed.

  • Webhooks. The channel notifies your integration when something happens, such as an order created or refunded. Fast, but not guaranteed. Shopify's developer documentation states that it does not guarantee ordering of webhooks and that delivery is not always guaranteed, and it recommends verifying HMAC signatures, ignoring duplicates by webhook ID and running reconciliation jobs that periodically fetch data.
  • Polling. The integration asks the channel every few minutes for orders changed since the last check. Slower, simpler and a good safety net.
  • Reconciliation. A nightly job compares order counts, totals and stock levels on both sides and raises exceptions for a person to resolve.

Whatever the pattern, make each step idempotent: importing the same order twice must not create two sales orders. Use the channel's order ID as a unique external reference in the ERP. Our guide to system integration approaches explains the trade-offs between direct API calls, middleware and event queues.

What do Shopify, WooCommerce and Amazon offer for integration?

All three have documented APIs, but they differ in style, authentication and rules. Checked against each platform's developer documentation in October 2026:

PlatformMain APINotes for ERP integration
ShopifyGraphQL Admin APIShopify's docs describe the REST Admin API as legacy since October 2024, and new public apps must use the GraphQL Admin API from April 2025. Inventory is held per location with the quantity states above. Webhooks need signature checks and a reconciliation job.
WooCommerceWooCommerce REST API (wc/v3 namespace)Covers orders, products, refunds and webhooks. Authenticates with consumer key and secret over HTTPS. Because WooCommerce runs on your own WordPress hosting, plugins and server performance affect integration reliability.
AmazonSelling Partner API (SP-API)REST-based and JSON, replacing the older MWS. Includes separate APIs such as Orders, Listings Items, Feeds, Reports, FBA Inventory, Finances and Notifications. Fulfilled-by-Amazon stock sits in Amazon's network, so the ERP must treat it as a separate location.

Two practical consequences. First, if you have an older Shopify connector built on REST, ask whether it is maintained against current API versions. Second, Amazon settlements combine sales, fees, refunds and adjustments, so posting them to the ledger needs a settlement-level reconciliation, not just order totals.

Should you use a connector, middleware or a custom integration service?

There are three ways to build the link, and the right one depends on how many channels you run and how standard your ERP is.

ApproachWhat it isFitsTrade-off
Off-the-shelf connectorA ready-made app between one channel and one ERPOne or two channels, a mainstream ERP, standard processesLimited control over rules; you depend on the connector vendor keeping up with API changes
Integration platform (middleware)A hosted tool where flows are configured from building blocksSeveral systems, an in-house team that can maintain flowsAnother subscription and another skill set; complex rules can become hard to read
Custom integration serviceCode you own that sits between the ERP and every channelShared stock across channels, custom or older ERP, finance-specific posting rulesHigher build effort; needs monitoring and maintenance like any application

Whichever you choose, insist on three things: a log of every message with its status, a way to replay failed messages, and an alert when something sits in error. Without these, problems surface as customer complaints rather than as exceptions someone can fix.

Multi-location and marketplace-held stock

If you hold stock in several warehouses or stores, decide which locations feed which channel. A store might sell only from the main warehouse, while marketplace orders ship from a third-party logistics site. Model marketplace-held stock, such as stock sent to Amazon for fulfilment, as its own location in the ERP, update it from the marketplace's inventory reports, and post transfers to it when you ship stock in. That keeps total stock value right in the ledger, even though you cannot pick from that location yourself.

How should returns and refunds be handled?

Agree one returns flow and map every step to one system. Returns cause more reconciliation trouble than any other area because the refund, the stock movement and the credit note can each happen in a different system at a different time.

An illustrative flow for a retailer selling on Shopify with stock in its own warehouse:

  1. Customer requests a return in the store; the channel records the return request.
  2. Warehouse receives the parcel and inspects it in the ERP or warehouse system: resaleable, damaged or write-off.
  3. ERP posts the stock movement to the right status and creates the credit note.
  4. Refund is issued (in the channel or payment provider) only after inspection, or immediately if your policy says so.
  5. Integration links the refund back to the ERP credit note by order reference, so finance can match it to the payout.

Edge cases to decide up front: refunds without a return, exchanges, partial refunds on discounted bundles, and marketplace-initiated refunds you did not trigger.

What should you test before going live?

Test real scenarios end to end, using copies of real products and real tax settings. Use this checklist:

  • An order with several lines, a discount code and shipping charges imports once, with correct tax
  • The same webhook delivered twice creates one ERP order
  • A partial shipment updates the channel and the customer sees tracking
  • Stock sold in-store or on another channel reduces available quantity everywhere within the agreed time
  • A price change in the ERP appears in each channel, and campaign discounts do not overwrite list prices
  • A return, a refund without return and a partial refund each reconcile to the payout
  • Marketplace fees post to the right expense accounts
  • An integration outage queues messages and replays them in order when it recovers
  • Someone is alerted, by name, when an exception sits unresolved

When is a custom integration not the right choice?

If you run one Shopify store on a mainstream ERP with standard processes, a maintained off-the-shelf connector is often cheaper and quicker. Build custom when:

  • You sell on several channels with shared stock and need one allocation rule.
  • Your ERP is custom, old or not supported by connectors.
  • Bundles, kits, made-to-order items or B2B price lists do not map cleanly.
  • Finance needs fee-level settlement posting the connector does not provide.

If you plan to change ERP in the next year, connect the new system rather than investing in the old one. Related reading: ERP and CRM integration and the ERP inventory management module.

How to start your ERP e-commerce integration

Prepare a one-page integration brief:

  1. Channels in scope and order volumes by month, including peaks.
  2. The master-data table above, filled in for your business.
  3. Your returns flow, written as steps.
  4. Current pain points with examples: oversold orders, missing refunds, manual re-keying.
  5. Who resolves exceptions day to day.

Our software requirements brief template gives you a structure for the rest. Then discuss the project with us. Timeline Digital builds 2 to 3 key modules as a free pilot before the full project starts, which for an integration usually means one channel's order and stock flows working end to end.

Frequently asked questions

Should the ERP or the online store be the master for stock?

The ERP, in almost every case. It sees all channels, warehouses, purchase receipts and open orders, so it can calculate what is genuinely available to sell. The store should receive the available quantity from the ERP, not edit stock itself. The exception is a single-channel business with no ERP stock control, where the store may be the only stock record.

How often should stock sync between an ERP and Shopify or Amazon?

As often as your sales speed and stock depth require. Fast-moving lines with low stock need near real-time updates triggered by each sale or movement, while slow lines can sync on a schedule. Pair whatever you choose with a nightly full reconciliation, because event notifications can be delayed or missed, and keep a small buffer on lines that sell out quickly.

Do I need middleware to connect an ERP to e-commerce platforms?

Not always. A single store and a modern ERP with a maintained connector may need nothing else. Middleware or a custom integration service earns its place when you have several channels, shared stock allocation, a custom or older ERP, or finance rules the connector cannot express. It also gives you one place to monitor, queue and replay failed messages.

How should Amazon fees and settlements be recorded in the ERP?

Post them from the settlement data, not from individual orders. A settlement combines sales, refunds, marketplace fees, fulfilment fees and adjustments, and the net payout is what reaches your bank. Map each fee type to an expense account, post the settlement as one journal or set of documents, and reconcile it to the bank deposit.

Is the Shopify REST API still usable for ERP integration?

Shopify states on its developer site that the REST Admin API has been legacy since October 2024 and that new public apps must use the GraphQL Admin API from April 2025. Existing integrations may still run, but new work should target GraphQL, and you should ask whoever maintains an older connector how it is keeping up with API versions.

Topics in this article

  • ERP Integration
  • E-Commerce
  • Shopify
  • WooCommerce
  • Amazon Seller
  • Inventory Sync

Start a conversation

Tell us how your business works.

Describe what is slowing your team down. We will help you work out what to build, and how a free pilot lets you judge our work before the full project.

Prefer WhatsApp? Start a chat

What happens next

  1. You send a short brief

    The problem, the people involved and any target date. A senior engineer replies within 4 business hours.

  2. We understand your workflow

    A first call about how your business works today. An NDA can be signed before you share details.

  3. You test a free pilot

    You choose 2 to 3 key modules and we build them first, so you judge real software before the full project.