Duplicate products when syncing Shopify stores

Duplicates are the most expensive way a sync app can fail. A wrong stock number is a number; a second copy of a product splits your inventory, your reporting and your customers' search results, and cleaning it up by hand is a day of work that nobody planned for.

How they are created

Always the same way: the app cannot recognise that a product in the receiving store is the same product it already has, so it creates a new one. The recognition failed for a reason, and there are only a few.

The SKU changed on one side. The product was created by hand in both stores with slightly different values. Two products share one SKU, so the key points at two things at once. The handle matches but the codes do not, which usually means two genuinely different products. Or the app was matching on nothing sturdier than the title.

Case matters more than people expect

One store writes SKU-1, the other writes sku-1. To a person that is the same product; to a naive comparison it is not, and the sweep that adds missing products creates a copy. The same goes for a non-breaking space that arrived through an import and sits invisibly at the end of a code.

StoreTwin compares keys in a canonical form: case is ignored and invisible spaces are normalised, on both sides. The exact value is still reported as a difference when it genuinely differs - it just stops being a reason to create a second product.

What an app should do when it is unsure

Stop. Guessing is how duplicates are born, and an app that guesses right nine times out of ten still leaves you cleaning up the tenth.

StoreTwin puts the product into a review queue and names the problem in the terms you can act on: two products in this store use the same SKU, this handle matches but the barcodes disagree, two source stores both claim this product. Nothing is created and nothing is overwritten while a product sits there, and the line only closes when the next check confirms the conflict is really gone.

The other duplicate: created twice by two sources

If two stores both feed the same receiving store, the same product can arrive twice. StoreTwin allows a product in the receiving store to belong to one source connection only, so the second one goes to review instead of overwriting the first every hour.

Pairing stores in a loop - A feeds B, B feeds C, C feeds A - is refused for the same reason: an edit would travel round the ring and come back to where it started, leaving no store as the source of truth.

If you already have duplicates

Decide which copy is real, move stock and any orders history you care about, and delete the other one by hand in the Shopify admin. StoreTwin will not delete it for you: nothing in the app deletes a product, deliberately. Once the duplicate is gone, the next check matches the remaining pair and syncing continues.

What sync apps can and cannot do ยท When stock is out of sync