When a Shopify Sync App Changes Stock You Never Approved
A sync app reported success but changed, duplicated or deleted stock and products on another store. How to spot it, contain it, recover and prevent it.
In this guide
The short answer: if a multi-store sync app changed stock or products on one of your Shopify stores without anyone approving it, stop the sync first, then compare what Shopify itself reports against what you expected, and repair the damage from Shopify’s own records. Do not trust the app’s “synced successfully” message as proof of anything.
This is a common complaint in public app reviews and Shopify Community threads from merchants who run several stores. The pattern is the same: a background process wrote to a live store, nobody saw the change first, and the tool still reported success. This guide covers how to detect it, contain it, recover, and catch the next mistake before it reaches a store.
If you are still choosing how to keep stores in step, start with how to keep inventory in sync across multiple Shopify stores. This post is for when something has already gone wrong.
What “silent” sync damage looks like
Sync tools connect two or more stores and copy changes from one to the other. When the mapping or the rules are wrong, the tool does exactly what it was told, on every store it is connected to. Merchants describe a few recurring failures:
| What happened | What you usually notice first |
|---|---|
| Stock overwritten with the wrong number | Products show as sold out, or you oversell an item you do not have |
| Stock changed twice for one sale | Counts drop faster than sales explain |
| Products duplicated on the target store | Two listings with the same title or SKU, split reviews and stock |
| Products or variants deleted on the target store | Broken links from ads and emails, missing items in collections |
| Prices, titles or tags copied to a store that should differ | A regional store shows the wrong price or language |
In each case the change was applied before anyone looked at it, and nobody checked the result. A success message only tells you the tool sent its requests, not that the stores now hold what you intended.
Step 1: Contain it before you investigate
Every minute a broken sync keeps running, it can write more bad data. Contain first, diagnose second.
- Pause or disconnect the sync in the app’s own settings. If the app has no pause, uninstalling it from the affected store stops further writes, but check what uninstalling does to the app’s data and mappings before you do it.
- Write down the time you noticed the problem and the time you paused the sync. You will need this window to find the changes.
- Protect fast sellers. If stock was set too high, you may be overselling right now. Set those variants to a safe number by hand, or stop selling them until the counts are confirmed.
- Tell your team not to “fix” stock by hand in parallel. Two people correcting the same numbers is how a one-store problem becomes a mess you cannot trace.
- Do not delete anything yet. Duplicates are annoying, but deleting the wrong copy can make things worse (see Step 3).
Step 2: Find out what actually changed
Shopify keeps some history of its own. Use it, because it records what landed in the store, not what the sync app thinks it sent.
Inventory: the adjustment history
For each tracked product or variant, Shopify shows an adjustment history on the product details page: open the product, select the variant, and click View adjustment history. Each row shows the date, the activity that caused the change, and who made it, including the staff member, app or sales channel. Shopify keeps only the last 180 days of this history on the product page. See Shopify’s help page on inventory adjustment history.
The “created by” column is what you want. It lets you separate changes made by orders and staff from changes made by the sync app.
The history is per variant, so for many products it is slow. For a wider view, Shopify’s analytics include inventory adjustment metrics you can break down by SKU and change reason. See Shopify’s help page on inventory adjustment reports.
One gap to know about: according to Shopify’s help page on bulk editing inventory, the bulk editor sets absolute quantities and does not create an audit trail of inventory movements. If someone on your team “fixed” counts with the bulk editor during the incident, those fixes will not explain themselves later.
Products: what you can and cannot get back
Shopify is clear that a deleted product is gone: “When you delete a product, it’s permanently removed from Shopify,” and deleted products can’t be restored (Shopify’s help page on adding and updating products). Archived products, by contrast, move to the Archived tab and can be unarchived, returning as Draft.
So for deleted products, your recovery source is outside the affected store:
- The same product on another store you run, if it was not damaged
- A recent product CSV export
- The sync app’s own logs or snapshots, if it keeps any
Build one comparison sheet
Put what you find in one table per affected store:
| Store | SKU / product | Expected | What Shopify shows now | Changed by | Fix |
|---|---|---|---|---|---|
| Store B | SKU-123 | 40 on hand | 0 available | Sync app | Set back to 40 after a count |
| Store B | Linen shirt | 1 listing | 2 listings | Sync app | Archive the duplicate |
“Expected” should come from a physical count or a trusted source, not from the other store: if the sync copied a wrong number from store A to B, store A is wrong too.
Step 3: Recover, one store at a time
Work through the comparison sheet store by store. Fixing everything at once is how a second round of errors happens.
- Stock. Correct quantities from the product or inventory page rather than the bulk editor, so each correction appears in the adjustment history with a reason. If you are not sure of the true number, count first.
- Duplicates. Decide which copy to keep before touching either. Check which one has the orders, reviews, URL in your ads and collection memberships. Archive the other rather than deleting it, so you can undo the choice.
- Deleted products. Re-create them from a CSV export or another store. Expect to rebuild things a CSV does not carry. Our guide to Shopify product CSV import and export covers what a file includes.
- Prices and content. Re-apply per-store values that the sync overwrote, such as regional prices or translated titles.
- Read back. After each store is fixed, check it again in Shopify admin. Do not mark a row done until the store shows the right value.
If orders were affected, for example overselling stock you did not have, handle the refunds and cancellations through your normal process. Our guide to a Shopify returns and refunds process covers who should approve them.
Step 4: Prevent it next time
The fix is not “never use automation”. It is making sure a person sees a risky change before it reaches a store, and that someone confirms what each store holds afterwards.
Review before writing
Any change that sets stock, deletes products or touches many items at once should be visible as a list before it is written: which store, which item, the value before and after. That list is what turns “set everything to 0” from an incident into a rejected change. Our guide to approval workflows for live Shopify store changes covers who should approve what.
Read the store back
After a write, check the store against what Shopify reports, not against the tool’s log. This catches partial failures, where one store updated and another did not, and double writes.
Set limits
Ask any tool that writes to your stores:
- Can it delete products, or only update them? Turn deletion off if you do not need it.
- Is there a cap on how many items one run can change?
- Does it set absolute quantities or adjust them? Absolute “set to” writes are the ones that can wipe out counts.
- Can you scope it to some stores, collections or locations?
- Does it keep a log you can export, with the values before and after?
Get alerts from Shopify itself
Shopify Flow has a trigger that starts a workflow when a variant’s inventory changes, including changes made by an app, and gives you the previous quantity (Shopify’s help page on the trigger). You can use it to send yourself a message when, for example, a fast-selling variant drops to zero. It does not stop a bad write, but it shortens the time before someone notices.
Keep a recovery copy
Export your products to CSV on a schedule, and before any large sync job. It is the simplest way to recover from a deletion Shopify cannot undo.
Before BFCM 2026
Black Friday falls on November 27, 2026. A sync failure during peak traffic costs more and is harder to untangle, because legitimate order activity hides the bad changes. In the weeks before:
- Run a dry test of your sync on a few products and check every store afterwards.
- Export products from every store.
- Decide who can pause the sync and how, and write it down.
- Freeze non-urgent rule changes in your sync or bulk tools for the peak weeks.
- Read our post-holiday stocktake guide now, so you know how you will reconcile afterwards.
Incident checklist
- Sync paused, time window recorded
- Fast sellers protected from overselling
- Adjustment history checked for each affected variant, “created by” noted
- One comparison sheet per store, with expected values from a trusted source
- Duplicates archived, not deleted
- Deleted products re-created from CSV or another store
- Each store read back in Shopify admin after fixing
- Limits set on the tool before it runs again
Where StoreFleet fits
Storefleet Store Ops does not sync stock or products between stores, and that is deliberate. It is a workspace for several stores where changes to stock, discounts, refunds, cancels and captures are previewed with before and after values, approved for each store from one Approvals list, read back from Shopify after writing, and rolled back where Shopify allows. Each change belongs to one store and is approved for that store. If you want a person to look at every change before it lands, see how to manage multiple Shopify stores’ inventory without risky bulk edits or the broader guide to making changes across multiple Shopify stores.
If the incident also left you without a clear picture of refunds across stores, see refund and order reports across Shopify stores.
FAQ
Can I see which app changed my inventory in Shopify?
Yes, for tracked inventory. The adjustment history on each product or variant shows who made each change, including the staff member, app or sales channel. The product page keeps the last 180 days.
Can I restore a product a sync app deleted?
Not from Shopify. Shopify states that deleted products are permanently removed and cannot be restored. Re-create it from a CSV export, from another store, or from the app’s own backup if it has one.
Why did the sync app say it succeeded?
A success message usually means the app’s requests were accepted, not that the stores ended up as you intended. A wrong mapping or rule is applied successfully too. Check each store against Shopify, not against the app’s log.
Should I stop syncing stores altogether?
Not necessarily. Some stores need live stock sync, for example when they share one shelf. Limit what the sync may do, keep backups, and add a review step for large or destructive changes.
Does the bulk editor leave an inventory history?
According to Shopify, the bulk editor sets absolute quantities and does not create an audit trail of inventory movements. Adjusting from the product or inventory pages does.