Skip to content

Inventory & stock

Sync Shopify inventory with Google Sheets — without overselling

A spreadsheet is the fastest way to manage stock and prices across channels — and the easiest way to oversell if the sync just overwrites your live numbers. Here is how a Shopify inventory sync with Google Sheets should actually behave, and where the dangerous shortcuts hide.

Why inventory is the highest-stakes thing to sync

A wrong product title is embarrassing. A wrong stock number costs money and trust. When you bulk update Shopify prices from Google Sheets, the worst case is a brief mispricing you can correct. When you push the wrong quantity, you can sell items you do not have — and oversold orders mean refunds, cancellations, support tickets, and unhappy customers who may not come back.

Inventory is also the most time-sensitive field on a product. A description rarely changes between Monday and Tuesday. Available stock can change in seconds — every checkout, return, and warehouse transfer moves the number. That makes inventory uniquely unforgiving of stale data: a quantity that was correct when you exported your sheet this morning may be wrong by lunch.

One-way push vs. true reconciliation

Most spreadsheet-to-store workflows are a one-way push: take the numbers in the sheet, write them to Shopify, done. That is simple and predictable — and it is exactly where overselling comes from. If a sale happened between when you last edited the sheet and when you ran the import, a blind push writes the old number back over the live one, quietly inflating availability.

Reconciliation is the safer model. Instead of treating the spreadsheet as absolute truth, a reconciling sync reads the current live level, compares it to what the sheet expects, and decides what to do when they disagree. Shopify's own CSV tooling moved in this direction: as of 2026, the inventory CSV separates On hand (current) from On hand (new), and rows whose live level changed since your export are rejected so you do not silently overwrite a recent sale. That is the same principle — refuse to guess when the world has moved underneath you.

ApproachWhat it doesOversell risk
Blind one-way pushWrites the sheet's number over Shopify, no questions asked.High — stale numbers overwrite real sales.
Delta / adjustment pushAdds or subtracts a change rather than setting an absolute value.Lower for adjustments, but drifts if the sheet and store disagree on the base.
ReconciliationReads live levels, compares to expected, and flags conflicts before writing.Lowest — disagreements surface instead of being overwritten.
Watch out: Shopify's "Continue selling when out of stock" setting (available only when inventory tracking is on) lets checkouts proceed even at zero, allowing the count to go negative for that variant. A sync can't fully protect you from overselling if this setting is on — verify it per variant before you rely on stock numbers as a hard stop.

Multi-location is where spreadsheets quietly break

Single-location stores have it easy: the standard Shopify product CSV's inventory quantity column is enough. Once you turn on a second location — a second warehouse, a retail counter, a 3PL — quantity stops being one number per variant. Each variant now holds a separate quantity per location, and the product CSV can no longer express that.

For multiple locations, Shopify uses a dedicated inventory CSV keyed by Handle, the variant's Option values, and the Location name. A shopify stock sync spreadsheet that does not carry the location dimension will either fail to update the right place or pile all stock onto one location — which can show items in stock at a warehouse that cannot actually ship them.

Tip: If you run more than one location, make sure your spreadsheet has an explicit location column and that your sync writes per-location, not just a single "total" quantity. A total can look right while every location underneath it is wrong.

Scheduled vs. real-time: pick your drift

There are two timing models for keeping a sheet and a store aligned, and each trades convenience for freshness:

Neither timing model removes the core requirement: whenever you actually write, you should be reconciling against Shopify's current number, not a figure that was true the last time the sheet was touched.

How a safe inventory sync should behave

Strip away the marketing and a trustworthy update Shopify inventory from spreadsheet workflow comes down to four habits:

  1. 1

    Observe live levels first

    Read what Shopify currently holds — per variant, per location — before deciding anything. Never write from memory of an old export.

  2. 2

    Refuse to guess

    When the sheet and the live level disagree, surface the conflict for a human instead of silently overwriting. A blank cell should mean "leave it alone," not "set to zero."

  3. 3

    Snapshot before writing

    Capture the affected products' state before any change. As of 2026, Shopify's native bulk editor has no built-in undo or version history, so a snapshot is your safety net.

  4. 4

    Reconcile, then make it reversible

    Apply only the deltas that make sense against live data, and keep the pre-write snapshot so a mistake can be rolled back rather than re-typed by hand.

How SheetBridge is designed to approach this

SheetBridge is in development and not yet live — the first step today is the waitlist, not a purchase. Here is the intent behind the design, framed honestly as what it is built to do rather than results it has delivered:

Two-way, not blind push

SheetBridge is built to read live Shopify levels and reconcile against your sheet, so a stale number is less likely to overwrite a real sale.

Snapshot before every write

It is designed to capture the affected products before each change, so a bad edit is meant to be reversible — built to make rollback one click rather than a manual re-import.

Location-aware

SheetBridge is designed to handle per-location quantities rather than collapsing your stock into a single total that hides where the inventory actually sits.

Conflicts surfaced, not swallowed

When the sheet and store disagree, the intended behavior is to flag it rather than guess — so you decide, and nothing is overwritten quietly.

Rollback and real-time sync are planned for the Pro tier; multi-store and API access for Plus. Early-access founders on the waitlist are intended to lock founder pricing. To see the broader model, read the companion guide on two-way Google Sheets and Shopify sync.

FAQ

Can I sync Shopify inventory from Google Sheets in real time?

Two timing models exist. Scheduled sync runs on an interval, so live stock can drift between runs. Event-driven or near-real-time sync reacts to changes more quickly. Whichever the timing, the safer pattern is to read Shopify's current level at the moment of writing and reconcile against it, rather than trusting a stale spreadsheet number.

Why does syncing a spreadsheet to Shopify cause overselling?

Overselling usually comes from a one-way push that overwrites Shopify's live quantity with a number that was already out of date when the sheet was last edited. If a sale happened between your last export and your import, blindly writing the old figure can push the available count back up and let customers buy stock you no longer have.

How is multi-location inventory different in a Shopify sync?

For stores with one location, the standard product CSV's inventory quantity column is enough. For multiple locations, Shopify uses a separate inventory CSV keyed by Handle, Option values, and Location name, because each variant holds a separate quantity per location. A sync that ignores the location dimension can move stock at the wrong place.

Does Shopify let me undo a bad bulk inventory edit?

As of 2026, Shopify's native bulk editor does not provide a built-in one-click undo or version history for bulk edits. The common workaround is to keep a CSV backup before editing. SheetBridge is designed to capture a snapshot of the affected products before every write so a bad change is reversible.

A Shopify sync you can always undo.

SheetBridge is launching soon — two-way Google Sheets ↔ Shopify sync that's designed to snapshot before every write and roll back in one click. Join the waitlist for founder pricing locked for life.