Connecting Shopify to Your ERP: What to Know Before You Start

DDevjour Technologies

Every merchant who outgrows spreadsheets eventually asks the same question: can we just connect Shopify to our ERP and let the systems talk to each other? The honest answer is yes, but "connect" undersells how much decision making has to happen first. A Shopify to ERP integration is not a plugin you install on a Friday afternoon. It is a data governance project that happens to involve Shopify, NetSuite, SAP Business One, Microsoft Dynamics, Odoo, or QuickBooks Enterprise as the two endpoints.

We have built and rebuilt these connections for merchants who tried the quick route first and paid for it twice. This post covers what actually needs to be decided before a single line of integration code gets written, because the planning phase is where most ERP integration failures start.

The one decision that makes or breaks the project

Before anything else, someone has to decide which system is the source of truth for each type of record. This sounds obvious until you sit in the room with a finance lead who assumes the ERP owns everything and a marketing lead who assumes Shopify does. Both are half right, and the half that is wrong is where the project goes sideways.

A working rule of thumb, refined over dozens of these builds, looks like this:

Data type Direction System of record
Product catalog and pricing ERP to Shopify ERP (or PIM if one exists)
Inventory quantities ERP to Shopify (near real time) ERP
Orders Shopify to ERP Shopify
Customer records Bidirectional, with conflict rules Usually ERP for B2B accounts, Shopify for retail
Fulfillment and tracking ERP or 3PL to Shopify Whichever system ships the box
Refunds and returns Bidirectional, tightly sequenced Shopify initiates, ERP confirms
Tax calculation Shopify or tax engine to ERP for reporting Tax engine (Avalara, TaxJar)

Once ownership is assigned, every downstream design decision gets easier. If two systems both think they own customer records, you get duplicate accounts, mismatched credit limits, and support tickets that take twenty minutes to untangle because nobody knows which record is current. We spend more time on this single whiteboard exercise with clients than on any other part of discovery, and it is usually the highest leverage hour of the entire engagement.

Products and inventory move in one direction, usually

In almost every retail and wholesale setup we have built, the ERP is the master for SKUs, cost, and available quantity. Shopify becomes a read replica for that data, updated frequently but never edited directly for those fields. The exception is stores where merchandising teams need to control product descriptions, images, and SEO fields inside Shopify itself. In that case you end up with a split record: commercial fields (SKU, price, stock) flow from the ERP, and content fields stay Shopify native. That split has to be explicit in the integration's field mapping document, or someone will eventually overwrite a hand written product description with a blank ERP field during a routine sync.

Inventory is the part that punishes sloppy design fastest. If your ERP only pushes stock counts once every few hours, you will oversell during high traffic periods, and customer service will absorb the cost in refunds and apology emails. We cover the mechanics of fixing that specific problem in more depth elsewhere, but the short version is that inventory sync needs to be closer to real time than most first drafts of an integration plan assume.

Orders, customers, and fulfillment: who initiates what

Orders almost always flow from Shopify to the ERP, since Shopify is where the sale happens. What varies is how much transformation occurs in between. A B2C order might map cleanly to a standard sales order object. A B2B order placed through a wholesale channel might need customer specific pricing, tax exemption flags, and a different fulfillment location, all of which the ERP needs to receive correctly on the first attempt, because reprocessing a failed order manually does not scale past a handful of mistakes a week.

Fulfillment and tracking numbers typically flow the opposite direction, from whichever system actually ships the order (the ERP, a warehouse management system, or a third party logistics provider) back into Shopify so customers get accurate tracking emails. Refunds are the trickiest of all, because they can originate on either side. A customer service rep might issue a refund in Shopify, or a warehouse team might reject a damaged return and trigger a credit memo in the ERP first. Your integration needs a clear sequencing rule for which system "wins" when a refund is initiated, and a way to prevent double refunding when both systems try to process the same credit.

Middleware, direct integration, or an off the shelf connector

There are three broad architectures for this kind of project, and the right one depends on order volume, the number of systems involved, and how much customization your business processes require.

Off the shelf connectors (apps like Celigo's NetSuite connector, or similar pre built tools for Dynamics and QuickBooks) are the fastest and cheapest path. Expect setup costs from roughly $3,000 to $10,000, plus a monthly subscription in the $200 to $1,500 range depending on order volume. These work well when your business processes match the connector's default assumptions closely. They work poorly the moment you have custom pricing tiers, multiple warehouses, or unusual tax handling, because you end up fighting the tool's built in logic instead of using it.

iPaaS middleware (Celigo, Workato, Boomi, or a custom built layer using something like n8n) sits between Shopify and the ERP and gives you a visual or code based way to define transformation rules. This is the most common choice for mid sized merchants, typically running $15,000 to $50,000 for initial build depending on complexity, plus ongoing platform fees and maintenance. Middleware earns its cost when you have more than two systems to connect, need custom business logic in the transformation layer, or expect to add more integrations (a 3PL, a CRM, a tax engine) over the next year or two.

Direct, custom built integration using Shopify's Admin API and your ERP's native API is the most flexible and most expensive option, generally $25,000 to $80,000 or more depending on scope, with SAP Business One and Dynamics implementations tending toward the higher end because of licensing and consultant availability. This route makes sense when your business logic is too specific for a connector or middleware template, when you need sub minute inventory sync at meaningful order volume, or when you are integrating multiple sales channels against one ERP and need a single orchestration layer you fully control. Our team handles this level of custom Shopify integrations work directly, alongside broader CRM and ERP development for merchants who need the backend rebuilt at the same time.

Do not default to custom built just because it sounds more robust. If you are a single warehouse retailer doing under 500 orders a month with a standard product catalog, an off the shelf connector will save you tens of thousands of dollars and get you live in weeks instead of months.

Why sync frequency is a business decision, not just a technical one

How often data needs to move between systems depends on what happens if it is stale. Inventory needs to be close to real time, ideally webhook triggered rather than polled on a schedule, because a ten minute delay during a promotion can mean dozens of oversold units. Pricing updates can usually tolerate an hourly or even daily batch, since prices rarely change mid day. Order flow into the ERP should happen within minutes so warehouse teams can pick and pack without waiting on a nightly batch job.

Every sync also needs a plan for what happens when it fails, because it will fail eventually: an API rate limit gets hit, a field mapping breaks after someone adds a new product option, or the ERP goes down for scheduled maintenance. A production grade integration needs retry logic with exponential backoff, a dead letter queue or error log that a human can review, and alerting so someone finds out about a failure within the hour rather than discovering it three days later when a customer complains their order never showed up in the warehouse system.

Realistic timelines: 6 to 16 weeks, and why

A connector based integration for a single warehouse, single currency store can realistically go live in 6 to 8 weeks: discovery and field mapping (1 to 2 weeks), configuration and testing (2 to 3 weeks), parallel running alongside the old process (1 to 2 weeks), and cutover. A custom middleware or direct API build with multiple locations, B2B pricing rules, and tax engine integration typically runs 10 to 16 weeks, because the testing phase has to cover far more edge cases: partial shipments, split payments, backorders, currency conversion, and tax exempt customers.

The single biggest cause of timeline overruns we see is not the integration code itself. It is data cleanliness in the ERP. If product SKUs, customer records, or tax codes are inconsistent or duplicated in the source system, no integration can paper over that, and a "quick" project turns into weeks of data cleanup before the sync logic can even be tested reliably. Budgeting time for data audit up front, rather than discovering the mess mid build, is the single most effective way to keep an ERP integration on schedule.

FAQ

How much does a Shopify to ERP integration typically cost?

Costs range widely based on approach: roughly $3,000 to $10,000 for an off the shelf connector, $15,000 to $50,000 for middleware based custom builds, and $25,000 to $80,000 or more for a fully custom direct integration with complex business logic. The right number depends on order volume, number of locations, and how many downstream systems need to stay in sync.

Can we integrate Shopify with SAP Business One or Dynamics ourselves using a low code tool?

For simple, single location setups, yes, tools like n8n or Workato can get a basic sync running without a large development team. Once you introduce multi currency, B2B pricing, or multiple warehouses, the transformation logic usually needs custom development to handle edge cases the low code templates were not built for.

What happens to existing orders and inventory data during the migration?

A well planned cutover includes a historical data migration (or a decision to leave historical orders in the old system and only sync forward) plus a period of parallel running where both systems process data before you fully cut over. This is where a rushed timeline causes the most damage, so build in real time for it rather than compressing it to hit a launch date.

Do we need a full ERP, or would QuickBooks Enterprise be enough?

For merchants under roughly $5 million in annual revenue with a single warehouse and straightforward B2C sales, QuickBooks Enterprise combined with a solid inventory app is often sufficient and considerably cheaper to integrate than a full ERP. Multi entity businesses, complex manufacturing, or heavy B2B wholesale operations usually outgrow QuickBooks and need NetSuite, SAP Business One, or Dynamics to handle the accounting and operational complexity properly.

If you are weighing which architecture fits your order volume and systems, we run a free 1 hour strategy call where we map out your specific data flows before recommending an approach. Book a call through the contact page and bring your current stack, we will tell you honestly whether you need custom integration work or a simpler connector will do the job.

Need help with your website?

Get a free 1-hour strategy call with our team. Clear plan, fixed quote, no obligation.

Get in touch

Comments

Leave a comment

Comments are moderated and appear after approval.