Help

StoreTwin copies products and inventory one way, from a source store to a destination store, and then keeps checking that the two actually match. Nothing is written into your destination store until you approve it twice, and nothing is ever deleted.

Connect two stores

Install StoreTwin on both stores. The store that owns the catalogue is the source; the store that receives products is the destination.

Create a code on the source store

Open StoreTwin in the store that owns the catalogue and press Create pairing code.

The code is shown once, works once, and expires in an hour. Creating a new code cancels the previous one.

Enter the code on the destination store

Open StoreTwin in the receiving store, paste the code and press Pair with source.

The first scan starts immediately. It matches products by SKU, then barcode, then handle, and reports how many were linked.

Review what the scan found

Open Details. Linked products is what the app will keep in sync. Needs review lists products it refused to match on its own - for example a matching handle with different SKUs.

An ambiguous match is never linked silently. That is deliberate: silent guessing is how sync apps create duplicate products.

Turn the sync on

Writing into a live store is a serious step, so it takes two deliberate presses. Until both are done, StoreTwin only reads and compares.

Enable writes

On the destination store, press Enable writes. This does not write anything yet - it records that you accept writes into this store.

Start real-time sync

Press Start real-time sync. From this moment changes in the source store are applied to the destination within seconds, and differences found by the audit are repaired automatically.

You can stop at any time by pressing Disconnect stores. Products already synced stay exactly as they are.

What is synced

Products: title, description, status, tags, options, product metafields, and images when the product is first created in the destination store.

Variants: SKU, barcode, option values, weight. Price is NOT synced unless you switch it on for the connection - expansion stores usually sell in different currencies.

Inventory: the available quantity, mapped per location. You choose which source locations count and which destination location receives the total.

Orders and customers are never touched. The app does not even request access to them.

What is never done

Nothing is deleted. A product, variant, image or metafield that exists only in the destination store is reported as a difference and left alone.

The source store is never modified. Sync is one way by design.

Nothing is written before you press both Enable writes and Start real-time sync.

The audit is the product

Any app can copy a product. The reason StoreTwin exists is to prove that the copy is still correct a month later.

Every hour the app re-checks products that changed recently. Every night it compares the FULL catalogue of both stores, field by field.

The result is a drift report: which product, which field, what the source says, what the destination says. When the connection is syncing, the difference is also repaired, and the next report says In sync.

You can run a check yourself at any time with Rescan.

Inventory locations

Stock is compared per location, not as a store total: the SUM of the source locations you selected against ONE destination location.

Leaving a selection empty means all locations of that store. That is the right default for single-location stores.

Third-party fulfilment locations are not listed for selection; their stock is counted only when the selection is left empty.

Plans and billing

Billing goes through Shopify and is paid by the destination store - it is the store being written into.

Free Audit monitors one connection and syncs up to 25 linked products. Paid plans remove the product limit and add extra connections, charged per connection month.

You approve every charge in Shopify before it applies, and cancelling is uninstalling the app.

When something looks wrong

Open the connection page. Sync health shows the last check and every difference found. Report history keeps previous checks.

If a change did not arrive within a few minutes, press Rescan: the hourly check reads by a cursor and will pick up anything a webhook missed.

Still wrong? Write to support@storetwin.app and quote the line from the report. We answer from the same journal the app shows you.

Still stuck?

Write to support@storetwin.app and quote the line from your drift report.