S Sync Hub/Help
Book a meeting
01Start

Getting started

7 min read

What Sync Hub does

Sync Hub keeps your Shopify stores in sync. You choose one main store, and Sync Hub copies data from it to your other stores.

It can sync:

  • Products, variants, images and collections
  • Inventory (stock levels)
  • Orders and customers
  • B2B companies
  • Discounts
  • Metafields and metaobjects (custom data fields)
  • Files
  • Blogs, pages, theme templates and translations

Most data moves in one direction: from the source store to the destination store. Some features can also send changes back. See Two-way and reverse sync.

Key words

WordWhat it means
Source storeThe store where your data comes from. This is your main store.
Destination storeA store that receives data from the source store.
Store pair or connectionOne source store linked to one destination store. Each pair has its own settings and its own plan.
HubA source store that is connected to several destination stores.
Connection tokenA one-time code. The destination store creates it, and the source store uses it to connect.
SyncOne run that copies data from the source store to a destination store.

One source store can connect to many destination stores. Each destination store connects to one source store only. If you connect a destination store to a new source store, its old connection is removed.

Before you start

  • Install Sync Hub on every store you want to connect: the source store and each destination store.
  • Decide which store is your source store. This is the store you will manage your data in.
  • You need admin access to each store, or someone with access must help you on that store.
  • Plans and billing are managed from the source store. See Plans & billing.

Step 1: Set up each destination store

Do this on each destination store first.

  1. 1
    Open Sync Hub in the destination store's Shopify admin.
  2. 2
    On the welcome screen, click Get Started.
  3. 3
    Under Step 2: Select Store Type, click Select as Destination Store.
  4. 4
    Under Step 3: Generate Connection Token, click Generate Token.
  5. 5
    Click the copy button to copy the token.
  6. 6
    Send the token to the person who manages the source store (or keep it if that is you).
Good to know
  • A token works only once. After it is used, generate a new one for the next connection.
  • If you click Regenerate Token, the old token stops working.
  • Copy the whole token. A token that is cut short will not work.

Step 2: Connect the source store

  1. 1
    Open Sync Hub in the source store's Shopify admin.
  2. 2
    Click Get Started.
  3. 3
    Click Select as Source Store.
  4. 4
    Paste the token into the Connection Token box.
  5. 5
    Click Connect to Destination Store.

You will see a message that the store is connected. The destination store will show Successfully Connected as Destination Store.

Add more destination stores

  1. 1
    Create a token on the new destination store (see Step 1).
  2. 2
    On the source store, go to Configurations.
  3. 3
    Click + Add new store.
  4. 4
    Paste the token and click to connect.

Repeat this for each destination store.

Step 3: Choose what to sync

You set up each connection on its own, from the source store.

  1. 1
    On the source store, go to Configurations.
  2. 2
    In the Connected Stores list, find the destination store.
  3. 3
    Click Configure.
  4. 4
    Use the tabs to turn on the data you want to sync.
  5. 5
    Click Save changes.
TabWhat you set here
Product & InventoryProduct sync, inventory sync, which product fields to copy, prices, images, collections
Orders & CustomersOrder sync, customer sync, companies (B2B)
Content SyncPages, templates, blogs, translations, collections, files, discounts, metafields and metaobjects
ConfigEmail alerts when a sync fails

Each data type has its own guide. Start with Product sync and Inventory sync.

Step 4: Run your first sync

  1. 1
    On the source store, go to Configurations.
  2. 2
    Find the destination store and click Sync.
  3. 3
    The Sync Actions window opens. It lists every data type you turned on.
  4. 4
    Click Run full sync to sync everything you turned on. Or click the button for one data type only.

Before the sync starts, Sync Hub may show a box called Before you run this sync. Read it. It warns you about problems, for example when your plan does not cover all your products, or when the two stores use different currencies.

The first sync takes the longest, because every item is copied for the first time. Later syncs are faster, because Sync Hub skips items that did not change.

Step 5: Turn on automatic syncs (optional)

A sync can run by hand only, or on a schedule.

  1. 1
    Open Configure for the destination store.
  2. 2
    Find the Automatic schedule setting for each data type.
  3. 3
    Choose how often it should run.
  4. 4
    Click Save changes.
Data typeSchedule options
Products, inventory, orders, customersOff — manual only, Every 30 minutes, Every hour, Every 6 hours, Every day
Content (pages, blogs, templates and more)Turn on Automatic schedule, then choose Every 6 hours, Every day or Every week
Good to know
  • Turning a sync on does not turn on its schedule. If the schedule is Off — manual only, the data only syncs when you click Sync.
  • A product sync also refreshes stock. So if products run on a schedule, stock is updated with each product sync too.
  • Scheduled syncs can start a few minutes after their planned time when many stores are syncing.

Check your syncs

The dashboard

Open Sync Hub to see the Sync Dashboard. Use the Destination menu at the top to choose a store.

The dashboard shows:

  • A status summary at the top, with the last successful run and the next planned run.
  • A box for each data type, with the number of items synced, the last sync time, and a status: Successful, Partial or Never run.
  • An Orders box with orders sent each way.
  • Needs attention: problems you should look at.
  • Automated schedule: what runs on its own and how often.
  • Recent activity: the latest sync events.

The Connected Stores list

On Configurations, each destination store shows:

ColumnWhat it shows
StoreThe store name
Last SyncWhen the last sync ran
StatusSuccess, Error, In Progress or Billing Pending. Move your mouse over the badge to see the message.
ActionsSync, Configure, View Logs, Delete

Billing Pending means your plan does not cover everything this store wants to sync. See Plans & billing.

Sync logs

Click View Logs next to a store to open its sync logs.

  • Use Operation type to show one data type, for example Products or Orders.
  • Use Status to show only Success, Error, In Progress or Warning.
  • Use Search to find a message or log ID.
  • Click a log row to see the full message and any error details.

Email alerts

You can get an email when a sync fails.

  1. 1
    Open Configure for the destination store.
  2. 2
    Go to the Config tab.
  3. 3
    Turn on Email alerts.
  4. 4
    Enter a Receiver email. If you leave it blank, alerts go to the store's account email.
  5. 5
    Choose which failures send an email, for example Send alert when product sync fails.
  6. 6
    Click Save changes.

Pause or stop a sync

There is no separate pause button. To stop syncing, turn the sync off in the settings:

You want to…Do this
Stop automatic syncs, but keep syncing by handSet Automatic schedule to Off — manual only
Stop one data type completelyTurn off that sync (for example Product synchronization) and click Save changes
Stop everything for one storeTurn off each sync for that store, or delete the connection

When you turn product sync off, it stops in both directions. Work that is waiting to run will not start, and a run in progress stops at its next step.

Your settings are kept, so you can turn the sync back on later.

Disconnect a destination store

  1. 1
    On the source store, go to Configurations.
  2. 2
    Find the store and click Delete.
  3. 3
    Read the message and click Delete Store.

What happens:

  • The connection and all its sync settings are removed. You cannot undo this.
  • Products, orders and other data already copied to the destination store stay there. Nothing is deleted from either store.
  • To connect the store again, create a new token and connect again. You will need to set up the settings again.
  • Your Shopify charge does not go down by itself. Go to Plans to lower it. See Plans & billing.

Uninstall Sync Hub

You uninstall Sync Hub from Shopify, like any app: in your Shopify admin, go to Settings > Apps, find Sync Hub and uninstall it.

What happens:

  • All connections to that store stop, and its sync settings are removed.
  • Data already copied to your stores stays there.
  • Shopify cancels the app charge for that store.
  • If you install Sync Hub again, you must connect the stores and choose your settings again.

To learn what data we keep and delete, see Privacy & data.

Need help?

Book a meeting with our support team. At the bottom of every Sync Hub page you also find Read the docs, which opens this help page in a new tab, and Book a meeting. You can also read the FAQ.

02Catalog

Product sync

14 min read

Product sync copies products from your source store (the main store) to a destination store (the store that receives the copies). It creates products that are missing and keeps matched products up to date.

What it does

  • Copies products, their variants and options from the source to the destination.
  • Finds products that already exist on the destination and updates them. It does not make duplicates.
  • Creates products that are missing on the destination (you can turn this off).
  • Can also copy images, videos, collections, sales channel publishing and metafields.
  • Remembers which product on the source belongs to which product on the destination, so later runs update the same product.
  • Skips products that have not changed since the last run, so repeat runs are faster.

Each destination store has its own settings. If you have three destination stores, you set up product sync three times, once for each.

Before you start

  • Install Sync Hub on both stores and connect them. See Getting started.
  • Check that each product has a SKU or barcode, and that they are the same on both stores. This is the safest way to match products.
  • If the destination already has products, decide which fields you want to keep. Unchecked fields are never overwritten.
  • If the two stores use different currencies, read Prices and currency first.
  • On the free plan, only 10 products are synced. Your paid plan sets how many products you can sync. See Plans and billing.

How to set it up

  1. 1
    In Sync Hub, open Configurations.
  2. 2
    In your list of connected stores, find the destination store and click Configure.
  3. 3
    Open the Product & Inventory Sync tab.
  4. 4
    Turn on Product synchronization.
  5. 5
    Make sure Forward sync (source → this store) is on.
  6. 6
    Choose how often it runs under Automatic schedule. Pick Off — manual only if you want to start it yourself.
  7. 7
    Choose the Primary product match field (SKU is the default and the safest).
  8. 8
    Choose what to do with new products under New products on destination.
  9. 9
    Under Fields synced and Pricing, tick the fields you want copied.
  10. 10
    Under Sync collections, images & sales channels, tick the extras you want.
  11. 11
    Add filters if you only want some products (optional).
  12. 12
    Click Save changes.
  13. 13
    To start a sync now, click Sync on the store row, then Run next to Products.

Before you run, the Sync window may show a box called Before you run this sync. It warns you about:

  • products that will not sync because of your plan limit,
  • different currencies on the two stores,
  • a destination that already has products (first sync only),
  • a different number of locations on the two stores.

Read these warnings before you press Run.

How products are matched

Matching decides which destination product is "the same" as a source product. You choose the field in Primary product match field:

OptionHow it worksWhen to use
SKU (default)Exact SKU matchBest choice when both stores use the same SKUs
BarcodeExact barcode matchWhen both stores use the same barcodes
HandleMatches the product's web address name (for example blue-shirt)Only if you have no shared SKU or barcode
TitleMatches the product nameOnly if you have no shared SKU or barcode

Rules:

  • If your chosen field finds no single match, Sync Hub only tries the other field in the same group: SKU ↔ Barcode, or Handle ↔ Title. It never falls back from SKU or barcode to a name match. The product is left unmatched instead, so look-alike products are not paired by mistake.
  • A product with no SKU and no barcode at all is matched by handle or title instead, so it is not created twice.
  • If a name matches more than one product, the product is left unmatched. Sync Hub does not guess.
  • Once two products are matched, Sync Hub remembers the pair. Later runs update that same product.

Creating new products vs updating

New products on destination has two choices:

ChoiceWhat happens
Create (default)Products missing on the destination are created. Matched products are updated.
Update onlyOnly matched products are updated. Nothing new is created.

With Create, the Title field is always on, because Shopify needs a title to create a product.

Variants

When a matched product is updated, the destination's variants are made to match the source. A variant you added only on the destination is removed on the next sync.

To stop this, turn on Keep variants added on this store. Sync then still updates the matching variants, but never deletes the extra ones. (Two-way sync turns this on for you. See Two-way and reverse sync.)

Deleted products

  • Deleted on the source: the copy on the destination is not deleted. Delete it yourself if you no longer want it.
  • Deleted on the destination: Sync Hub sees the product is gone. If Create is selected, the product is created again on the next sync. Choose Update only or use a filter if you do not want it back.

Settings explained

Fields synced

Each field is a chip you can tick or untick.

  • Ticked: the source value overwrites the destination on every sync.
  • Unticked: the destination keeps its own value. On a new product, Shopify's default is used.
  • Ticked fields show a badge: EVERY SYNC or ON CREATE. Click the badge to switch. ON CREATE fills the field once, when the product is first created, and never changes it again. Use it for fields you edit on the destination yourself.
  • Fields marked REQ are needed by Shopify to create a product. They are always filled on a new product.

Product fields

SettingWhat it copiesDefault
TitleProduct nameOn (required with Create)
DescriptionProduct descriptionOn
HandleWeb address name of the productOff
VendorBrand / vendorOn
Product TypeProduct typeOn
TagsProduct tagsOn
StatusActive / Draft / ArchivedAlways on. Set it to ON CREATE to keep your own Draft/Active choice on the destination after the first copy.

Variant fields

SettingWhat it copiesDefault
SKUVariant SKUOn
BarcodeVariant barcodeOn
WeightVariant weightOn
Track quantityWhether Shopify tracks stock for the variantOn
Continue selling when out of stockWhether customers can buy when stock is 0Off
Customs info (HS code, origin)HS code and country/region of originOff

Variant options (like Size and Color) and their values are always copied.

First sync into a store that already has products: if the destination already has products and this pair has never synced, Sync Hub offers safer defaults. Title, Description, Vendor, Product Type and Tags start unticked, so your own wording is not replaced. Tick them on purpose if you want the source's text.

Pricing

SettingWhat it copiesDefault
PriceVariant priceOn
Compare PriceCompare-at price (the "was" price)On
Unit Price MeasurementUnit price setup (for example price per 100 ml)Off
CostCost per itemOff
  • If Price is off, a new product still gets the source price once, so it is not created at 0.00. Later runs do not change it.
  • Unit Price Measurement is hidden when reverse or two-way sync is on, because it can only go source → destination.

Prices and currency

Sync Hub never converts prices. It copies the number as it is. A price of 1,299 in one currency becomes 1,299 in the other.

When the two stores use different currencies:

  • Price fields are off and locked by default. You will see Prices are not synced for this pair.
  • To copy prices anyway, tick Copy prices anyway, without converting them to ….
  • Cost is never copied between stores with different currencies, even with this box ticked.
  • With prices locked, new products are created without a price, so Shopify shows 0.00. Set prices on the destination yourself, or choose Update only.

Collections, images and sales channels

SettingWhat it doesDefault
Sync collectionsPuts products into the matching collections on the destinationOff
Sync imagesCopies product and variant imagesOn
Sync videos & 3DCopies videos (uploaded, YouTube, Vimeo) and 3D modelsOff
Publish to sales channelsPublishes products to the same sales channels on the destinationOff
Sync metafieldsCopies product and variant metafields after each product syncOff

Each extra makes a sync slower. Turn on only what you need.

Schedule

Automatic schedule choices: Off — manual only, Every 30 minutes, Every hour, Every 6 hours, Every day. The default is Off — manual only.

Filters

Filters decide which source products are synced. They are in the Product & Inventory Sync tab, below the extras.

Product status to sync

Tick Active, Draft and/or Archived. Leave all unticked to sync every status (the default). This works with or without the filter switch below.

Filter products for product sync

Turn this on, then add rows. Each row has a Type and Values:

TypeExample values
Tagwholesale, retail
VendorNike, Adidas
Product typeShirt, Pants
CollectionThe source collection's ID number

How matching works:

  • Several values in one row = OR. Tags summer, sale → products with either tag.
  • Different rows = AND. Tag summer + Vendor Acme → only Acme products tagged summer.
  • Each type can be used once.
  • Matching ignores upper and lower case.

Don't sync products with these tags

Shown when the filter switch is on. Type tags separated by commas, for example do-not-sync.

  • A product with any of these tags is never created on the destination, and stops getting updates.
  • The tag must match the whole tag. do-not-sync does not match do-not-sync-later.
  • This wins over the include rows above.
  • Leave it empty to sync everything.

Filters never delete anything. Products already on the destination stay there. They just stop getting updates.

Collections

Turn on Sync collections to keep products in the right collections on the destination. Then you get more options:

SettingWhat it doesDefault
Collection type sync modeWhich collection types to include: Sync smart and custom collections, Sync smart collections only, or Sync custom collections onlyBoth
Sync collection definitions before assignmentsAlso copies the collection itself (title, description, sort order, and rules for smart collections)On
Reconcile custom collection membershipRemoves products from destination manual collections when they are no longer in that collection on the sourceOff
Good to know
  • A smart collection (automated) fills itself using its rules. A custom collection (manual) gets products added by Sync Hub.
  • Only collections that hold at least one product in this run are copied.

Pairing collections with different names

Collections are paired by name (handle). If both stores use the same names, they pair on their own and you will see that all collections pair up.

If some names differ (for example, the stores are in different languages), you will see how many collections need pairing. Click Pair collections to open Pair collections between your stores:

  1. 1
    Click Find matches for me to get suggestions. Sync Hub compares the products inside each collection. On a big catalog this takes a few minutes.
  2. 2
    Click Use this on a suggestion, or Accept … suggested to take all of them.
  3. 3
    Or choose the Matching collection by hand.
  4. 4
    Optional: tick Also copy the order the products appear in.
  5. 5
    Click Save pairing.

Suggestions are kept for 6 hours. Click Refresh matches after you change products or collections.

Important
if you have not saved any pairing, a source collection missing on the destination is created there. Once you save at least one pairing, collections that are not paired and have no same-name match are skipped, so no unwanted collections are created.

Images and media

With Sync images on, you get Image options:

SettingWhat it doesDefault
Mirror source imagesAdds new images, removes images removed on the source, and keeps the same order (including the main image). Images you added yourself on the destination are kept.On
Remove destination-only images (exact mirror)Also removes images that exist only on the destination, on every sync. The destination ends up with exactly the source's images.Off
Force image rebuild (one-time repair)On the next sync, deletes all images on each destination product and uploads them fresh from the source. Turns itself off after the run.Off
  • With Mirror source images off, images are only added, never removed or reordered.
  • Use Force image rebuild when an image looks old on the destination, for example after you replaced an image but kept the same file name. It is slower than a normal sync.
  • Image alt text is copied with the image.

Videos and 3D (Sync videos & 3D):

  • Copies Shopify-hosted videos, YouTube/Vimeo videos and 3D models.
  • If you replace or remove a video on the source, the destination is updated to match.
  • Turning this off later does not remove videos already copied.

Sales channels

With Publish to sales channels on, each product is published on the destination to the sales channels it is on at the source. Channels are matched by name, so a channel must exist on both stores (for example "Online Store").

This setting only publishes. It never unpublishes a product.

Metafields

With Sync metafields on, product and variant metafields are copied after each product sync finishes. You can also run it alone from Sync → Product metafields.

  • Metafield allowlist: leave it empty to sync every metafield. To limit it, list entries separated by commas, as namespace.key (for example custom.color) or just key.
  • Matching metafield definitions are created on the destination, so values show in the Shopify admin.
  • Metafields that point to other things (reference metafields, for example a product, collection, file or metaobject entry) are copied too. Each one is pointed at the matching item on the destination. If there is no match, that field is skipped. See Reference metafields.

What is synced / not synced

Synced (when the setting is on):

  • Title, description, handle, vendor, product type, tags, status
  • Options and option values
  • Variant SKU, barcode, weight, track quantity, continue selling when out of stock, customs info
  • Price, compare-at price, unit price measurement, cost
  • Product and variant images, alt text, image order
  • Videos and 3D models
  • Collection membership and collection details
  • Sales channel publishing
  • Product and variant metafields

Not synced by product sync:

  • SEO title and SEO description of products
  • Stock quantities — these are handled by Inventory sync
  • Product reviews, and data that belongs to other apps
  • Product deletions from the source (see Deleted products)
  • Prices converted to another currency
  • Translations — see Translation sync

How often it runs

  • Manual: click Sync on the store row, then Run next to Products. Run full sync runs every resource you turned on.
  • Automatic: based on your Automatic schedule.
  • If a product sync is still running when the next one is due, the new one is skipped. It runs at the next scheduled time.
  • When product sync finishes, inventory sync runs next if you turned it on. Metafield sync runs next if Sync metafields is on.

How long a sync takes

Each run starts by asking Shopify for a full export of both stores' products. Shopify needs a few minutes for this, even on a small store.

Catalog sizeRough time
A few hundred productsUsually minutes
Tens of thousands of productsCan take hours
Hundreds of thousands of productsCan take a day or more

The first sync is the slowest. Later runs skip products that did not change. Images, collections and sales channels add time.

While a sync runs, View Logs shows what it is doing, for example "Writing products to destination (wave 2 of 8)", and often an estimate like "about 72 min left".

Limits

  • Free plan: 10 products.
  • Paid plans: your plan sets the product limit for each store pair. Products over the limit are not synced, and the sync log tells you how many. See Plans and billing.
  • Shopify's export delay: Shopify's export can be a few minutes behind. A change you made just before a sync started may only appear in the next sync.
  • Shopify's variant limit: Shopify limits how many new variants a very large store can create each day. On stores with tens of thousands of variants, a big first sync may need several days to create everything.

Good to know

  • Sync Hub never changes your source store during forward sync.
  • Matching first: on a store that already has products, matched products are updated, not duplicated.
  • Changing the match field, filters or fields only affects future syncs. Nothing is undone.
  • Unticking a field does not clear it on the destination. The destination keeps what it has.
  • You can get an email when a product sync fails. Go to the Config tab, under Email alerts, and turn on Send alert when product sync fails.
  • Want changes on the destination to go back to the source? See Two-way and reverse sync.

Troubleshooting

?
A product was not created on the destination.
  • Check New products on destination is set to Create.
  • Check your filters, Product status to sync and Don't sync products with these tags.
  • Check your plan limit. The sync log shows products blocked by plan.
  • If you just created the product, wait for the next sync. Shopify's export can be a few minutes behind.
?
A product was created twice.
  • The match field did not find the existing product. Make sure the SKU (or barcode) is the same on both stores, then delete the extra copy.
  • If you use Handle or Title, switch to SKU or Barcode if you can.
?
My changes on the destination keep being overwritten.

That field is ticked, so the source wins on every sync. Untick it, or switch its badge to ON CREATE.

?
A variant I added on the destination disappeared.

Turn on Keep variants added on this store.

?
Prices are 0.00 or not updating.
  • Check the Pricing chips are ticked.
  • If the stores use different currencies, prices stay off until you tick Copy prices anyway, without converting them to ….
?
Images are missing or look old.
  • Check Sync images is on.
  • Turn on Force image rebuild (one-time repair) and run one product sync.
?
Products are not in their collections.
  • Check Sync collections is on.
  • If some collection names differ between stores, pair them in Pair collections between your stores.
  • Check Collection type sync mode includes that collection type.
?
The sync log says many products were "skipped".

That is normal. Skipped products had no changes since the last sync.

?
The sync seems stuck.

Open View Logs. On big stores each step can take a long time. If the log shows a time estimate and the wave number goes up, the sync is still working. If nothing changes for several hours, contact support.

?
I deleted a product on the source but it is still on the destination.

This is by design. Product sync never deletes destination products. Delete it on the destination yourself.

03Catalog

Inventory sync

12 min read

What it does

Inventory sync copies stock numbers from one store to the other. It works per variant and per location. A variant is one version of a product, for example "T-shirt, size M". A location is a place where you keep stock in Shopify, for example a warehouse or a shop.

  • By default, stock goes from the source store to the destination store.
  • You can turn the direction around, so the destination's stock goes up to the source. See Stock direction.
  • Only stock numbers are copied. Product details (title, price, images) are handled by Product sync.

The store that sends stock is the "master". Its number replaces the number on the other store. A 0 on the source sets the destination to 0, so sold-out items show as sold out.

Before you start

  • Both stores must be connected as a pair. See Getting started.
  • Products must exist on both stores and be linked. Usually Product sync does this for you.
  • Check your locations on both stores. Stock is copied into the location with the same name, or into the location you choose in Location mapping. If no location matches, no stock is written.
  • Give each variant a SKU (a stock code) if you can. SKUs are the main way variants are matched.
  • If a warehouse app or stock app already manages stock on one of your stores, decide which store is the master before you turn this on.

How to set it up

  1. 1
    In Sync Hub, find your destination store in the list and click Configure.
  2. 2
    Open the Product & Inventory Sync tab and scroll to Inventory Sync Settings.
  3. 3
    Turn on Inventory sync.
  4. 4
    Choose a schedule under Automatic schedule. If product sync also runs on a schedule, this control is called Extra stock-only refreshes.
  5. 5
    Choose Which store's stock is correct (the stock direction).
  6. 6
    Choose Quantity to sync: Available or On hand.
  7. 7
    If your location names are different on the two stores, turn on Location mapping and pair them. See Location mapping.
  8. 8
    Click Save changes.
  9. 9
    To run a first sync now, click Sync next to the store, then run Inventory.

Settings explained

SettingWhat it doesDefault
Inventory syncMain switch for stock sync on this pair.Off
Automatic schedule / Extra stock-only refreshesHow often stock syncs by itself: Every 30 minutes, Every hour, Every 6 hours or Every day. Off — manual only means it runs only when you start it, or after a product sync.Off — manual only
Filter products for inventory syncOnly sync stock for source products that match your rules (tags, vendors, product types and more). Other products are skipped, and their destination stock is not touched.Off
Override track quantityTurns on "Track quantity" on the destination for every synced item, then sets the number from the source.Off
A sale here lowers the source's stockWhen a customer buys on this destination store, the same units come off the source store's stock. See When a sale lowers the source's stock.Off
Refresh this store's stock after each orderAfter an order here has changed the source's stock, copy the source's new number for the ordered items to this store right away. See Real-time stock after orders.Off
Which store's stock is correctSource store = source stock is copied down to this store. This store = this store's stock is copied up to the source.Source store
When this store shows 0, set the source to 0 tooOnly shown when This store is chosen above. Off = a 0 here is ignored, so an item you have not counted yet cannot empty the source. On = 0 means 0 everywhere.Off
Quantity to syncWhich Shopify number is read and written: Available or On hand. See Available or On hand.Available (new connections)
Location mappingPair each location on this store with a location on the source store.Off

Available or On hand

Shopify keeps two main stock numbers for each item and location:

  • On hand is everything physically on the shelf. It also counts units that are already sold in orders that are not shipped yet.
  • Available is what you can still sell. It is On hand minus the units waiting in open orders.

Available is the safer choice in most cases. With On hand, units that are already sold on the source (but not shipped) are counted as free stock on the destination. The destination can then sell them a second time.

The same type is used on both sides. With Available, the source's available number is written as the destination's available number.

Location mapping

Stock is copied per location. The app decides where each source location's stock goes like this:

  1. 1
    Location mapping is on and has rows: each source location goes to the destination location you paired it with. A source location with no row is skipped.
  2. 2
    Location mapping is off: each source location goes to the destination location with the same name. Upper and lower case do not matter, but the rest of the name must match exactly.
  3. 3
    No match: that location's stock is not copied. The app never guesses a location.

To set up mapping:

  1. 1
    Turn on Location mapping.
  2. 2
    Click (+) Add.
  3. 3
    Pick a Location in this store and a Location in the source store.
  4. 4
    Add one row for each pair of locations, then click Save changes.

One location on each store, with different names? Nothing is copied until you pair them. Turn on Location mapping and add one row.

Tips:

  • Pair locations one to one. Do not send two source locations into one destination location. The numbers are not added together, so one would replace the other.
  • If you turn on Location mapping, add a row for every location you want synced. Locations without a row are left alone.

Stock direction

Use Which store's stock is correct to pick the master store. Stock moves in one direction only. There is no "both ways" option, because stock has no way to tell which number is newer, so the two stores would keep overwriting each other.

Source store (default)

  • The source's stock is copied down to this store.
  • A source count of 0 sets this store to 0.
  • Use this when the source holds your real stock, for example a central warehouse store.

This store

  • This store's stock is copied up to the source.
  • Each location on this store writes into its matching location on the source (by Location mapping, or by the same name).
  • If several stores send stock to the same source, each one writes its own location. The source then shows the total across its locations.
  • Use this when your shops hold the real stock and the source is a central catalog store.

Before you switch to This store:

  • Make sure the stock on this store is correct. It is about to become the source's number.
  • If more than one store sends stock to the same source, each store must point at its own location under Location mapping. If two stores share a location, sync stops instead of guessing. You will see the reason in View Logs.
  • Leave When this store shows 0, set the source to 0 too off unless every item here has a counted quantity.

Your product filter (if any) still picks products from the source store, even in this direction. If your filter tags live only on the destination, the wrong products may be picked.

When a sale lowers the source's stock

With Which store's stock is correct set to Source store, a sale on the destination does not change the source by itself. At the next sync, the source's number is copied down again and the sold units come back on the destination. The destination can then oversell.

A sale here lowers the source's stock fixes this. When it is on, each sale on this store takes the same number of units off the source.

How it works depends on your order settings. The screen tells you which method applies:

  • Orders from this store are copied to the source (order sync set to ← Reverse or Both ⇄): the copied order lowers the source's stock, like a normal sale on the source.
  • Orders are not copied to the source: the source's stock is lowered directly. No order is created on the source, so its order list and sales reports stay the same. Orders copied here from the source are not counted again.
Good to know
  • Leave it off if a warehouse app or stock app on the source already lowers the stock for these sales. Otherwise each sale is counted twice.
  • It needs Inventory sync on.
  • It cannot be used with This store as the master. The switch is blocked in that case.
  • Products must be linked to the source. The source location is found from your Location mapping, or by the same location name.
  • When stock is lowered directly:
    • Only orders placed after you turn it on are counted.
    • A cancel or refund that puts the items back in stock on this store gives the units back to the source.
    • A refund without restock keeps the units off the source.
    • Removing items by editing an order does not give units back. Only cancels and restocked refunds do.
  • If Quantity to sync is On hand, the screen warns you: the source's available stock goes down at once, but this store only shows the change when the order ships. Click Use Available, or tick Keep On hand — I understand this store shows the change when orders ship to keep it.
  • When it is on, a Saved status line shows whether it works and what it did in the last 24 hours.
  • Every change to the source's stock, and every item that could not be counted, is listed in View Logs.

Real-time stock after orders

Normally stock updates on your schedule. Some order events update stock sooner:

  • After forward order sync: when an order is copied from the source to the destination and Inventory sync is on, the app refreshes the destination's stock for the products in that order.
  • Refresh this store's stock after each order: when an order on this store has changed the source's stock, the app copies the source's new number for the ordered items to this store right away. Other stores that sell the same items and have this setting on are updated too.

Refresh this store's stock after each order only copies numbers down from the source. It does not lower the source by itself. Something must change the source's stock first, for example A sale here lowers the source's stock, or a stock app on the source. The screen tells you when nothing will start it. It is not used when This store is the master.

We recommend turning it on together with A sale here lowers the source's stock.

What is synced / not synced

SyncedNot synced
Stock numbers (Available or On hand), per variant and per locationProduct details, prices, images (see Product sync)
Sold-out items (a source 0 becomes 0)Stock for items whose location has no match
Draft and archived products, as well as active onesStock for bundle products (see below)
"Track quantity" turned on where neededIncoming stock, committed stock and other Shopify stock types

How often it runs

  • On your schedule: every 30 minutes, every hour, every 6 hours or every day.
  • After every product sync: when product sync finishes, a stock sync runs for the pair.
  • By hand: click Sync next to the store, then run Inventory.
  • After orders: see Real-time stock after orders.

If stock was refreshed recently (for example by a product sync), a scheduled run may be skipped until it is due again. Only one stock sync runs per pair at a time.

Shopify can take a few minutes to include your latest stock edits in the data the app reads. A change you made a minute ago may appear in the next run instead.

Limits

  • Stock is synced only for products inside your plan's product limit. Products over the limit show as Blocked by plan in the logs. See Plans and billing.
  • A first sync to a new, empty destination is slower. Shopify needs each item to be stocked at each location one by one. Later runs are much faster.
  • Large catalogs can take a long time per run. That is normal.

Good to know

Negative stock. Shopify does not accept a negative number here. If the source shows a negative number, the destination is set to 0.

Untracked items. If an item does not track quantity on the destination, inventory sync turns "Track quantity" on so the number is used. It does not do this if your Product sync field setting Track quantity says not to track. Override track quantity forces tracking on for every synced item.

Bundles. Shopify works out a bundle product's stock from the items inside it. Its stock cannot be set directly, so the app skips it. This is not counted as an error. Sync the stock of the items inside the bundle instead.

Items without a SKU. Variants are matched mainly by SKU. A variant with no SKU, or with the same SKU as another variant of the same product, can still get stock if product sync has already linked it to its partner on the other store. Its variant title must also match and be unique. Otherwise it is skipped. Giving each variant its own SKU is the most reliable setup.

How products are matched. Products are matched by SKU first, then by title, then by handle (the product's web address name).

Turning inventory sync off stops all stock changes from this app, including A sale here lowers the source's stock.

Troubleshooting

?
The log says "Synced: 0" and stock did not change.

Read the whole log line in View Logs:

  • Unchanged: N — the numbers were already the same. Nothing to do.
  • No destination location: N — the location names do not match. Turn on Location mapping and pair your locations.
  • Not written: N — the items could not be matched (for example no SKU, or the item is missing on the destination). Check the SKUs, or run Product sync first.
  • Blocked by plan: N — these products are over your plan's limit.
?
I have one location on each store, but no stock is copied.

The names are probably different. Turn on Location mapping, add one row, and save.

?
The destination keeps selling items that are sold out on the source.
  • Check that Inventory sync is on and a schedule is set.
  • Use Available under Quantity to sync. On hand counts units already sold in open source orders.
  • If customers buy on the destination, turn on A sale here lowers the source's stock and Refresh this store's stock after each order.
?
Sold units come back on the destination after the next sync.

This is expected with Source store as the master, because the source did not change. Turn on A sale here lowers the source's stock, or let a stock app on the source handle it.

?
Stock went to 0 on the destination.

With Source store as the master, a 0 on the source sets the destination to 0. Check the stock on the source, in the matching location.

?
A stock change I just made did not sync.

Shopify may need a few minutes to include it. Wait for the next run, or start one by hand.

?
A bundle product has no stock on the destination.

Bundle stock cannot be set directly. Sync the items inside the bundle.

?
Stock flows the wrong way.

Check Which store's stock is correct. Only one direction runs per pair.

04Orders & people

Order sync

10 min read

What it does

Order sync copies orders between your two connected stores. It can also keep the copies up to date when an order is paid, shipped or refunded.

You choose one Order sync direction:

DirectionWhat happens
OffOrders are not copied.
Forward →New orders on the source store are copied to the destination store.
← ReverseNew orders on the destination store are copied back to the source store, in real time.
Both ⇄Forward and Reverse run together. With Real-time order updates on, both stores stay in sync live.

Common uses:

  • Forward: your main store takes the orders, and a second store (for example a warehouse or fulfillment store) needs a copy.
  • Reverse: several shops sell your products, and your central store (the source) ships them. Each shop's orders are copied to the central store.

Before you start

  • Both stores must be connected as a pair. See Getting started.
  • Products in your orders should be linked between the stores. Product sync does this. Forward sync can also copy a missing product when it needs it.
  • Your plan sets how many orders you can copy. See Plans and billing.
  • For B2B orders (orders placed for a company), the receiving store needs Shopify Plus with B2B.
  • Copying an order does not charge the customer again. It only creates a record of the order on the other store.

How to set it up

  1. 1
    In Sync Hub, find your destination store in the list and click Configure.
  2. 2
    Open the Orders & Customers Sync tab.
  3. 3
    Under Order sync direction, pick Forward →, ← Reverse or Both ⇄.
  4. 4
    Set the options for your direction (see the tables below).
    • For Forward, tick at least one status under Which orders to sync. If none is ticked, forward sync is paused.
  5. 5
    Click Save changes.
  6. 6
    For Forward, click Sync next to the store and run Orders to copy orders now. Or set an Automatic schedule.

Reverse has no button and no schedule. It starts by itself when a new order arrives on the destination.

Settings explained

Forward settings (source → destination)

SettingWhat it doesDefault
Which orders to syncOnly new orders with a ticked fulfillment status are copied: Unfulfilled, Partially fulfilled, Fulfilled. Untick all to pause.None ticked (paused)
Payment status filterOnly copy orders with the ticked payment statuses: Pending, Authorized, Partially paid, Paid, Partially refunded, Refunded, Voided, Expired. Leave all unticked to copy every payment status.All
Automatic scheduleHow often new orders are copied: Every 30 minutes, Every hour, Every 6 hours or Every day. Off — manual only = only when you click Sync.Off — manual only
Real-time order updatesWhen an already-copied source order is shipped or refunded, the change is copied to the destination within seconds. It does not copy new orders.Off
Also mirror updates made on the destination order back to the sourceShown under Real-time order updates in Forward mode. Shipping and refund changes your staff make on the destination copy are also copied back to the source order. It does not create new orders on the source.Off
Sync payment statusWhen an order becomes Paid on one store, its copy is marked paid too. Only the change to Paid is copied. Works in both directions.Off
Sync B2B orders & companiesOrders placed for a company are copied as B2B orders. The company, company location and company contact are reused if they exist, or created if missing.Off

Reverse settings (destination → source)

SettingWhat it doesDefault
Cutoff date (UTC)Orders created before this date and time are ignored.The moment you turned on reverse sync
Payment status filterOnly copy orders with the ticked payment statuses. Leave all unticked to copy every payment status. This filter only decides which orders are created. Later refunds and updates always sync.All
Auto-resolve missing productsOn: if an ordered product is not found on the source, look for it by SKU, and if still not found, create a simple product so the order can be copied. Off: skip the order (shown as a warning).On
Create missing products on the source for orders from this storeOff: only link to source products that already exist (matched by SKU). An order with an unknown product is skipped with a warning, and no product is created.On
Fill in auto-created productsWhen a product is created on the source for an order, also copy its images, description, vendor, tags, collections, metafields and variant details from the destination. It follows your Product sync field settings.Off
Source stock for orders from this storeShows whether copied orders lower the source's stock. You change this under Product & Inventory Sync → A sale here lowers the source's stock. See Inventory sync.Off
Add custom labels to reverse-synced ordersAdds a Delivery method label, a Source identifier (optional) and a Referring site (optional) to copied orders.Off
Tags for reverse-synced ordersTags added to every copied order on the source: reverse_synced, dest_order_ plus a number (shows which destination order it came from), reverse_sync_origin_pos (for point-of-sale orders), plus your own Custom tags (comma-separated).reverse_synced and dest_order_ on
Sync B2B orders & companies (reverse)Destination orders placed for a company are created on the source as B2B orders. Needs Shopify Plus with B2B on the source.Off
Customize fallback customerWhen a destination order has no usable customer contact, the source copy is attached to a placeholder customer. Here you can set its Fallback email (optional), First name, Last name and more.Off (default placeholder used)
Webhook statusUnder Troubleshooting. Click Check to see if the destination is set up to send new orders to the app.—

What is synced / not synced

When an order is copied, the copy contains:

CopiedNotes
Line items (products, quantities)Prices are the prices the customer paid on the original order, not the prices in the receiving store.
Custom line itemsItems without a product are copied with their title, quantity and price.
Customer, email and phoneThe customer is linked or created on the receiving store.
Shipping and billing address—
Shipping method and cost—
TaxesTax lines from the original order.
DiscountSee Good to know.
Note and tags—
Payment statusPaid, pending, and so on, as on the original order.
FulfillmentsIf the original order is already shipped, its shipments (with tracking numbers) are copied too.
Company, location and contactOnly for B2B orders, when B2B sync is on.

After an order is copied, these later changes can sync too:

ChangeForwardReverse
Shipments and trackingWith Real-time order updates onYes
RefundsWith Real-time order updates onYes
Tags and noteWith Real-time order updates onYes
Marked as paidWith Sync payment status onWith Sync payment status on

In Reverse, when the source ships a copied order, the shipment and tracking are also copied back to the original order on the destination. This needs nothing extra from you.

Not synced:

  • Cancellations. Cancelling an order does not cancel its copy. Cancel it on both stores.
  • Customer emails. The app creates copies and copied shipments without emailing the customer. No order confirmation or shipping email is sent for them.

How line items are matched

Forward:

  1. 1
    If the product variant is already linked to the destination, that variant is used.
  2. 2
    If not, the app copies the product to the destination first, then uses it. This counts toward your plan's product limit.
  3. 3
    If your product limit is full and the product does not exist on the destination yet, the order is not copied. You will see an error in View Logs.
  4. 4
    If a line still cannot be matched, that line is left out. If no lines are left, the order is not copied.

Reverse:

  1. 1
    If the variant is linked to the source, that variant is used.
  2. 2
    If not, the app looks for a source variant with the same SKU.
  3. 3
    If still not found, what happens depends on Auto-resolve missing products and Create missing products on the source for orders from this store:
    • Both on: a simple product is created on the source, and the order is copied.
    • Either off: the order is skipped with a warning in View Logs.

How often it runs

DirectionWhen
Forward, new ordersOn your Automatic schedule, or when you click Sync and run Orders.
Forward, changes to copied ordersWithin seconds, with Real-time order updates on.
ReverseIn real time. A new or changed destination order usually syncs within seconds to a few minutes.
Both ⇄ with Real-time order updates onNew orders and changes go both ways live. The Automatic schedule is not used; the Sync button still works.

Limits

  • Your plan sets how many orders can be copied. See Plans and billing.
  • Shopify only lets the app read orders from about the last 60 days. Older orders cannot be copied.
  • Forward sync copies each order once. A scheduled run does not update orders that are already copied. Use Real-time order updates for that.
  • B2B orders need Shopify Plus with B2B on the receiving store. If the company cannot be created there, the order is copied as a normal order.

Good to know

  • Order numbers. The copy gets a new order number from the receiving store. In Reverse, the dest_order_… tag shows which destination order it came from.
  • Channel column. Shopify always shows the app as the "Channel" of orders the app creates. This cannot be changed. To label copied orders, use the Delivery method label in reverse settings.
  • Discounts. Shopify accepts one order-level discount when the app creates an order. If the original order has several, only the first is copied.
  • Stock. A forward copy does not lower stock on the destination by itself. Stock comes from Inventory sync. If inventory sync is on, the stock of the ordered products is refreshed after each forward copy.
  • Stock in Reverse. By default a copied order does not lower the source's stock. To change this, turn on A sale here lowers the source's stock in Inventory sync. Leave it off if a warehouse app or stock app on the source already handles these orders.
  • Both ⇄ mode. A loop guard stops changes from bouncing back and forth. If the same order is edited on both stores at almost the same moment, the most recent edit wins. Refunds are copied once, with matching amounts.
  • B2B net terms. Net-terms B2B orders are usually Pending when placed. If your reverse Payment status filter only allows Paid, they are copied only after they are paid.
  • Customers. In Forward, customers are copied with their orders. In Reverse, the customer is matched on the source by email. If no match is found, a customer is created from the order. If the order has no usable contact, the fallback customer is used. See Customer sync to sync all customers.
  • Companies. To copy B2B companies without waiting for an order, see Company sync.

Troubleshooting

?
Forward sync copies no orders.
  • Check that at least one status is ticked under Which orders to sync. None ticked = paused.
  • Check the Payment status filter.
  • Check that an Automatic schedule is set, or click Sync and run Orders.
  • Orders older than about 60 days cannot be read.
  • Check your plan's order limit.
?
An order was not copied, and the log mentions the product limit.

The order needed a product that is not on the destination yet, and your product limit is full. Upgrade your plan, or make room, then sync again.

?
Reverse sync copies no orders.
  • Check the Cutoff date (UTC). Orders created before it are ignored.
  • Check the reverse Payment status filter.
  • Under Troubleshooting, click Check next to Webhook status.
  • Look in View Logs for skipped orders. A common reason is a product that is not on the source, with Auto-resolve missing products or Create missing products on the source for orders from this store turned off.
?
A shipment or refund on the source did not reach the copy.

In Forward, turn on Real-time order updates. Changes made before you turned it on are not copied.

?
A copied order shows the wrong channel.

This is a Shopify rule for app-created orders. Use the Delivery method label instead.

?
The customer did not get a shipping email.

Shipments copied by the app are added without emailing the customer. This also applies in Reverse, when the source ships and the shipment is copied back to the destination order. If you want the customer to get an email, send it from Shopify by hand.

?
I cancelled an order, but the copy is still open.

Cancellations are not copied. Cancel the copy by hand.

?
A B2B order arrived as a normal order.

The receiving store needs Shopify Plus with B2B. If the company, location or contact could not be set up, the order is still copied, as a normal order.

05Orders & people

Customer sync

10 min read

What it does

Customer sync copies your customers from one store to the other and keeps them up to date.

  • In one way mode, customers go from the source store to the destination store.
  • In two way mode, changes on either store reach the other store.

The app links each customer on the source to the same person on the destination. After that, edits are copied to the linked customer instead of making a new one.

Customer sync also has a separate tool, Customer consolidation, that finds and merges duplicate customers inside each store. See Find and merge duplicate customers.

Before you start

  • Both stores must be connected as a pair (a source store and a destination store). See Getting started.
  • Your plan sets how many customers you can sync. See Plans and billing.
  • Decide which store is the "main" store for customer data. In one way mode, the source always wins.
  • If you use marketing apps (email or SMS), read Marketing consent first.

How to set it up

  1. 1
    In Sync Hub, find your destination store in the list and click Configure.
  2. 2
    Open the Orders & Customers Sync tab.
  3. 3
    Turn on Customers sync.
  4. 4
    Under Automatic schedule, choose how often to sync. Choose Off — manual only if you only want to sync by hand.
  5. 5
    Choose the Direction (one way or two way).
  6. 6
    If you chose two way, set the extra options (see Settings explained).
  7. 7
    Turn on Sync customer updates via webhooks if you want changes copied within seconds.
  8. 8
    Save your settings.
  9. 9
    To start a first sync now, click Sync next to the store, then run Customers.

Settings explained

SettingWhat it doesDefault
Customers syncMain switch for customer sync on this pair.Off
Automatic scheduleHow often a sync runs by itself: Every 15 minutes, Every 30 minutes, Every hour, Every 6 hours or Every day. Off — manual only means it runs only when you start it.Off
DirectionOne way — source to destination, or Two way — changes on either store sync to the other.One way
When both stores change the same fieldTwo way only. Which edit is kept when the same field changed on both stores: Keep the most recent edit, Source store wins or Destination store wins.Keep the most recent edit
Create customers on the source storeTwo way only. Customers that exist only on the destination are added to the source.Off
Copy marketing consent back to the sourceTwo way only. Copies email and SMS subscription status from the destination to the source.Off
Sync customer updates via webhooksCopies customer changes in real time, a few seconds after they happen, instead of waiting for the schedule. ("Webhooks" are messages Shopify sends to the app when something changes.)Off
Sync opt-in on order-created customersWhen Order sync has to create a new customer, it also copies that customer's email and SMS marketing opt-in. Existing customers are never changed.Off
Customer metafield namespaces to syncA list of metafield namespaces to copy, for example custom, loyalty. Leave it empty to not sync customer metafields. (A metafield is an extra custom field on a customer. The namespace is the first part of its name, before the dot.)Empty (off)

If you switch Direction back to one way, the two way options turn off.

What is synced

DataSynced
EmailYes
First name and last nameYes
Phone numberYes (see Phone numbers and emails)
Addresses, including the default addressYes
TagsYes
NoteYes
Tax exempt settingYes
Email marketing consentYes
SMS marketing consentYes
MetafieldsOnly the namespaces you list in Customer metafield namespaces to sync

What is not synced

  • Order history, amount spent and order count. These belong to orders. See Order sync.
  • Customer accounts and passwords. The app never sends account invites.
  • Gift cards, store credit and saved payment methods.
  • B2B company links. Use Company sync (B2B) for those.
  • Deletes. Deleting a customer on one store never deletes it on the other store.
  • Removed metafields. If you remove a customer metafield on one store, it is not removed on the other store.

How customers are matched

Before it creates a customer, the app looks for the same person on the other store:

  1. 1
    A customer it already linked before.
  2. 2
    A customer with the same email.
  3. 3
    A customer with the same phone number.

If it finds one, it links the two customers. It does not create a copy. If it finds none, it creates a new customer.

Direction: one way or two way

One way. The source store is the main store. When a customer differs between the two stores, the source version is copied to the destination. Edits made only on the destination are overwritten the next time that customer changes on the source.

Two way. Edits on either store reach the other store.

  • Each field is handled on its own. If you change the phone on the source and the note on the destination, both changes are kept.
  • If the same field changed on both stores, the rule in When both stores change the same field decides which edit is kept.
  • Customers that exist only on the destination are added to the source only if Create customers on the source store is on.
  • Marketing consent goes from the destination to the source only if Copy marketing consent back to the source is on.

When two way starts. The first time two linked customers are compared, the app has no "last agreed" version to compare against. If the two stores hold different details, the app leaves both customers unchanged and counts them as "differ between stores". You can then fix them with Resolve using the conflict rule in the status panel (see below). When one store has an empty value and the other has a value, the value is kept.

Email and SMS subscription status is copied with the customer.

  • A customer who was never asked on the source does not change the destination. The app does not mark them as unsubscribed.
  • In two way mode, consent goes back to the source only if Copy marketing consent back to the source is on.

Be careful with welcome emails. If a customer becomes "subscribed" on a store, your marketing apps (for example Shopify Email, Shopify Flow or Klaviyo) may send them a welcome email. Before you turn on consent sync for many customers, check your welcome automations. The app itself never sends emails to your customers.

Phone numbers and emails

Shopify allows each email and each phone number only once per store. This can stop a customer from syncing as it is:

  • If the email or phone already belongs to a customer on the other store, the app links to that customer instead of creating a new one.
  • If Shopify rejects the phone number (it is already used by a different customer, or the format is not valid), the app creates or updates the customer without the phone. SMS consent is then skipped for that customer.
  • If one email or phone matches more than one customer, the app does not guess. The customer is not linked and shows as Not linked — matches more than one customer.

Shopify can also reject other values, for example some special characters such as emoji in a name. That customer fails until you fix the value on the store it comes from.

Customer sync status panel

When customer sync is on and saved, the Customer sync status panel appears under the customer settings. Click Refresh to update it.

It shows:

  • One way or Two way, and the run status: Idle, Running or Failed.
  • When the last run happened (Last run), and what it did.
  • Live updates: whether real-time updates are working on the Source and Destination store (Active, Error or Not set up).
  • Linked customers: how many customers are linked between the two stores.
  • Last 24 hours: what happened to customers in the last day. Click Show details to see each result, for example Created on the destination, Updated on the source, Matched to an existing customer, Not created — plan limit reached or Could not save to Shopify.

Buttons:

  • Run a full customer sync now starts a full sync for this pair.
  • Resolve using the conflict rule appears when some customers differ between the stores and were not changed automatically. It fixes them with the rule you chose in When both stores change the same field.

How often it runs

  • Real time. With Sync customer updates via webhooks on, a change usually reaches the other store within seconds. In two way mode this works on both stores.
  • Schedule. The schedule picks up every customer that changed since the last run. It also catches any change that real-time updates missed. Keep a schedule on even when you use real-time updates.
  • By hand. Click Sync next to the store and run Customers, or use Run a full customer sync now in the status panel.
  • With orders. When Order sync copies an order, it also creates or links the order's customer.

A brand-new customer may only arrive on the next scheduled run. If new customers must appear quickly, choose a short schedule, such as Every 15 minutes.

Find and merge duplicate customers

Customer consolidation finds customers that look like the same person inside one store and lets you merge them. It is separate from sync. It changes nothing until you click merge.

  1. 1
    In the Orders & Customers Sync tab, turn on Customer consolidation and save.
  2. 2
    Click Run scan. The app scans the source store and the destination store. A scan can take several minutes on a large store.
  3. 3
    Review the groups under Destination store duplicates and Source store duplicates.
    • High confidence groups share the same email or phone.
    • Low confidence groups only share a name. They are hidden until you tick Include name-only matches (low confidence). Names can belong to different people, so check each group.
    • Likely different people means the records have different emails or phone numbers.
  4. 4
    In a group, tick the records that are the same person. The record marked Keep survives, and the others merge into it. Click Set as “Keep” to choose a different one.
  5. 5
    Under Which details should the merged customer keep?, pick the email, phone, name or default address you want.
  6. 6
    Click Merge selected. Or click Not duplicates to hide the group.
Good to know
  • Merging uses Shopify's own customer merge. A merge cannot be undone.
  • Shopify cannot merge some customers, for example customers with gift cards, store credit, subscriptions, saved payment methods or B2B company links. Those groups show Cannot merge or Partially merged.
  • A merge only happens on one store. The copy of that customer on the other store stays as it is.
  • Each merged group counts as one customer toward your plan usage.
  • If the app asks you to approve new permissions before merging, accept them and try again.

Limits

  • Your plan sets how many customers can be synced per store pair. When you reach the limit, new customers are not created, and the status panel shows Not created — plan limit reached. Updates to customers that were already synced keep working. See Plans and billing.
  • Each email and phone number can only be used once per store (a Shopify rule).
  • Up to 250 metafields are read per customer.

Privacy

  • When Shopify sends a request to erase a customer's data, the app clears its own saved copy of that customer's personal data. See Privacy and data.
  • Deleting a customer on one store does not delete it on the other store. If you need a customer removed from both stores, delete it on both.

Troubleshooting

?
A customer did not sync. Why?

Check the Customer sync status panel and click Show details under Last 24 hours. Common reasons:

  • Your plan limit is reached (Not created — plan limit reached).
  • The direction is one way and the change was made on the destination (Skipped — this direction is not synced).
  • In two way mode, the customer exists only on the destination and Create customers on the source store is off (Not created — this direction is not synced).
  • Shopify rejected a value (Could not save to Shopify).
?
A new customer has not appeared yet.

New customers may wait for the next scheduled run. Check that Automatic schedule is not Off — manual only. You can also click Run a full customer sync now.

?
The customer synced, but without a phone number.

Shopify did not accept the phone on that store. It may already belong to another customer there, or the format may not be valid. Fix the number on the source store and the next sync adds it.

?
The panel says some customers differ between the stores.

This happens in two way mode when two linked customers had different details before syncing started. Click Resolve using the conflict rule to fix them.

?
Live updates shows Error or Not set up.

Turn Sync customer updates via webhooks off, save, then turn it on again and save. If it still shows an error, contact support. The schedule keeps syncing in the meantime.

?
A customer was unsubscribed or subscribed by the sync.

In one way mode, the source store's consent is copied to the destination. If the source says "subscribed" or "unsubscribed", the destination follows. A customer who was never asked on the source does not change the destination.

?
I want an email when customer sync fails.

Open the Config tab, go to Email alerts, and turn on Send alert when customer sync fails.

06Orders & people

Company sync (B2B)

7 min read

What it does

Company sync copies your B2B companies from the source store to the destination store. B2B means selling to other businesses. In Shopify, a B2B customer is a company.

Each company in Shopify has:

  • Locations: the company's branches or sites, with their own addresses, tax settings and payment terms.
  • Contacts: the people who buy for the company. Each contact is also a normal customer.
  • Roles: what each contact may do at each location (for example "Location admin" or "Ordering only").

Company sync copies all of these, so the destination store is ready to take B2B orders without waiting for the first order.

Company sync works in one direction only: source → destination. It never deletes anything on the destination.

Before you start

  • Both stores need a Shopify plan that includes B2B companies. If one store does not have it, the sync stops before it writes anything.
  • Both stores must be connected as a pair. See Getting started.
  • To copy catalogs and price lists, Product sync must run on the same pair first.
  • Your plan sets how many companies you can sync. See Plans and billing.

You do not need Customer sync turned on. Company sync creates or links the customers behind each contact by itself. This lets you keep a store that holds only your B2B customers.

How to set it up

  1. 1
    In Sync Hub, find your destination store and click Configure.
  2. 2
    Open the Orders & Customers Sync tab.
  3. 3
    Turn on Companies sync (B2B).
  4. 4
    Under Automatic schedule, choose how often it runs, or Off — manual only.
  5. 5
    Under Companies that already synced, choose Create only or Create and update (see below).
  6. 6
    Turn on Sync company changes via webhooks if you want changes copied right away.
  7. 7
    Turn on Company metafields and Catalogs and price lists if you need them.
  8. 8
    Save your settings.
  9. 9
    To start now, click Sync next to the store, then run Companies (B2B).

Settings explained

SettingWhat it doesDefault
Companies sync (B2B)Main switch for company sync on this pair.Off
Automatic scheduleHow often a sync runs by itself: Every 30 minutes, Every hour, Every 6 hours or Every day. Off — manual only means it runs only when you start it.Off
Companies that already syncedCreate only — never change companies that already synced: only adds what is missing on the destination. Create and update — source edits overwrite the destination: also copies later edits from the source.Create only
Sync company changes via webhooksWhen a company, location, contact or role changes on the source, that company is synced again right away, using the mode above. ("Webhooks" are messages Shopify sends to the app when something changes.)Off
Company metafieldsCopies the custom fields (metafields) on companies and their locations, including their definitions.Off
Catalogs and price listsCopies each company location's catalog: its price list and which products that location can see. Needs product sync.Off

Which mode should I use?

  • Use Create only if someone also edits companies by hand on the destination. Their edits stay safe.
  • Use Create and update if the source is your main store and the destination should always match it. Edits made only on the destination are overwritten.

What is synced

ItemWhat is copied
CompanyName, note, Company ID, and the "customer since" date (only when the company is first created)
LocationsName, shipping and billing addresses, tax settings, checkout settings, payment terms
ContactsThe customer behind the contact, the contact's job title and language
RolesEach contact's role at each location
Main contactThe company's main contact
MetafieldsCompany and location metafields, if Company metafields is on
CatalogsPrice list and product list per company location, if Catalogs and price lists is on

What is not synced

  • Deletes. If you delete a company, location or contact on the source, it stays on the destination. Delete it there by hand if needed.
  • Emptied fields. An empty value never overwrites a value. If you clear a company note on the source, the destination keeps the old note.
  • Removed tax exemptions. New tax exemptions are added. An exemption removed on the source is not removed on the destination.
  • Removed metafields. A metafield that exists only on the destination is never removed.
  • Changes made on the destination. Company sync never sends anything back to the source.

How companies are matched

The app links each source company to one destination company, so it does not create copies.

ItemHow the app finds it on the destination
CompanyA company it linked before, then the same Company ID, then the exact same name
LocationA location with the same name inside that company
ContactThe customer with the same email, then the same phone number. If none is found, the customer is created.
RoleA role with the same name inside the destination company
Good to know
  • A contact whose customer has no email and no phone is skipped. The app has no way to find that person on the destination.
  • Company ID must be unique on a store. If the destination already uses that ID for another company, the company is still created, but without the Company ID. The run tells you why.
  • Roles are matched by name. If the destination uses a different language for role names, the app picks the closest admin role. Check the roles after the first sync.
  • Payment terms are matched by type and number of days (for example "Net 30"). If the destination has no matching terms, the location is copied without payment terms.

Catalogs and price lists

A catalog in Shopify B2B sets which products a company location can see and what prices it pays. It has a price list (a percentage adjustment and fixed prices for some products).

When Catalogs and price lists is on:

  • The catalog is copied and linked to the matching destination locations.
  • The percentage adjustment is copied.
  • Fixed prices are copied only for products that already exist on the destination through product sync.
  • Products that do not exist on the destination are reported as unmatched. The app never guesses.

Rules:

  • Product sync must run on this pair first. If no products are synced yet, catalogs are skipped and the run says so.
  • Fixed prices need the same currency on both stores. If the currencies are different, the percentage adjustment is still copied, but fixed prices are skipped. This way, no one pays a price meant for another currency.
  • If none of a catalog's products exist on the destination, the product list is not created. The catalog and percentage adjustment are still set up. (An empty product list would hide every product from that location.)
  • Some Shopify plans allow companies but not catalogs. In that case catalogs are skipped with a clear reason, and companies still sync.

How often it runs

  • Real time. With Sync company changes via webhooks on, a change on the source usually reaches the destination in under a minute.
  • Schedule. Runs at the frequency you chose under Automatic schedule. It also catches anything real-time updates missed.
  • By hand. Click Sync next to the store, then run Companies (B2B).
  • With orders. B2B orders copied by Order sync can also create the company they belong to. Both features share the same links, so a company created by one is reused by the other.

Only one company sync runs per pair at a time.

Check the results

Under Automatic schedule on the Companies sync (B2B) card you see:

  • When the last sync ran, or that a sync is running now.
  • A short summary, for example "Last run: 3 companies created, 5 contacts linked to existing, 1 contact skipped (no email or phone)".
  • "Last run: everything already up to date" when nothing needed to change.

For more detail, click View Logs next to the store.

Limits

  • Your plan sets how many companies and catalogs you can sync per store pair. Locations and contacts do not count toward the company limit. See Plans and billing.
  • Customers that company sync has to create count toward your plan's customer limit.
  • Up to 2,000 new companies are created per run. If you have more, the rest are created on the next run.
  • A source store with more than 5,000 companies is not supported yet. Contact support if you need this.
  • Up to 5,000 fixed prices are copied per price list.

Troubleshooting

?
The Companies sync (B2B) card is missing.

Check that you are on the Orders & Customers Sync tab of the destination store. If it is still missing, contact support.

?
The sync stops with a message about B2B.

One of the stores does not have a Shopify plan that includes B2B companies. Both stores need it.

?
A contact was skipped with "no email or phone".

Add an email or phone number to that customer on the source store, then sync again.

?
I edited a company on the source, but the destination did not change.

Check the mode. In Create only, companies that already synced are never changed. Switch to Create and update.

?
I cleared a field on the source, but the destination still has it.

This is on purpose. The app never empties a field on the destination. Clear it there by hand.

?
Fixed prices were skipped.

Either the products are not synced yet (run Product sync first), or the two stores use different currencies.

?
Some companies show "blocked by plan".

You reached your plan's company limit. Upgrade your plan to sync the rest. See Plans and billing.

07Content

Discount sync

5 min read

What it does

Discount sync copies your discounts from the source store to the destination store. It copies both kinds of Shopify discounts:

  • Discount codes: the customer types a code at checkout.
  • Automatic discounts: applied at checkout without a code.

It works in one direction only: source → destination. Changes you make to a discount on the destination are not sent back to the source.

Before you start

  • Both stores must be connected as a pair. See Getting started.
  • Discount sync needs a subscription. Your plan sets how many discounts you can sync. See Plans and billing.
  • Sync your products and collections first. A discount that applies to certain products or collections can only be copied if those products and collections exist on the destination. See Product sync.
  • If a discount is for specific customers, those customers must exist on the destination. See Customer sync.

How to set it up

  1. 1
    In Sync Hub, find your destination store and click Configure.
  2. 2
    Open the Content Sync tab.
  3. 3
    Turn on Discounts sync.
  4. 4
    Save your settings.
  5. 5
    To start now, click Sync next to the store, then run Discounts.

After this, discount sync also runs by itself about once a day.

Settings explained

SettingWhat it doesDefault
Discounts syncMain switch. When on, discounts are copied from source to destination about once a day, and you can also run it by hand.Off
Send alert when discount sync failsIn the Config tab, under Email alerts. Sends you an email when discount sync fails.Off

There are no other discount settings. The schedule cannot be changed.

Which discounts are copied

Discount typeCodeAutomatic
Amount off products or amount off order (percentage or fixed amount)YesYes
Buy X get YYesYes
Free shippingYesYes

Discounts made by other discount apps are not copied.

What is copied for each discount

  • Title
  • All discount codes (not only the first one)
  • The value: percentage or fixed amount
  • Start date and end date
  • Which products, product variants or collections it applies to
  • Minimum purchase requirement (amount or quantity)
  • Who can use it: all customers, or specific customers
  • Usage limits: total number of uses, and "once per customer"
  • Which other discounts it can combine with
  • Whether it applies to one-time purchases, subscriptions or both

How products, collections and customers are translated

Each store has its own IDs for products, collections and customers. So the app looks up the same item on the destination:

Item in the discountHow the app finds it on the destination
ProductSame product handle (the product's web address name)
Product variantSame product handle, then the same SKU, then the same variant title
CollectionSame collection handle
CustomerSame email

The app never makes a discount bigger than on the source.

  • If none of the items a discount applies to exist on the destination, the discount is not copied at all. (Otherwise it would apply to your whole store.)
  • If some of the items exist, the discount is copied for those items only. It is narrower than on the source, never wider.
  • Discount sync never creates products on the destination. Use Product sync for that.

Some discounts cannot be copied as they are set up:

  • A discount for a customer segment. Segments are different on each store, so the discount is skipped. (Copying it for "all customers" would give it to everyone.)
  • A Buy X get Y discount that does not name any products or collections on the source. Shopify does not allow this on the destination.

How discounts are matched

The app remembers which destination discount belongs to which source discount.

  • On each run, it updates the linked discount instead of making a new one.
  • If the destination already has a discount with the same code (or, for automatic discounts, the same title), the app links to it and updates it.
  • Renaming is safe. If you rename a code or an automatic discount's title on the source, the same destination discount is updated.
  • Old codes are removed. If a code no longer exists on the source discount, it is removed from the destination discount. The app never removes the last code a discount has.
  • If you remove a product from a discount on the source, it is also removed on the destination.

When you delete a discount on the source

If you delete a discount on the source, the linked discount on the destination is turned off (deactivated). It is not deleted, so you can still see it and its history. Delete it by hand if you no longer need it.

To stay safe, the app only does this when it read the full list of source discounts without any error. If the source list comes back empty, nothing is turned off.

How often it runs

  • Automatically: about once a day while Discounts sync is on.
  • By hand: click Sync next to the store, then run Discounts.

There is no real-time discount sync. A change on the source reaches the destination on the next run.

Check the results

Click View Logs next to the store to see each run. The run summary shows how many discounts were created and updated, and how many were turned off because they were deleted on the source.

If some discounts were not copied, the store shows a warning that tells you how many and why, for example:

  • "...because the products, collections or customers they apply to do not exist on this store." Sync those products or collections first, then run discounts again.
  • "...because they cannot be copied as they are set up on the source store." Check the discount on the source (for example a customer segment, or a Buy X get Y with no products).

Limits

  • Your plan sets how many discounts you can sync per store pair. When you reach the limit, the remaining discounts are skipped, and the store shows: "Billing required for this shop: discount plan limits reached. Upgrade to sync blocked discounts." See Plans and billing.
  • Up to 5,000 codes are copied per discount.
  • Up to 5,000 products, variants or collections are read per discount.

Troubleshooting

?
A discount was not copied.

Check the warning on the store and in View Logs. Usually the products, collections or customers it uses are not on the destination yet. Run Product sync (and Customer sync for customer-only discounts), then run Discounts again.

?
The destination discount applies to fewer products than on the source.

Some of the products or collections are not on the destination. Sync them, then run Discounts again.

?
I turned on Discounts sync, but nothing happened yet.

The automatic run happens about once a day. To start now, click Sync and run Discounts.

?
A discount on the destination was turned off.

Its source discount was deleted. If you still need the discount on the destination, turn it back on by hand, or create it again on the source.

?
I edited a discount on the destination, and my change disappeared.

The source is the main store for discounts. Each run copies the source version again. Make your change on the source instead.

?
The sync says billing is required.

Discount sync needs a subscription, or you reached your plan's discount limit. See Plans and billing.

08Content

Metafields & metaobjects

7 min read

What it does

Sync Hub copies your custom data from the source store to the destination store.

Two Shopify words first:

  • A metafield is an extra field on a product, page, customer and so on. For example "Care instructions" or "Material". It is how you add data that Shopify does not have by default.
  • A metaobject is your own content type with its own fields. For example a "Designer" with a name, photo and bio. You create the entries once and link to them from many places.

Each of these has two parts:

PartWhat it isExample
DefinitionThe field itself: its name, key and type."Material", key custom.material, type "Single line text"
ValueWhat you filled in for one item."100% cotton" on one product

Sync Hub copies both. It creates the definitions on the destination first, then it writes the values.

There are two separate features for this:

FeatureWhat it copiesWhere you turn it on
Metafield & metaobject syncMetaobject definitions and entries, metafield definitions, and metafield values on blogs, articles, pages, products, variants, collections, the shop, customers and orders.Content Sync tab
Product metafieldsOnly product and variant metafield values (and the definitions they need).Product & Inventory Sync tab, as part of product sync

You can use one or both.

Before you start

  • You need a paid plan. Both features show "Subscription required". See Plans & billing.
  • Values are only copied for items that are already linked between your stores. So sync the items first:
  • If a product, page or other item is not linked yet, its metafield values are skipped. They are copied on a later run, once the item is linked.

How to set it up

Metafield & metaobject sync

  1. 1
    Open the app and find the destination store in your list of connected stores.
  2. 2
    Click Configure.
  3. 3
    Open the Content Sync tab.
  4. 4
    Turn on Metafield & metaobject sync.
  5. 5
    Optional: change Metafields bulk mode or Compare digest mode (see the table below). Most stores can leave them as they are.
  6. 6
    Click Save changes.
  7. 7
    To run it, click Sync on the store, then click the run button on the Metafields & metaobjects row. It also runs when you click Run full sync.

Product metafields

  1. 1
    Click Configure on the destination store.
  2. 2
    Open the Product & Inventory Sync tab.
  3. 3
    Under Sync collections, images & sales channels, tick Sync metafields.
  4. 4
    Optional: fill in the Metafield allowlist (see below).
  5. 5
    Click Save changes.

Product metafields then run by themselves at the end of every product sync. You can also run them any time from Sync → Product metafields.

Settings explained

SettingWhat it doesDefault
Metafield & metaobject syncTurns the full metafield and metaobject sync on for this pair.Off
Metafields bulk modeFor large runs, Sync Hub switches to Shopify's bulk processing when a type has many items. Small runs still write item by item.Off
Compare digest modeOff is faster. Safe adds a check so a value that changed on the destination while the sync was writing is not overwritten blindly. The write is retried instead.Off
Sync metafields (Product sync)Copies product and variant metafield values after each product sync.Off
Metafield allowlist → Forward (source → destination)Leave it empty to copy every product and variant metafield. To copy only some, list them with commas: namespace.key (for example custom.color) or just key to match any namespace.Empty (all)
Metafield allowlist → Reverse (destination → source)The same, for products copied back to the source. Only shown when reverse sync is on. See Two-way & reverse sync.Empty (all)

The forward allowlist also limits which product and variant metafields the full Metafield & metaobject sync writes.

What is synced

The full sync runs in this order:

  1. 1
    Metaobject definitions
  2. 2
    Metaobject entries
  3. 3
    Metafield definitions
  4. 4
    Metafield values
  5. 5
    Metaobject translations (only when Translation sync is also on)

Each step needs the step before it. If a step has too many failures, the later steps wait for the next run. A few failed rows do not stop the run.

Details:

  • Definitions are created on the destination with the same name, key and type. If the destination already has a metaobject definition but is missing some fields, Sync Hub adds the missing fields. It never removes or changes fields you have there.
  • Metaobject entries that are missing on the destination are created. Sync Hub first looks for a matching entry (same handle, or same content) so it does not make copies.
  • Product metafields skip products whose metafields have not changed since the last run. This keeps runs fast.
  • Admin filter limit: Shopify allows only 50 product metafield definitions that can be used to filter the product list. If the destination is full, the definition is still created, just without the filter option.
  • Pinned definitions: a definition is pinned on the destination only if it is pinned on the source.

Reference metafields

Some metafields do not hold text. They point to something else in your store, like a product, a collection, an image or a metaobject entry. This is called a reference.

Every item has a different ID in each store. So Sync Hub must find the matching item on the destination and point to that one. If it cannot find a match, it skips that field. It never writes a link to the wrong item.

The metafield points toHow Sync Hub finds it on the destination
Product or variantUses the products linked by product sync.
Metaobject entryFinds the matching entry. If none exists, it creates it (and its definition).
Image or video fileUploads the file to the destination, or reuses a file with the same name that is already there.
Collection (product metafields only)Finds the collection with the same handle (URL name).
Page, blog article, customer, company or order (product metafields only)Uses the items already linked by those syncs.
Mixed reference (can point to several metaobject types)Each allowed type is matched on the destination.

Supported file types for references:

  • Images: PNG, JPG/JPEG, GIF, SVG, WebP and HEIC.
  • Videos: MP4, MOV, AVI and MKV.

What is not synced

  • PDFs and other document files inside a metafield reference. The field is skipped. To copy the documents themselves into the destination's Files, use File sync.
  • Shopify-reserved and app-owned data. Some metafields and metaobjects belong to Shopify or to another app, not to you. Apps like Sync Hub are not allowed to create them. These are skipped:
    • namespaces that belong to Shopify (for example shopify),
    • metaobject types that start with shopify--, such as the standard values used by Shopify's product category fields (for example color or pattern),
    • metaobject types and metafields owned by another app (app--…, $app:…),
    • Shopify's standard definitions that only Shopify can create (for example reviews.rating).
  • Definitions that point to another app's metaobjects. They are skipped quietly, because the destination cannot hold them.
  • Edits to metaobject entries that already exist on the destination. In the full metafield & metaobject sync, an entry is created once. If you later change it on the source, the destination entry is not updated.
  • Deletes. Sync Hub does not delete metafields, definitions or entries on the destination.

How often it runs

FeatureWhen it runs
Metafield & metaobject syncWhen you click its row in Sync, or Run full sync. It is not part of the content Automatic schedule.
Product metafieldsAutomatically after every product sync (manual or scheduled), and when you click Product metafields in Sync.

Limits

  • A paid plan is needed. Usage counts toward your plan. See Plans & billing.
  • A definition's type cannot change in Shopify. If the same key has a different type on each store, values for it cannot be copied. One exception: single-line and multi-line text are converted for you when it is safe (a value with no line breaks).
  • Shopify's limits on definitions per store still apply on the destination.

Good to know

  • Run product sync (and page, blog, customer and order sync, if you use them) before metafield sync. Values need linked items.
  • Large stores take longer on the first run. Later runs are faster, because existing entries are matched and unchanged products are skipped.
  • If you delete a metaobject entry on the destination that Sync Hub created, it is created again on the next run.
  • To get an email when this sync fails, open Configure → Config → Email alerts and tick Send alert when metafields/metaobjects sync fails.

Troubleshooting

?
A metafield shows on the source product but is empty on the destination.

Check these, in order:

  • Is the product linked by product sync? If not, run product sync first.
  • Is the metafield in your Metafield allowlist? If the list is not empty, only listed metafields are copied.
  • Is it a reference to a PDF, or to a Shopify-reserved or app-owned item? Those are skipped.
  • Does the destination have the same key with a different type? Then make the two definitions match.
?
The log says a reference was skipped.

Sync Hub could not find the matching item on the destination. Sync that item first (for example the product or page), then run the metafield sync again.

?
I changed a metaobject entry on the source, but the destination still shows the old text.

Entries that already exist on the destination are not updated. Edit the entry on the destination as well.

?
Values were not written, and the log says an earlier step was not ready.

An earlier step (for example definitions) had too many failures. Fix the cause shown in View Logs, then run the sync again.

?
Shopify says the type must match the definition's type.

The destination already has this key with a different type. Shopify does not let anyone change a type. Contact support before you delete a definition, because deleting it also deletes its values.

09Content

File sync

4 min read

What it does

File sync copies files from the Files area of your source store to the destination store. In Shopify admin this is Content → Files.

It copies:

  • Images (with their alt text, the short description for screen readers and search engines),
  • Videos (only when Sync videos is on),
  • Documents and other files, such as PDFs.

File sync only adds files that are missing on the destination. It never changes or deletes a file that is already there.

Before you start

  • You need a paid plan. The setting shows "Subscription required". See Plans & billing.
  • File sync is for the Files library. Product images are copied by Product sync, not by file sync.
  • Think about which files you really need. A big library takes time, and each file created counts toward your plan.

How to set it up

  1. 1
    Open the app and find the destination store in your list of connected stores.
  2. 2
    Click Configure.
  3. 3
    Open the Content Sync tab.
  4. 4
    Turn on Files sync.
  5. 5
    Turn on Sync videos if you want videos too.
  6. 6
    Optional: set filters (see below) to copy only some files.
  7. 7
    Click Save changes.
  8. 8
    To run it now, click Sync on the store, then the run button on the Files row. It also runs with Run full sync.

Settings explained

SettingWhat it doesDefault
Files syncTurns file sync on for this pair.Off
Sync videosIncludes video files. When off, videos are skipped and only images and other files are copied.Off for new pairs
File typeTick Images and/or Documents & other files. Nothing ticked = all types. Videos are controlled only by Sync videos.Nothing ticked (all)
Used inAny (no restriction), Used in a product, or Not used anywhere.Any (no restriction)
File name containsCopies only files whose name contains this word, for example banner.Empty (all)
File size → Min size / Max sizeCopies only files in this size range. Pick KB, MB or GB.Empty (any size)

A file must match every rule you set. If you leave all filters empty, you see "No filter set — all files will sync."

The filters also apply to videos when Sync videos is on.

How duplicates are avoided

Sync Hub checks each file by its file name:

  • If the destination already has a file with that name, the file is skipped.
  • Shopify sometimes renames a file when it is uploaded. It may add a code to the end (photo.jpg becomes photo_1a2b3c….jpg). It may also change the extension to match the real format (a PNG that is really a JPEG is saved as .jpg). Sync Hub knows about this and still sees the file as "already there".

Because the check uses the name only:

  • If you replace a file on the source but keep the same name, the new version is not copied.
  • Two different files with the same name count as one. Only the first is copied.

What is synced / not synced

SyncedNot synced
New images, with alt textChanges to a file that already exists on the destination
New videos (when Sync videos is on)Deletes. Removing a file on the source does not remove it on the destination
New PDFs and other documentsFiles from the destination back to the source

How often it runs

  • When you click the Files row in Sync, or Run full sync.
  • On a schedule, if you turn on Automatic schedule in the Content Sync tab. Choose Every 6 hours, Every day or Every week. The schedule runs pages, blogs and files together.

Large libraries and long runs

  • The first run on a big library is the slowest. Later runs only add new files, so they are much faster.
  • Images and documents are created in batches. Videos are uploaded one at a time, so they take longer.
  • Shopify prepares a full list of your files before the copy starts. For a large library this can take a few minutes. That is normal.
  • If Shopify is slow or busy, Sync Hub waits and tries again by itself.
  • To make a run smaller, use the filters, for example Used in → Used in a product, or a Max size.

Limits

  • A paid plan is needed. Each file created counts toward your plan's file usage. See Plans & billing.
  • Shopify's own file rules still apply on the destination, such as file size limits and supported formats.
  • Matching is by file name only (see above).

Good to know

  • After a run, open View Logs on the store. You see how many files were found, created and skipped.
  • To get an email when file sync fails, open Configure → Config → Email alerts and tick Send alert when content sync fails.
  • Images and videos used inside metafields are handled by Metafields & metaobjects, not by file sync.

Troubleshooting

?
A file is on the source but not on the destination.

Check these:

  • Is it a video? Then Sync videos must be on.
  • Does it match all your filters? An unexpected File name contains or Max size value is a common cause.
  • Does the destination already have a file with the same name? Then it is skipped on purpose.
  • Has your plan reached its file limit? Check View Logs and Plans & billing.
?
I updated an image on the source, but the destination still has the old one.

File sync does not replace existing files. Upload the new image under a new file name, or replace it on the destination yourself.

?
The run takes a long time.

This is normal for the first run of a large library, and for videos. Use filters to copy fewer files. Later runs only add new files.

?
I deleted a file on the source. Why is it still on the destination?

File sync never deletes files. Remove it on the destination by hand.

10Content

Blogs, pages & templates

5 min read

What it does

Sync Hub copies your online store content from the source store to the destination store. There are three separate parts:

PartWhat it copies
Blogs syncYour blogs and every article (blog post) inside them.
Pages syncYour online store pages, such as "About us" or "Shipping policy". You can pick which pages.
Templates syncTheme templates. A template is the layout file your theme uses for a type of page, for example the product page or a custom page layout. You pick which templates.

All three copy in one direction only: source → destination.

Before you start

  • Blogs and pages: the free plan copies only a few items (5 pages and 5 articles). To copy more, you need a paid plan. See Plans & billing.
  • Templates are copied into the destination's live theme (the published theme your customers see). Make a backup of the destination theme first. In Shopify admin, go to Online Store → Themes and duplicate the live theme.
  • Template sync is an experimental feature. Test it on one template first.
  • If you also want metafields on pages and articles, see Metafields & metaobjects. For translated pages and articles, see Translation sync.

How to set it up

  1. 1
    Open the app and find the destination store in your list of connected stores.
  2. 2
    Click Configure.
  3. 3
    Open the Content Sync tab.
  4. 4
    Turn on the parts you want: Pages sync, Templates sync and/or Blogs sync.
  5. 5
    For pages: under Pages to sync, tick the pages you want, or click Select all.
  6. 6
    For templates: under Templates to sync, tick the templates you want, or click Select all.
  7. 7
    Optional: turn on Automatic schedule and pick how often (pages and blogs only).
  8. 8
    Click Save changes.
  9. 9
    To run now, click Sync on the store. Use the Pages, Blogs or Templates row, or Run full sync.

When you run Templates, you first see a Template Sync Notice. Read it, then click Continue.

Settings explained

SettingWhat it doesDefault
Pages syncCopies pages from source to destination.Off
Pages to syncThe pages to copy. Select all copies every page, including new ones you add later. Clear removes all ticks.All pages
Templates syncCopies theme templates into the destination's live theme.Off
Templates to syncThe templates to copy. Works the same way as Pages to sync.All templates
Blogs syncCopies all blogs and all their articles. You cannot pick single blogs.Off
Automatic scheduleRuns content sync again and again: Every 6 hours, Every day or Every week.Off

What is synced

Blogs:

  • Title, handle (the name used in the web address), template, and comment setting.

Articles:

  • Title, author, content, excerpt (summary), tags, featured image, handle, template, visible or hidden, and publish date.

Pages:

  • Title, content, handle, template, visible or hidden, and publish date.

Templates:

  • The template file from the source's live theme.
  • The sections and snippets it uses. These are smaller theme files that templates are built from. Sync Hub copies them too, so the template works on the destination. They always come from the latest source version.

How existing content is matched

  • Sync Hub remembers which source item belongs to which destination item.
  • On the first run, if the destination already has a page, blog or article with the same handle, Sync Hub uses that one. It does not create a copy. From then on, it updates it with the source content.
  • Templates are matched by their file name. A template with the same name on the destination is replaced.

What is not synced

  • Deletes. If you delete a page, blog or article on the source, it stays on the destination. Delete it there by hand.
  • Changes made on the destination. Content moves source → destination only. If you edit a synced page on the destination, the next sync overwrites your edit with the source version.
  • Blog comments.
  • Metafields and translations. These have their own features (links above).
  • Templates in full sync or on a schedule. Templates run only when you click Templates yourself.

Templates: what "graceful strip" means

A template can contain settings that point to something that exists only in the source store. For example a background video or an image that was uploaded only there.

Shopify rejects a whole template file if even one setting points to something the destination does not have. Without help, the full template would fail.

So Sync Hub does this:

  1. 1
    It tries to save the template.
  2. 2
    If Shopify rejects some settings, Sync Hub removes only those settings.
  3. 3
    It tries again. The template is saved without them.

The template still arrives and works. Only the parts that could not be linked are left empty. Open the template in the destination's theme editor and choose the missing image or video again.

Sync Hub does not look for a matching file on the destination for these settings. It only removes them.

Templates: backup and Revert

Before every template run, Sync Hub saves a backup of the destination's current versions of those templates and sections.

To go back:

  1. 1
    Click View Logs on the store.
  2. 2
    Find the template sync you want to undo.
  3. 3
    Click Revert, then confirm with Revert.

Good to know about Revert:

  • It restores the templates and sections to how they were before that run.
  • It is a best effort, not a perfect copy. Shopify does not let apps delete theme files. So a template that was new in that run is not removed.
  • After a revert, the log shows Reverted. You can revert a run only once.

How often it runs

PartManualAutomatic scheduleRun full sync
PagesYesYesYes
BlogsYesYesYes
TemplatesYesNoNo

Limits

  • Free plan: up to 5 pages and 5 articles. Paid plans: see Plans & billing.
  • Only one template run can run at a time for a store. Wait for it to finish before you start another.
  • Templates are always written to the destination's live theme. You cannot pick another theme.

Good to know

  • If none of the pages you ticked still exist on the source, nothing is copied. Open Pages to sync and pick again.
  • New pages on the source are included automatically only when Select all is used.
  • To get an email when content sync fails, open Configure → Config → Email alerts and tick Send alert when content sync fails.

Troubleshooting

?
A page I edited on the destination went back to the old text.

The page is synced from the source. Each sync copies the source version over it. Make the change on the source, or remove the page from Pages to sync.

?
A page is missing on the destination.

Check that Pages sync is on and that the page is ticked in Pages to sync. If you are on the free plan, you may have reached the 5-page limit.

?
A template arrived, but an image or video in it is empty.

That setting pointed to a file that exists only in the source store, so it was removed (see "graceful strip"). Choose the file again in the destination's theme editor.

?
The destination store looks wrong after a template sync.

Click View Logs, find the template run and click Revert. If that does not fix it, restore the theme backup you made before.

?
I see "No templates found in source store".

Sync Hub reads templates from the source's live theme. Check that the source store has a published theme.

11Content

Translation sync

4 min read

What it does

If your source store sells in more than one language, translation sync copies the translated text to the destination store.

For example: your source store's main language is English, and it also has German. Translation sync copies the German titles and descriptions of your products to the matching products on the destination.

It copies translations for:

  • Products (when product sync is on for this pair),
  • Pages,
  • Blog articles,
  • Metaobject entries (when Metafield & metaobject sync is also on).

Before you start

  • You need a paid plan. The setting shows "Subscription required". See Plans & billing.
  • Both stores must have the same extra languages added and published. In Shopify admin, go to Settings → Languages. Only published languages are copied. Your store's main (default) language is never "translated" — it is the normal text, copied by the other syncs.
  • The items must already be linked between your stores. So run these first:

How to set it up

  1. 1
    Open the app and find the destination store in your list of connected stores.
  2. 2
    Click Configure.
  3. 3
    Open the Content Sync tab.
  4. 4
    Turn on Translations sync.
  5. 5
    Click Save changes.
  6. 6
    To run it, click Sync on the store, then the run button on the Translations row. It also runs with Run full sync.

Settings explained

SettingWhat it doesDefault
Translations syncCopies translations in all published extra languages from source to destination.Off

There are no other settings. Which items are translated depends on which other syncs are on (see the list above).

What is synced

For each linked item and each published extra language, Sync Hub copies the translated text that Shopify lets you translate. For example:

  • title,
  • description or content,
  • handle (the name used in the web address),
  • SEO title and SEO description,
  • excerpt (for articles),
  • metaobject field text.

Only the general translation for each language is copied. Translations made for one market only (Shopify Markets) are not copied.

When Shopify refuses a translation

This is the most important thing to understand about translation sync.

A translation only fits the exact text it was written for. Shopify checks this. When you save a translation, Shopify compares it with the main-language text on that store.

So if a field's main-language text on the destination is different from the source, the source's translation does not belong there. Shopify would refuse it.

This often happens when:

  • product sync is set not to copy that field (for example the description or the handle), so each store has its own text,
  • someone edited the text on the destination,
  • the field is empty on the destination (for example no SEO title there).

What Sync Hub does:

  • It checks each field first.
  • It copies only the fields where the text is the same on both stores.
  • It skips the other fields and tells you why. It does not force a wrong translation onto your store.

In View Logs each item gets one clear line:

Log messageWhat it means
"… translations synced successfully"All fields were copied.
"… not translated — this store's text differs from the source (a translation only fits the text it was written for)"The text is different on the destination, so that field was skipped.
"… not translated — this store has no such text"The field is empty on the destination, so there is nothing to translate.
"Shopify refused …"Shopify did not accept that field. Its reason is shown.

Items that have no translations on the source are counted as "No translations on the source". This is not an error.

What is not synced

  • Fields where the destination's main text is different from the source (see above).
  • Your main language. That is normal text, copied by the other syncs.
  • Languages that are not published on both stores.
  • Market-specific translations.
  • Translations for collections and for blogs themselves (articles are included).
  • Deletes. Removing a translation on the source does not remove it on the destination.

How often it runs

  • When you click the Translations row in Sync.
  • When you click Run full sync.

Translation sync is not part of the content Automatic schedule. After you change translations on the source, run it yourself.

Limits

  • A paid plan is needed. Usage counts toward your plan. See Plans & billing.
  • Only items that are already linked between the stores are translated.

Good to know

  • Run the other syncs first, then translations. A new product or page has nothing to receive a translation until it is linked.
  • If you want a field to be translated, its main-language text must be the same on both stores. Check your product sync settings for that field.
  • To get an email when translation sync fails, open Configure → Config → Email alerts and tick Send alert when content sync fails.

Troubleshooting

?
The titles were translated, but the descriptions were not.

The descriptions are different on the two stores. Often product sync is set not to copy the description. The source's translation does not fit the destination's text, so it is skipped. Translate those fields on the destination yourself, or let product sync copy the description.

?
Nothing was translated.

Check these:

  • Is the language added and published on both stores?
  • Were the items synced first (products, pages, articles)?
  • Does the source item really have a translation? Look for "No translations on the source" in the log.
  • Is your plan active?
?
A new product on the destination has no translation.

Translations are not copied on a schedule. Run Translations from Sync, or Run full sync.

?
Will translation sync overwrite translations I made on the destination?

For fields it copies, yes — the source translation is written to the destination. Fields whose main text differs are never touched.

12Advanced

Two-way & reverse sync

9 min read

What it does

Sync Hub always connects two stores as a pair:

  • The source store is your main store.
  • The destination store ("this store" on the settings screen) receives products from the source.

Products can move in three ways:

ModeWhat movesWhere you turn it on
Forward syncSource → destination. This is the normal sync.Forward sync (source → this store)
Reverse syncProducts that exist only on the destination are copied up to the source.Reverse sync (this store → source)
Two-way syncEdit any product on either store, and the change reaches the other store.Two-way sync — edit any product on either store

Stock (inventory) is different. Stock always moves in one direction only. See "Stock direction" below.

Before you start

  • Product sync must be on for this pair. See Product sync.
  • Check your Primary product match field (SKU, Barcode, Handle or Title). Reverse sync uses it to find a product that already exists on the source, so it does not create a duplicate.
  • Before you turn on Two-way sync, make sure each store already has the data you want to keep. The first run only records how each product looks today.
  • If you use many stores, decide which store is your hub (see "Hub setups" below).

How to set it up

  1. 1
    Open the app and find the destination store in your list of connected stores.
  2. 2
    Click Configure.
  3. 3
    Open the Product & Inventory tab.
  4. 4
    Make sure Product synchronization is on.
  5. 5
    Turn on Reverse sync (this store → source).
  6. 6
    Under Automatic schedule, pick how often reverse sync runs, or Off — manual only.
  7. 7
    Optional: turn on Two-way sync — edit any product on either store.
  8. 8
    Optional: turn on Filter which destination products reverse-sync to limit which products go up.
  9. 9
    Click Save changes.

To run reverse sync right away, click Run reverse sync. It runs in the background. The status is shown next to the button.

Reverse sync (this store → source)

Reverse sync does two things:

  1. 1
    Copies new products up. A product that exists on the destination but not on the source is copied to the source. This includes products whose source copy was deleted.
  2. 2
    Keeps those products up to date. A product that reverse sync copied up stays controlled by the destination. When you edit it on the destination, the change goes to the source on the next run.

What reverse sync does not do on its own:

  • Products that came from the source stay controlled by the source. If you edit one of those on the destination, the change is not sent back. The next forward sync will overwrite it.
  • If you want to edit any product on either store, also turn on Two-way sync.

New products made on the destination

When reverse sync finds a product that is only on the destination:

  • It first looks for the same product on the source, using your match field (and SKU, barcode, handle or title after that). If it finds one, it links the two products. Nothing new is created.
  • If there is no match, it creates the product on the source.
  • If New products on destination is set to Update only, reverse sync does not create new products on the source either. It only links products that already match.

New products created on the source count toward your plan's product usage. Linking products that already exist does not.

When reverse sync runs

  • After each forward sync, if forward sync is on.
  • On its own schedule, if you set Automatic schedule. Choices: Every 30 minutes, Every hour, Every 6 hours, Every day, or Off — manual only.
  • When you click Run reverse sync.

Running reverse sync on its own (by schedule or button) needs a paid plan.

Two-way sync

With Two-way sync on, the destination and the source become equal editors. Every product counts, including products that came from the source.

  • Edits travel both ways: titles, descriptions, prices, images, new variants (a "variant" is one version of a product, like one size or one color).
  • Sync never deletes products or variants. A variant that exists on only one store stays there. The only exception is images, if you turned on Remove destination-only images (exact mirror) in the image settings.
  • Only fields that are turned on in your product sync settings travel. A field set to "never" stays local to each store.
  • Two-way sync also keeps variants added on the destination. You do not need Keep variants added on this store as well.
  • Two-way sync never moves stock. Stock follows inventory sync, in one direction.

How the app decides which edit wins

Sync Hub compares each product with how it looked at the last sync.

What happenedResult
You changed a field on one store onlyThat change is copied to the other store.
You changed different fields on the two stores (for example, the title on one and the description on the other)Both changes are kept.
You changed the same field on both storesThe most recent edit wins. The other edit is replaced.

This field-by-field check covers: title, description, vendor, product type, tags, status and category.

For variants (prices, SKUs and so on), the whole product counts as one unit. If both stores changed a product's variants between syncs, the store with the newest edit wins.

The first run after you turn it on

The first run only records each product's current state. It does not push anything. Two-way syncing starts from the next run.

How fast changes arrive

Two-way sync is not instant. Changes arrive with the normal sync runs, usually within one or two sync cycles. Shopify can take a few minutes to include a fresh edit in the data we read, so a very recent edit may only arrive on the next run.

Stock direction: inventory is never two-way

Stock moves in one direction only. There is no "both ways" option, on purpose. Stock numbers have no way to show which one is newer, so two directions would just overwrite each other.

You choose the direction in the inventory settings for this store, under Which store's stock is correct:

OptionWhat happens
Source store (default)The source's stock is copied down to this store. A source count of 0 sets this store to 0.
This storeThis store's stock is copied up to the source, into the matching source location.

If you choose This store:

  • The app shows When this store shows 0, set the source to 0 too. Leave it off unless every item on this store has a counted quantity. Otherwise an item you did not count yet would set the source to 0.
  • If more than one store sends stock to the same source, each store needs its own location in Location mapping. If two stores share a location, inventory sync stops instead of guessing.
  • Check that the stock on this store is right before the next sync. It is about to replace the source's numbers.

Stock of products created by reverse sync

When reverse sync creates a product on the source, the product starts with this store's stock, so it does not start at 0. This happens once, at create, and only when inventory sync is on. After that, stock follows Which store's stock is correct.

A sale here lowers the source's stock

If stock flows from the source down to this store, you can turn on A sale here lowers the source's stock. Each sale on this store then takes the same number of units off the source.

  • Leave it off if a warehouse or stock app on the source already lowers its stock for these sales. Otherwise each sale is counted twice.
  • It cannot be used when stock flows up to the source (Which store's stock is correct = This store).

See Inventory sync for all stock settings.

How the switches work together

SwitchEffect
Product synchronization offNo product sync in either direction. Reverse sync and two-way sync stop too.
Forward sync off, Reverse sync onReverse only. Products go from this store to the source. Nothing is copied from the source.
Reverse sync offNothing is sent from this store to the source. Two-way sync also turns off.
Inventory sync offStock does not change because of a sale on this store.

What you see on the screen is what runs. If a switch is off, that direction does not run, even on a schedule.

Hub setups: one store to many stores

You can connect one source store to many destination stores. The source is then your hub, and each destination is a spoke.

  • Each destination has its own settings. Turn on reverse or two-way sync per destination.
  • With two-way sync, an edit on one spoke goes up to the hub first. The next forward sync then carries it out to the other spokes.
  • Each spoke keeps its own extra variants. Sync does not delete them.
  • For stock, pick one direction per destination. If several spokes send stock up to the hub, give each spoke its own location on the hub.

Settings explained

SettingWhat it does
Reverse sync (this store → source)Copies products that exist only on this store up to the source. Those products stay controlled by this store.
Automatic scheduleHow often reverse sync runs on its own. With Off — manual only, it runs after each forward sync (if forward is on) or when you click Run reverse sync.
Two-way sync — edit any product on either storeEvery product can be edited on either store. Field-by-field check; the most recent edit wins on the same field.
Run reverse syncStarts reverse sync now, without waiting for a forward sync.
Filter which destination products reverse-syncOnly products that match your rules (tags, vendor, product type or collections) go up. Several values in one row = any of them. Different rows = all of them. This filter is separate from the forward filter.
Keep variants added on this storeForward sync keeps variants that exist only on this store, but does not send them back. Not needed if Two-way sync is on.
Which store's stock is correctThe one direction stock moves in.

You may also see Also forward-sync reverse-created products (legacy). This old option only shows for stores that already have it on. Two-way sync does this job better, and you can safely turn it off.

Good to know

  • Don't edit the same field on two stores at the same time. Only the most recent edit is kept. Pick one store for each kind of change when you can.
  • Sync never deletes products or variants because of reverse or two-way sync.
  • If you change the reverse filter, products that no longer match stop getting updates. They are not deleted.
  • If forward sync is on with a schedule but has never run for this pair, reverse sync waits. It does not create products on the source until the first forward sync has linked your products. You will see a warning in View Logs. Run a forward sync first.
  • Customers and orders have their own direction settings. See Customer sync and Order sync.

Troubleshooting

?
I edited a product on the destination, but the source did not change.

That product probably came from the source. With reverse sync alone, source products stay controlled by the source. Turn on Two-way sync to edit any product on either store. Also check that the field is turned on in your product sync settings.

?
I turned on two-way sync, but nothing happened.

The first run only records the current state of each product. Changes start to flow from the next run.

?
My edit was replaced by an older value.

Someone may have edited the same field on the other store after you. The most recent edit wins. Also, a very recent edit can take one extra sync cycle to arrive.

?
Reverse sync created no products on the source.

Check these:

  • New products on destination may be set to Update only.
  • The reverse filter may not match the products.
  • Forward sync may not have run yet for this pair. Check View Logs for a warning.
  • You may have reached your plan's product limit. See Plans & billing.
?
Stock does not go back to the source.

Two-way sync never moves stock. Set Which store's stock is correct to This store if this store holds your real stock. See Inventory sync.

?
Reverse sync still runs after I turned product sync off.

It should not. With Product synchronization off, no product sync runs in either direction. Check that you clicked Save changes, then contact support if it continues.

13Account

Plans & billing

5 min read

How pricing works

  • You pay per connection. Each source store → destination store pair has its own plan.
  • You choose a plan for each connection: Free, Basic, Pro or Enterprise.
  • Shopify adds up the plans of all your connections and charges one total amount.
  • All prices are in USD and are billed every 30 days.
  • The source store pays. The Plans page is only shown on the source store.

Example: you have one source store and three destination stores. One connection is on Pro and two are on Basic. You pay $39.99 + $14.99 + $14.99 = $69.97 every 30 days.

Plans and prices

PlanPrice per connection
Free$0
Basic$14.99 every 30 days
Pro$39.99 every 30 days
Enterprise$149.99 every 30 days

Every new connection starts on Free.

Limits per connection

Each plan has a limit for each type of data. The limit is the number of different items a connection can sync.

Data typeFreeBasicProEnterprise
Products101,00010,000100,000
Inventory101,00010,000100,000
Orders55002,00010,000
Customers55002,00025,000
Companies (B2B)51005005,000
B2B catalogs2251001,000
Blog articles550100500
Pages550100500
Collections510050010,000
Files51005001,000
Discounts51005005,000
Metafields52,00010,00050,000
Metaobjects51,0005,00030,000
Translations52,00020,000100,000

You can also see these limits under Plan Details on the Plans page.

How items are counted

  • An item counts once, the first time it is synced to that destination store.
  • Updating the same item again later does not count again. So you can sync an item as many times as you want.
  • Limits are per connection. A product synced to two destination stores counts once for each connection.
  • Deleting a synced item does not give the count back.

What happens when you reach a limit

  • Items that were already synced keep syncing as normal.
  • New items of that type are skipped. They are not created on the destination store.
  • The rest of the sync still runs.
  • In Configurations, the store's status may show Billing Pending.
  • On the Plans page, the connection may show Product limit reached. Upgrade to resume processing new products.
  • Before you start a sync, the Before you run this sync box tells you if your plan does not cover all your products.

To sync more items, move that connection to a bigger plan.

Change your plan (upgrade or downgrade)

  1. 1
    Open Sync Hub on your source store.
  2. 2
    Go to Plans.
  3. 3
    You see a list of your destination stores. Each shows its current plan.
  4. 4
    Choose a new plan in the menu next to the store. You can change more than one store at once.
  5. 5
    Check the new total in Pricing Summary.
  6. 6
    Click Pay / Update Plan.
  7. 7
    Shopify shows you the new total amount. Approve it.
  8. 8
    You return to Sync Hub. Your new plans are now active.
Good to know
  • Nothing changes until you approve the new amount in Shopify.
  • Your Shopify charge is replaced by one new charge for the new total.
  • If the new total is $0, your charge is cancelled.

Moving to a smaller plan

If a connection already synced more items than the new plan allows:

  • The oldest synced items, up to the new limit, keep syncing.
  • Newer items stop syncing. They are not deleted from the destination store.
  • New items are not created.

How charges appear on your Shopify bill

  • Sync Hub uses Shopify's own billing. You do not give us any card details.
  • The charge appears on your Shopify bill as an app charge for Sync Hub.
  • You see one amount for all your connections together, not one line per connection.
  • To see the details per connection, open the Plans page.

When you remove a store

When you delete a connection, its plan is removed. But your Shopify charge does not go down by itself, because Shopify needs your approval for a new amount.

When you pay more than your connections cost now, Sync Hub shows a message at the top of the dashboard and Configurations, and on the Plans page:

  • You can lower your charge by $X a month: on the Plans page, click Lower my charge to $X/mo, then approve the new amount in Shopify.
  • You are being billed but have no connected stores: on the Plans page, click Cancel my charge.

Your syncs keep running while you decide.

If you have no connected stores left and do not cancel, Sync Hub cancels the charge by itself after about 14 days without sync activity. There is no refund for the time already billed.

Cancel your plan

  • Stop paying for one connection: change it to Free and click Pay / Update Plan. Or delete the connection and lower your charge (see above).
  • Stop paying for everything: change every connection to Free, or delete all connections and click Cancel my charge.
  • Uninstall Sync Hub from your source store. Shopify cancels the app charge when you uninstall.

Special prices

If our team has agreed a special price with you, the Plans page shows a badge next to that store, for example "20% off". The Pricing Summary shows your price and the normal price crossed out.

When your price changes, a blue message appears: Your updated pricing is ready. Click Approve updated pricing and approve the amount in Shopify. Until you approve, you keep paying the amount you approved before.

Older accounts: Sync Hub Pro

Some stores that installed Sync Hub before the current plans still use the older plans. You will know because your Plans page shows Free Plan and Sync Hub Pro.

—Free PlanSync Hub Pro
Price$0$10 every 30 days for each connected destination store
Products10No plan limit
Blog articles5No plan limit
Pages5No plan limit
Orders10No plan limit
Customers10No plan limit
Translations, files, metafieldsNot includedIncluded

Good to know for older accounts:

  • Stores are covered in the order you connected them, oldest first.
  • If you connect more stores than you pay for, the extra stores show Pending billing update. Click Update billing to cover all stores to cover them.
  • To move to Free, click Update Subscription under Free Plan, then Yes, downgrade to Free. Your charge is cancelled right away.

Troubleshooting

?
I don't see the Plans menu.

You are on a destination store. Open Sync Hub on your source store. Plans are managed there.

?
I changed my plan, but nothing changed.

You must approve the new amount in Shopify. Go to Plans and click Pay / Update Plan again, then approve. Click Refresh on the Plans page to reload.

?
My sync stopped at 10 products.

That connection is on the Free plan. Move it to Basic or higher.

?
I removed a store, but I still pay the same.

Open Plans and click Lower my charge. Then approve the new amount in Shopify.

14Account

Privacy & data

5 min read

What this page covers

  • What data Sync Hub reads from your stores, and why.
  • What data Sync Hub keeps, and for how long.
  • What happens when a customer asks to see or delete their data.
  • What happens when you uninstall the app.
  • How your data is protected.

For the legal text, read our Privacy Policy.

The short version

  • Sync Hub reads data from your stores only to copy it between your own stores.
  • We keep only what we need to link the same item across your stores, plus short-lived sync logs.
  • We do not sell or share your store data for marketing.
  • When a customer asks Shopify to delete their data, we remove their personal details from our records.
  • When you uninstall, your data is deleted after Shopify asks us to delete it (about 48 hours after uninstall).

Permissions the app asks for

When you install Sync Hub, Shopify asks you to approve a list of permissions (Shopify calls them "access scopes"). Each one lets the app read or change one kind of data in your store. Sync Hub needs to read data in the store that sends it, and write data in the store that receives it. Because a store can be a sender in one pair and a receiver in another, the app asks for both.

Permission (plain words)Why we need it
Products, variants and collectionsProduct sync
Inventory and locationsInventory sync: read and set stock per location
Orders, draft orders and fulfillment ordersOrder sync: copy orders and their fulfillment status
Customers, and customer mergeCustomer sync and merging duplicate customers
Companies and payment terms (B2B)Company sync
DiscountsDiscount sync
Metafields, metaobjects and their definitionsMetafield & metaobject sync
FilesFile sync
Online store content (blogs, articles, pages) and themes (templates)Blogs, pages & templates sync
Translations and store languagesTranslation sync
Sales channels (publications)Make synced products visible on the same sales channels

The app uses these permissions only for the syncs you turn on. A sync that is off does not read or write that kind of data.

What data we read and keep

DataWhyHow long
Store details (store name, domain, contact email, Shopify store ID)To know which store is which and to contact youUntil your store's data is deleted after uninstall
Access to your store (a secure key from Shopify)So the app can talk to your storeUntil you uninstall. Shopify stops it at uninstall.
Your sync settings and store pairingsTo run each sync the way you set it upUntil your store's data is deleted after uninstall
Links between items on your two stores (for example, "product X on store A is product Y on store B"), with IDs and details like SKUsSo the app updates the right item and does not create duplicatesWhile the pair is connected, until your store's data is deleted
Customer details for synced customers (name, email, phone, addresses), when customer sync is onTo match and update the same customer on both storesUntil the customer asks for deletion, or your store's data is deleted
Order details for synced orders, which can include the customer's email and addresses, when order sync is onTo link and update the same order on both storesUntil the customer asks for deletion, or your store's data is deleted
Sync logs (what ran, what changed, any errors). Some lines can include a customer's email.So you can see results in View Logs, and so we can help when something goes wrong30 days, then deleted automatically
Temporary working files made while a sync runsTo process large catalogsDeleted automatically, usually within a few days
Billing recordsAccounting and legal reasonsKept after uninstall. The contact email is removed.

Your products, orders and customers themselves stay in your Shopify stores. Sync Hub is not a backup of your store.

Customer data requests

Under privacy laws (like GDPR in Europe), your customers can ask about their data. They make the request to you or to Shopify. Shopify then sends the request to every app that may hold that customer's data, including Sync Hub. We have 30 days to act on it.

"Show me my data"

Shopify tells us the customer's request. We record it and gather what we hold about that customer in your stores' sync data.

"Delete my data"

We clear that customer's personal details from our records:

  • Name, email, phone and addresses in customer links.
  • Personal details (email, addresses, notes) in order links.
  • Contact details in B2B company links.
  • Customer sync history and duplicate-customer scan results for that customer.

We keep only the bare link between the two stores' customer IDs. It holds no personal details.

Important
Sync Hub does not delete the customer from your Shopify stores. If customer or order sync copied that customer to your other stores, the copies are still there. When you get a deletion request, handle it in each of your stores in Shopify admin.

When you uninstall

  1. 1
    Right away: Shopify ends the app's access to your store. Sync stops. Your store pairings and connections are removed.
  2. 2
    About 48 hours later: Shopify asks us to delete your store's data. We then delete all data we hold for that store: settings, item links, customer and order details, and logs.
  3. 3
    Kept: billing records only, with the contact email removed.
Good to know
  • Uninstalling does not remove anything from your stores. Products, customers and orders that were already copied stay where they are.
  • If you reinstall later, you need to connect your stores and set up your syncs again.
  • If you only want to stop syncing for now, turn the syncs off instead of uninstalling. Your settings stay saved.

How your data is protected

  • All traffic between Sync Hub and Shopify uses secure, encrypted connections (HTTPS).
  • The app checks that every message claiming to come from Shopify really comes from Shopify. Messages that fail this check are rejected.
  • The app can only reach stores where it is installed, and only with the permissions you approved.
  • Customer data is used only to sync between your own stores.
  • We do not sell, rent or share your store data for marketing or advertising.

Troubleshooting

?
Why does the app ask for so many permissions?

Sync Hub can sync many kinds of data. Shopify asks for all permissions at install, even for syncs you have not turned on yet. The app uses only what your turned-on syncs need.

?
A customer asked me to delete their data. Is it done once I delete them in Shopify?

Delete them in each of your stores. Shopify then sends the deletion request to us, and we clear that customer's details from our records.

?
I uninstalled by mistake. Can I get my settings back?

Your store pairings are removed as soon as you uninstall. Reinstall the app, connect your stores again, and check every sync setting before you start a sync.

?
Where can I read the full privacy policy?

On our Privacy Policy page. It also lists how to contact us about your data.

15Account

FAQ & troubleshooting

6 min read

First steps when something looks wrong

  1. 1
    On the source store, go to Configurations.
  2. 2
    Look at the Status of the destination store. Move your mouse over the badge to read the message.
  3. 3
    Click View Logs. Set Status to Error or Warning.
  4. 4
    Click a log row to see the full message and the error details.
  5. 5
    Wait a few minutes and run the sync again. Many problems are short and fix themselves.
  6. 6
    Still stuck? Click Book a meeting at the bottom of any Sync Hub page.

Setup and connections

?
Do I need to install Sync Hub on every store?

Yes. Install it on the source store and on each destination store. You cannot connect a store that does not have the app. See Getting started.

?
My connection token does not work.

A token works only once. It also stops working when you click Regenerate Token. Create a new token on the destination store, copy the whole token, and paste it again on the source store.

?
Can one destination store get data from two source stores?

No. A destination store has one source store. If you connect it to a new source store, the old connection is removed.

?
I turned on a sync, but nothing happens on its own.

Turning a sync on does not start a schedule. Open Configure, find Automatic schedule, and choose how often it should run. Off — manual only means it only runs when you click Sync.

?
Does a sync keep running when I close Sync Hub?

Yes. Syncs run on our servers. You can close the app or your browser.

Products

?
Why didn't my product sync?

Check these, in this order:

  • Plan limit. The Free plan syncs 10 products per connection. See Plans & billing.
  • New products on destination is set to Update only. Then Sync Hub only updates products that already exist on the destination store. It does not create new ones.
  • Filters. Check Product status to sync, Filter products for product sync and Don't sync products with these tags.
  • Recent change. See the next question.
  • Logs. Open View Logs and filter by Products.
?
I just changed a product, but the sync did not copy the change.

Shopify needs a few minutes before a new change shows up in the data that Sync Hub reads. Wait a few minutes, then run the sync again.

?
Will Sync Hub create duplicate products?

Sync Hub first looks for the same product on the destination store and updates it. It matches by SKU unless you pick another field in Primary product match field (see How products are matched). It only creates a product when it cannot find a match. Products with the same SKU, or with no SKU, are harder to match. Give each variant a unique SKU for the best results.

?
What happens if I delete a product in the source store?

Sync Hub does not delete it from the destination store. Delete it there yourself if you want it gone.

?
What happens if I delete a synced product in the destination store?

If New products on destination is set to Create, the next sync may create it again. To stop this, set it to Update only, or tag the product in the source store and add that tag to Don't sync products with these tags.

?
I added a variant on the destination store, and the sync removed it.

When Sync Hub updates a product, it makes the variants match the source store. Turn on Keep variants added on this store to keep variants you add on the destination store.

?
My edits on the destination store were replaced.

Each product field you turn on is copied from the source store on every sync. Turn the field off to keep your own value. Some fields can be set to copy only when the product is first created. See Product sync.

?
My stores use different currencies. Are prices converted?

No. Sync Hub never converts prices. When the currencies are different, prices are not synced unless you tick Copy prices anyway, without converting them to …. Then a price of 100 in one currency becomes 100 in the other.

Inventory

?
Why is the stock different between my stores?

Check these:

  • Quantity to sync. Available is stock you can sell. On hand also includes units already sold but not yet shipped. Choose the one you want.
  • Locations. Stock goes to a destination location with the same name as the source location. If the names are different, set up Location mapping in the inventory settings.
  • Schedule. If inventory sync has no schedule and product sync has no schedule, stock only changes when you click Sync.
  • Timing. Stock can change between two syncs. A sale in one store shows in the other store after the next sync.

See Inventory sync.

?
The source store shows 0. Why is the destination also 0?

The source store is the main store for stock. When the source store has 0, the destination store is set to 0 too.

Orders and customers

?
Are customers created when an order is synced?

Yes. When Sync Hub copies an order, it also copies the customer of that order. To sync all customers, also turn on customer sync. See Order sync and Customer sync.

?
My customer sync stopped at a fixed number.

You probably reached your plan limit for customers. Check the Plans page and move that connection to a bigger plan.

Syncs and status

?
How long does a sync take?

It depends on how much data you have.

  • A small store can finish in a few minutes.
  • The first sync of a large catalogue can take several hours.
  • Later syncs are faster, because items that did not change are skipped.
?
The status shows Error. What do I do?

Click View Logs and open the newest Error row. The message tells you what went wrong. Fix the cause if you can, then click Sync again. Turn on Email alerts in the Config tab to get an email next time.

?
The status shows Billing Pending.

Your plan does not cover everything this store wants to sync. New items are skipped, but items already synced keep updating. Open Plans to upgrade. See Plans & billing.

?
How do I stop a sync?

Turn the sync off in Configure and click Save changes. To stop only automatic runs, set Automatic schedule to Off — manual only. See Getting started.

Your data

?
Does Sync Hub change my source store?

Normal syncs only read the source store. They write to the destination store. Sync Hub changes the source store only if you turn on a feature that sends data back, for example:

  • Reverse or two-way product sync
  • Inventory sync from the destination store to the source store
  • Lowering the source store's stock when an item sells on the destination store
  • Reverse order sync

See Two-way and reverse sync.

?
What happens to my data if I disconnect a store or uninstall Sync Hub?

Everything already copied stays in your stores. Sync Hub removes the connection and its settings. See Getting started and Privacy & data.

Support

?
How do I contact support?

Click Book a meeting at the bottom of any Sync Hub page. This opens a calendar where you can book a call with our support team: https://calendly.com/techmarbles/synchub-support

Before the call, note the source store, the destination store, and the log ID of the error from View Logs. This helps us help you faster.