Why won't Shopify sync inventory with my master Google Sheet?

Shopify has no built-in live sync to a Google Sheet, so merchants trying to keep one master inventory spreadsheet end up patching together exports, automation tools, or custom webhooks.

inventoryGoogle Sheetsautomationwebhooksmulti-location

What's going on

You keep a master Google Sheet to plan stock across suppliers and channels, or just as a sanity check, and you want it to reflect what Shopify actually has on hand, or better yet, you want to edit the Sheet and have Shopify update. There is no setting in Shopify admin that does this out of the box. Inventory quantities live in Shopify's own database, tied to locations and variants, and there is no native connector that treats a Google Sheet as a live data source or destination.

This surprises a lot of merchants who assume something this common must be a checkbox somewhere. It isn't, because Shopify's inventory model is transactional: orders, returns, and POS sales all decrement stock in real time, and a spreadsheet has no way to participate safely in that kind of transaction. Any sync has to be built on top, using a manual export and import loop, a no-code automation tool, or a custom integration against Shopify's API.

The result is that merchants either reconcile by hand every week, cobble together an automation that goes stale, or ask a developer for a quick sync, which then surfaces the actual hard part: deciding how often the two sides talk to each other and what happens when both have changed the same item since the last sync.

Why it happens

Shopify treats inventory as a live, transactional number tied to variants and locations, updated the instant an order, return, or POS sale happens. A Google Sheet is a static document with no concept of transactions or locking, so there is no safe native bridge between the two. Any sync layer has to be built by you, a no-code tool, or an app.

The deeper issue is usually that sync means different things depending on direction and frequency. A one-way, scheduled pull from Shopify to the Sheet for reporting is straightforward to automate. A true two-way sync, where edits in the Sheet write back to Shopify, is a much harder problem because it requires a conflict policy for when both sides change the same SKU between syncs, and no generic tool decides that for you.

5 ways to fix it

1

Make the Sheet a report, not a mirror

Stop trying to keep two live copies in sync. If Shopify is your operational system, orders, POS, and storefront sales all draw down stock there, treat the Sheet as a read-only report that pulls from Shopify on a schedule rather than a place where staff edit numbers that then have to push back. That one decision removes most of the conflict headaches merchants run into.

2

Use Shopify's built-in CSV export and import for periodic reconciliation

For a daily or weekly check-in, Shopify's Inventory page lets you export current on-hand quantities to a CSV and re-import an edited CSV to bulk-update stock levels by location. It is manual and not real-time, but it is free and built in, and it fits fine if what you actually need is a periodic audit against a supplier sheet rather than live two-way sync.

3

Automate one-way sync with Flow, Zapier, or Make

If you want Shopify inventory changes to land in a Sheet automatically, Shopify Flow can trigger store-side automations off inventory events, and connector tools like Zapier or Make have ready-made Shopify and Google Sheets steps that pick up inventory updates and write them to rows. This gets you near-real-time visibility in the Sheet without building your own integration, and because it only flows one direction, it sidesteps conflict problems entirely.

4

Build a webhook-driven sync only if you truly need two-way

A custom two-way sync is real but not trivial. Shopify's Admin API exposes webhooks for inventory changes and mutations for adjusting quantity at a location, so a script can catch changes on either side and push them to the other. Before building this, decide your sync frequency (every change versus batched) and your conflict policy for when both sides changed the same SKU between syncs. Skipping that decision is why most DIY syncs eventually drift and get abandoned.

5

Consider a dedicated inventory app if you're outgrowing spreadsheets

If you're juggling multiple sales channels, suppliers, or locations and the spreadsheet is really standing in for a proper inventory system, a purpose-built inventory management app from the Shopify App Store will handle conflict resolution, audit trails, and multi-location logic far more reliably than any Sheets integration, native or third-party.

Bottom line

There is no built-in, native, real-time two-way sync between Shopify and Google Sheets, and for most stores there probably shouldn't be one. A one-way, reporting-only sync is simpler, safer, and covers most of what merchants actually want a master sheet for. Reach for a two-way webhook build only if you have a genuine need to edit stock from the Sheet, and only after you've written down your sync frequency and conflict policy. This is mainly a workflow and integration decision rather than a missing feature, and a general-purpose inventory app may serve you better than a custom sync once things get complex.

Still Stuck?

Browse the rest of the problem library, run a free storefront scan to catch issues like this automatically, or email us and we'll work out a custom solution for it.