TWO-WAYSyncNest guide

Two-way sync: editing in the sheet, pushing back to Shopify.

Write-back is not the mirror image of the sync. It runs when you ask it to, it only touches the fields you mapped, and it has a rule for who wins.

Updated 25 September 2026 · 4 min read · Verified against SyncNest's own code

"Two-way sync" sounds symmetrical. It isn't, and the asymmetry is the most useful thing to understand before you turn it on.

Shopify → Sheet is driven by webhooks: the row changes because the record changed. Sheet → Shopify is driven by you: nothing leaves the spreadsheet until a sync runs. That is deliberate. A spreadsheet is a place where people paste, drag-fill and half-finish things, and a live write-back would push every one of those keystrokes into your store.

What a sheet edit can change

Write-back touches the fields the sync maps, and nothing else:

Resource Writable from the sheet
Orders Tags, note
Inventory Available quantity, per location
Products Title, status, vendor, type, tags, and price for single-variant products

Price is the one with a caveat. It writes for products with a single variant. A price edit on a multi-variant product is skipped with a message rather than guessed at, because a single price cell cannot say which variant it meant. If you need multi-variant pricing from a sheet, that is not a thing this does.

Everything not in that table is read-only. A sync will not create orders, delete products, or edit a customer record from the sheet.

When the push actually happens

Three ways, and they are worth telling apart:

  • Sync now, on the sync card. On a two-way sync this runs the push first and then pulls.
  • Scheduled reconcile, on the Starter plan and above. It re-reads both sides on a schedule and repairs drift.
  • Never automatically on a keystroke. There is no watcher on your sheet.

That "push first, then pull" order matters enough that the app confirms it. On a two-way sync, Sync now warns that it will first apply the current contents of the tab to Shopify, overwriting the fields the sync maps, and only then pull. Which is the honest description of what two-way means, and the reason the button asks before it runs.

If you have half-edited a tab and you hit Sync now, the half-edit is what gets applied. Read the confirmation.

Which side wins

Every sync carries a conflict policy, and the default is Shopify wins.

SyncNest's sync form showing direction set to Shopify to Sheet, conflict policy set to Shopify wins, line-item mode for orders on the Pro plan, a mark-rows-as-deleted option, and the customer PII consent checkbox
Direction and conflict policy sit next to each other on the form, because they are the same decision asked twice.

That default is the conservative one: if a record changed in Shopify and the matching row changed in the sheet since the last sync, the store's version survives and the row is corrected. It is the right setting for a sync you are reading rather than writing.

But the bulk-editing templates deliberately ship the other way round. Pick Bulk product & price editor or Bulk inventory editor from the template list and the sync arrives set to sheet wins, because for those jobs the sheet is the source of truth, and Shopify-wins would quietly undo the edits you came to make.

So the rule is not "always pick Shopify wins". It is: whichever side you are editing in should win, and you should know which one that is before the first push.

Three patterns that work

Bulk product editing. A products sync in two-way mode is a bulk editor with version history: filter, sort, fill down a vendor or a tag across 200 rows, then push. Far faster than the admin for repetitive edits, and the sheet keeps a record of what it looked like before.

A Google Sheet of Shopify products with a green header: title, status, vendor, type, handle, tags and updated timestamp, showing 24 products across several vendors
A products tab in two-way mode. Edit the cells, push, and the admin catches up.

Stock counts. An inventory sync in two-way mode is a stocktake sheet. Count on a phone, type into the Available column, push once at the end.

Order triage. Tags and notes are writable, so a team can work a queue in the sheet, tag rows as packed, chase, refund-asked, and have those tags land on the orders themselves.

The pattern they share: the sheet is a staging area you review, and the push is a deliberate act.

Before you turn it on

  1. Start one-way. Run the sync as Shopify → Sheet for a day. Check the columns are what you expect before anything can write back.
  2. Switch direction on a small sync first. Products with a handful of rows, not your whole catalogue.
  3. Decide the conflict policy on purpose, rather than accepting the default without reading it.
  4. Know the plan gate. Write-back needs the Starter plan or above. On Free a two-way sync shows a notice saying so, rather than quietly running one-way.

What it does not do

No undo. A push is applied through Shopify's API like any other edit, so reversing it means editing again, from the sheet, or in the admin. That is the reason for the confirmation dialog and for keeping the tab reviewed rather than live.

And it will not invent records. Write-back edits things that already exist; it does not create products or orders from new rows.

See what SyncNest does, write-back is on the Starter plan and above, and every plan can run the read-only direction first.

FAQCommon questions

Is the sync real-time in both directions?
No, and the distinction matters. Shopify to Sheet is driven by webhooks, so it is effectively live. Sheet to Shopify happens when you run the sync, or on the scheduled reconcile, which is on the Starter plan and above. Nothing leaves your sheet until then.
What can I actually change from the sheet?
Order tags and notes; inventory available quantities; and product title, status, vendor, type and tags. Price is writable for single-variant products, a multi-variant price edit is skipped with a message rather than applied to the wrong variant.
What happens if the same record changed on both sides?
The sync's conflict policy decides. A sync you create yourself defaults to Shopify wins, but the bulk-editing templates deliberately ship set to sheet wins, for those the sheet is the source of truth. Whichever side you are editing in should be the side that wins, and it is set per sync.
Can I undo a push?
Not as a single action, so the confirmation before a two-way run tells you exactly which tab is about to be applied and which fields it maps. Treat the sheet as the draft and read it before you push.

NEXTKeep reading

INBOXStill stuck?

If something here doesn't match what you see in the app, tell us. The guides are written from SyncNest's own behaviour and we fix them when it changes. support@appnest.studio.

About SyncNest