Services AI Automation Google & Bing Ads Magento 2 & Hyva Theme Shopify Development Linnworks Integration SEO Services Company Blog About 🔍 Free SEO Audit Tool FREE 🤖 Free AI Checker FREE 🎨 Theme Demos Get in Touch
Uncategorized

Linnworks Shopify Integration: How to Set It Up, What Breaks, and How to Fix It

Home Blog Linnworks Shopify Integration: How to Set It Up, What Breaks, and How to Fix It

The Linnworks Shopify integration is one of the cleaner multichannel setups available — native App Store install, OAuth authentication handled by Shopify, no manual API key management. For most single-warehouse merchants, getting it running is genuinely DIY-capable. But "running" and "running correctly" are different things, and the gap between the two is where stock discrepancies and missed orders live.

This guide covers the full integration: how the setup works, what actually syncs, the three failure modes every merchant eventually hits, and the Shopify-specific behaviour that catches operators off guard — multi-location, refunds, B2B draft orders, and Shopify Markets. If you're migrating from Magento and need to understand how your Linnworks config changes, there's a dedicated section for that too. For specialist help with any of this, talk to our Linnworks integration specialists.


What the Linnworks–Shopify Integration Actually Does

Linnworks connects to Shopify via the official Linnworks app on the Shopify App Store. Here's what the integration handles — and where it stops:

Data type Direction Notes
Orders Shopify → Linnworks Downloads on trigger — when order matches your configured payment status (default: paid). Not interval-polled.
Stock levels Linnworks → Shopify Linnworks is the stock master. Default: 5–15 min polling interval. Real-time push available on Standard+.
Shipping confirmation / tracking Linnworks → Shopify Marks order as fulfilled in Shopify and pushes tracking number when despatched in Linnworks.
Channel listing management Bidirectional Linnworks can manage Shopify product listings for SKU and stock purposes. Not a substitute for Shopify's native product editor.
Custom metafields Does NOT sync Shopify metafields are not accessible to Linnworks natively.
Draft orders (Shopify B2B) Does NOT sync by default Draft orders use a separate Shopify API endpoint. Not downloaded to Linnworks unless specifically configured.
Shopify refunds / restocks Does NOT auto-sync Refund in Shopify does NOT automatically reinstate stock in Linnworks. Manual adjustment or return flow rule required.

The Setup Process — Step by Step

Getting the Linnworks Shopify integration connected is straightforward — the App Store OAuth flow handles the token exchange automatically. Here's the full setup in sequence:

Step 1
Pre-setup requirements
Linnworks account on Standard plan or above. Shopify on Basic plan or above. Admin access on both. Have your warehouse(s) and default currency confirmed before starting — you'll need to map them during setup.
Step 2
Install from Shopify App Store
In Shopify Admin → Apps → search "Linnworks" → Install. The App Store OAuth flow handles all authentication — Shopify grants Linnworks an access token automatically. There is no manual API key entry required. This is the key architectural difference from the Magento connector, which requires manual OAuth configuration via Magento Admin. See our Linnworks Magento integration guide for a full comparison of the two setup approaches.
Step 3
Channel mapping
In Linnworks, go to Settings → Channel Integration → the newly connected Shopify channel. Assign your warehouse to the channel, set default country of origin, confirm currency. If you have multiple warehouses, assign the correct one to the Shopify channel — stock will only push from the assigned warehouse.
Step 4
SKU reconciliation — most common setup failure
This is where most setups go wrong. The Linnworks item SKU must exactly match the Shopify variant SKU field — character for character, case-sensitive. If a Shopify product has variants (size, colour etc.), each variant needs its own SKU in Shopify's variant SKU field that matches the corresponding Linnworks item. Shopify often leaves variant SKU fields blank by default. Go to Products → each product → Variants → check SKU field. Blank = unmapped = stock will not sync for that variant.
Step 5
Order download rules
Set which Shopify order payment statuses trigger download to Linnworks. Default: paid. If you accept payment on collection, bank transfer, or COD orders, those will have a different status and won't download unless you add that status to your rules. Check Settings → Channel → Shopify → Order Download Rules.
Step 6
Stock sync direction and initial import
Confirm Linnworks is the stock master — Shopify receives stock updates from Linnworks, not the other way around. Trigger an initial stock push from Linnworks to Shopify to set the baseline. After that, every Linnworks stock movement (despatches, PO receipts, manual adjustments) should reflect in Shopify within one sync cycle.

The 3 Most Common Sync Failures (With Causes and Fixes)

These are not edge cases. Every merchant running this integration long enough encounters at least one. None of them generate a clear alert in either system — which is exactly what makes them dangerous.

Failure 1: Stock Not Updating in Shopify After Linnworks Fulfils

Root cause
The default Linnworks→Shopify stock sync runs on a 5–15 minute polling interval, not in real time. Stock changes in Linnworks (from a despatch, a PO receipt, a marketplace sale) do not instantly reflect in Shopify — they wait for the next poll cycle. During that window, your Shopify product page shows the pre-update stock level.

Oversell exposure: If you're running flash sales or high-velocity promotional campaigns, the 5–15 minute lag creates a real oversell window. The exact same risk pattern exists on the Magento connector — we've documented this in our Linnworks Magento integration guide. The solution on Shopify is cleaner: enable "real-time stock push" in your Shopify channel settings in Linnworks. This requires Linnworks Standard+ and uses Shopify's webhook infrastructure rather than polling. Once enabled, stock updates push within seconds of a change in Linnworks.

Fix: In Linnworks → Settings → Channel Integration → Shopify channel → enable Real-Time Stock Push. Verify by adjusting stock on a test item in Linnworks and checking Shopify Admin within 30 seconds.

Failure 2: Orders Not Downloading from Shopify to Linnworks

Three distinct root causes — diagnose in this order:

(a) Payment status mismatch
Order exists in Shopify but its payment status doesn't match your Linnworks download rule. Common on COD orders, bank transfer orders, or Shopify's pending status for orders awaiting payment. Check the order's status in Shopify → compare against Settings → Channel → Shopify → Order Download Rules in Linnworks. Add the missing status if legitimate orders are being excluded.
(b) SKU mismatch
The Shopify variant SKU field doesn't match the Linnworks item SKU. The order downloads but the line items can't be matched to Linnworks inventory items — so they sit in a holding state or don't process correctly. Fix: In Linnworks → Settings → Channel → Shopify → View Listings → filter by "No SKU Match". This shows every Shopify variant that isn't mapped to a Linnworks item. Correct the SKU in Shopify's variant SKU field (or in Linnworks) until the match is 100%.
(c) OAuth token revoked
If Shopify app permissions were updated — by Shopify's system or by a merchant action — the OAuth token Linnworks holds can be revoked. Linnworks attempts to connect and fails silently. Fix: Re-authenticate from Shopify Admin → Apps → Linnworks → re-grant permissions. Critical: Do NOT uninstall and reinstall the app — this risks losing channel history and order download continuity. Re-authenticate only.

Our Linnworks integration specialists can diagnose which of these root causes is affecting your setup if you're seeing orders go missing.

Failure 3: Inventory Going Negative in Linnworks After Shopify Import

Root cause
Shopify's "continue selling when out of stock" setting is enabled on one or more products, and Linnworks doesn't have a minimum stock level configured to prevent it from going below zero. Result: Shopify accepts orders for out-of-stock items → those orders download to Linnworks → Linnworks processes them against zero or negative stock → inventory count goes negative.

Fix: Two options — either disable "continue selling when out of stock" in Shopify product settings (cleanest for most merchants), or set a minimum stock level per SKU in Linnworks so that stock can't push below your floor to Shopify. For Shopify Plus merchants on multi-location, note that each Shopify location requires its own warehouse mapping in Linnworks. If a location is unmapped, stock isn't decremented against it — which causes phantom availability and negative inventory at the location level.


Shopify-Specific Linnworks Behaviour You Need to Know

The Shopify integration has quirks that the setup documentation doesn't make obvious. These matter at scale.

Refunds — not automatic
A Shopify refund does NOT automatically reinstate stock in Linnworks. If a customer returns an item and you process a refund in Shopify, Linnworks doesn't receive a stock-back signal. You need either a manual Linnworks stock adjustment on the returned item, or a custom return flow rule in Linnworks that handles restock automatically. Without one of these, every return quietly understates your actual stock level.
Shopify Plus B2B — draft orders excluded by default
Shopify B2B company orders (placed through Shopify's B2B portal or via SparkLayer) are created as draft orders — a separate Shopify API endpoint from regular customer orders. Linnworks does NOT download draft orders by default. Merchants using Shopify B2B with Linnworks need to confirm their B2B order flow separately and either configure a custom Linnworks integration for draft orders or use a middleware solution. This is a common surprise for Shopify Plus B2B merchants.
Shopify Plus multi-location — each location needs mapping
Shopify Plus allows multiple fulfilment locations. In Linnworks, each Shopify location must be mapped to a corresponding Linnworks warehouse. If you add a new Shopify location after the integration is set up, you must return to Linnworks and re-map — it doesn't auto-detect new locations. An unmapped location means stock isn't decremented against that location when orders are processed, leading to inventory discrepancies that compound over time.
Shopify Markets — pricing unaffected, stock unaffected
If you're using Shopify Markets for international pricing and currency display, Linnworks sees the base price only — it does not receive market-specific pricing. This is expected behaviour: price display is handled entirely on the Shopify side. Stock sync is unaffected by Markets configuration — it operates at the product/variant level regardless of which market a customer is browsing from.

Migrating from Magento to Shopify? Your Linnworks Config Changes

This section is for the reader who's mid-migration from Magento to Shopify and needs to understand exactly what changes in their Linnworks setup. This is the highest-intent searcher in this SERP — someone who knows both platforms, already runs Linnworks, and needs a reliable handover checklist.

Key architectural difference: Magento connector vs Shopify App

The Magento connector uses extension-based installation (LINN-M2 or similar Magento Marketplace extension), JWT authentication, and a cron-based sync schedule managed server-side. The Shopify integration uses the Shopify App Store — OAuth authentication handled by Shopify, no server-side configuration needed, and webhook-driven near-real-time stock push available on Linnworks Standard+. Simpler to set up, simpler to maintain, simpler to re-authenticate when something changes. For the full Magento connector walkthrough, see our Linnworks Magento integration guide.

SKU strategy — the critical rule

Do not let Shopify auto-generate new SKUs. Your existing Linnworks item SKUs from the Magento build must be preserved in the Shopify variant SKU field. When products are created or imported into Shopify, the variant SKU field is often blank by default — Shopify doesn't require SKUs. Fill them manually or via CSV import from your Linnworks item list. Shopify-generated SKUs will not match your Linnworks items, and the entire stock sync will fail on first connection.

Order status mapping for migration

Magento used custom order status codes that your Linnworks download rules were configured to recognise. Shopify has a fixed status set: pending, authorized, partially_paid, paid, partially_refunded, refunded, voided. Before disconnecting the Magento connector from Linnworks, map your existing custom Magento statuses to their Shopify equivalents and update your Linnworks download rules accordingly — so that from day one on Shopify, the right order statuses are being processed.

Post-migration verification protocol

  1. Disconnect Magento Linnworks connector (deprecate, don't just pause — see our Magento to Shopify Plus migration guide for the full deprecation sequence)
  2. Install Linnworks Shopify App, complete OAuth flow
  3. Verify all variant SKUs are populated in Shopify and match Linnworks items (use the "No SKU Match" filter in Linnworks)
  4. Place three test orders on Shopify staging → confirm they download to Linnworks correctly
  5. Trigger a stock push from Linnworks → verify stock levels update in Shopify Admin
  6. Mark a test order as despatched in Linnworks → confirm Shopify marks it as fulfilled with tracking
  7. Verify real-time stock push is enabled (Standard+ only) — or document your polling interval and communicate the sync lag to your ops team

See our full Magento to Shopify migration guide for the complete replatform process, including data migration and redirect strategy.


Is the Linnworks Shopify Integration Right for Your Business?

For most UK merchants running Shopify with a meaningful SKU count across multiple channels, Linnworks is the right choice. The integration is robust, the App Store authentication makes it easier to maintain than the Magento connector, and the real-time stock push on Standard+ eliminates the oversell risk that polling-based syncs create.

Where it breaks down: if your WMS or ERP already handles multichannel inventory and you're adding Shopify as a supplementary channel, you may not need Linnworks at all — Shopify's native inventory management handles single-warehouse operations cleanly. The complexity cost of Linnworks is only justified when you're genuinely managing inventory across multiple channels (Shopify + Amazon + eBay + wholesale) or multiple warehouses.

The integration quirks — refunds not reinstating stock, draft orders excluded, B2B multi-location mapping — are all manageable with correct initial configuration. They become problems only when the integration is set up by someone who hasn't encountered them before. If you're setting this up fresh or troubleshooting an existing integration, our Linnworks integration specialists have handled every failure mode documented here. Talk to us before you spend a weekend diagnosing a SKU mismatch.

Working with a Magento 2 development company and planning a replatform? The integration rebuild is part of our migration scope — we don't just move the store, we reconnect everything that was running on it.


Frequently Asked Questions

Ready to grow your ecommerce business?

Book a free strategy call. We'll look at your store, identify the biggest opportunities, and give you a clear plan — no obligation.

Book a Free Strategy Call →