StockUnison setup and help

StockUnison keeps stock counts in step wherever you sell the same item: one store in charge and the others copying it, or every product with the same SKU sharing one stock.

Updated 11 September 2026 · questions this doesn't answer → support@stockunison.com · background reading → guides

Two ways to share stock, and which is yours

The first page of the app asks one question: when the other store sells one, should this store's count go down too?

Not sure? If a sale in any store should lower the stock everywhere, share one stock. If only one store's stock should count, put that store in charge. Nothing changes until you go live, whichever you pick.

One store in charge: how it works

One store is the main store. Its stock counts are the ones everybody follows. Every other store is a connected store, and gets updated to match.

Stock moves one way only, from the main store to the connected stores. StockUnison never writes back to the main store, so no loop is possible, and editing a count in a connected store never changes the main store.

Nothing is written until you say so. Every new connection starts in preview mode, where changes are calculated and logged but no stock moves.

Setting up two stores

Set the main store up first.

1. Put the main store in charge

Open StockUnison in that store's admin and press Put this store in charge. Pick the location whose counts should be copied. If the store has one location, it's chosen for you.

2. Carry the code to the other store

The main store's home page then shows a numbered guide with a six-character code. There are two ways to use it:

Codes last seven days and can be regenerated at any time from Settings. Regenerating stops the old code working immediately; stores that have already joined keep syncing.

3. Match, check, go live

The guide walks the rest: match products by SKU, look at the list, then go live. Nothing changes in the connected store until that last step.

Matching products by SKU

A SKU is the identifier on a product variant — the "SKU (Stock Keeping Unit)" field on Shopify's product page. StockUnison matches products across stores by it. Capitals and stray spaces don't matter: abc-1 and ABC-1  count as the same SKU.

Press Match products on the SKUs page to build the list. Run it again whenever you add products or fix a problem — it is free, repeatable, and never writes anything to either store.

Matched
Found in both stores, so it can be synced. These are the only products that ever move.
Duplicate in main store / Duplicate in connected store
Two or more variants share this SKU, so there is no way to tell which one is meant. These are never synced, deliberately — guessing is how other tools overwrite the wrong product. Fix the duplicate in Shopify and match again.
Missing in connected store
The main store has this SKU and the connected store doesn't. Add it in the connected store if it should sync, or ignore it.
Missing in main store
The connected store has this SKU and the main store doesn't, so StockUnison isn't managing it. Usually fine — it just means that product isn't part of the sync.

Variants with no SKU at all can't be matched. Matching names them in a banner when it finds them, because they appear nowhere else in the list.

If the list has more duplicates than you expected, the guide on duplicate SKUs covers where they come from and how to find them all in a product export.

Preview mode, live and paused

Every connection is in exactly one of three modes, and you can change it at any time from either store.

ModeWhat happens
PreviewChanges are calculated and written to the activity log, but the connected store's stock is never touched. This is where every connection starts.
LiveStock changes in the main store reach the connected store within seconds.
PausedNothing syncs. Changes in the main store are logged as skipped and not made.

Going live pushes every matched count once, first. That means anything that changed while the connection was paused or in preview mode is caught up at that moment — you don't have to hunt for what you missed. The result is reported on screen, and each write appears in the activity log.

Pausing loses nothing permanently. Matches, history and the connection are all kept, and resuming catches the connected store back up.

Checking the counts still agree

A difference is when a connected store's count no longer matches the main store's. Press Check for differences on the SKUs page to compare every matched SKU across both stores.

If anything differs, the page lists each SKU with its main store count, its connected store count, and the difference — a positive number means the connected store is holding more than the main store says it should. Fix N differences pushes the main store's counts across and settles it. That button writes, so it only works while the connection is live.

A difference is only ever known as of the moment it was measured, so the app always shows the age of the last check — "In sync · 2 h ago". A fresh all-clear and a week-old one look different on purpose.

Where differences come from

Shared stock: how it works

Press Share this store's stock on the first page, in the store that holds the stock. StockUnison then reads every product and puts the ones with the same SKU into one group. Every product in a group shows the group's count, and selling one anywhere lowers all of them within seconds.

Shared stock is right only if these products really sell from one stock. If each store keeps its own stock, don't share — put one store in charge instead.

Setting up shared stock

Start in the store that holds the stock. If you only have one store, that is the whole setup — steps 1, 3 and 4.

1. Turn on sharing

Open StockUnison in that store's admin and press Share this store's stock. Pick the location the counts should be read from and written to. If the store has one location, it's chosen for you.

2. Add your other stores — optional

Skip this if you are sharing stock inside one store. Otherwise each other store installs StockUnison and joins with your code, exactly as a connected store does: the same six-character code, the same invite link, and the same choice of location on the way in.

3. Check your catalogue

Press Check my catalogue. StockUnison reads every product in every store sharing, and puts the ones carrying the same SKU into groups. Nothing is written by a check — run it as often as you like, at any catalogue size, on the free plan.

4. Review, then go live

The check shows every group it found and the count each product currently holds, so you can see exactly what would change and by how much before anything moves. Going live sets each group to its lowest count, and from then on selling any product in a group lowers them all.

Going live writes inventory and there is no undo, so the review step is the one worth taking slowly. You can download what every product held at the moment of a check, from the same page, and keep it.

Reading the activity log

Every decision StockUnison makes is recorded, whether or not it wrote anything, and every store involved sees the same log. Each row shows the SKU, what happened, the before and after counts, what triggered it, and when.

Updated
The store's stock was updated. The row shows the change, for example 24 → 30.
Preview
The change was calculated and recorded, but the store wasn't touched because the connection isn't live yet.
Skipped
Nothing needed doing, or nothing could be done. The reason is in the row: the counts already agreed, the SKU isn't matched, the main store doesn't track that item, or syncing is paused.
Failed
The update couldn't be saved. The row says why. Most failures retry themselves on the next stock change.

You can search by SKU and filter by result, by what triggered the change, and by date.

Getting told when something breaks

Everything above assumes you opened the app. StockUnison can also email you when a stock update fails and a connected store's counts may be wrong — the one situation where not knowing costs you money.

Set an address in Settings → Alerts on the main store. It's empty by default, and while it's empty StockUnison never emails you at all. Use whichever address should actually get it; it doesn't have to be the one your Shopify account uses.

Alerts cover failed writes today. They don't yet cover differences, or the case where nothing is matching any more — for those, the check and the matched products list are still the place to look.

Plans and who pays

Only the main store carries a subscription. Connected stores install free. (See the plans and prices.) Plans are limited by how many connected stores are live at once — a connected store in preview mode or paused doesn't count against the limit.

Shared stock works the same way: the store that started sharing carries the plan, the stores that joined are free, and the plan covers how many stores share with it. Sharing stock in one store on its own needs Starter.

PlanPriceLive connected stores
Free$0None — matching, preview mode, checks and the log all still work
Starter$19/mo1
Growth$39/moUp to 5
Scale$79/moUnlimited

Every paid plan includes a 14-day free trial. Change or cancel from Settings → Plan → Change plan in the main store, which opens Shopify's own billing page — StockUnison never sees or handles your card.

Moving to a smaller plan never breaks anything: the oldest live connections stay live up to the new limit, any extras drop to preview mode, and the app tells you which. Nothing is disconnected and no history is lost.

Pressing Go live on a connected store and getting refused? The plan lives on the main store, not this one. Its Settings page is where the plan is chosen.

Adding more stores

Use Add another store on the main store's home page. It hands you the same three things as the first time: a button that opens Shopify's store chooser, the code, and a shareable invite link. One code connects as many stores as you like, and it doesn't expire when a store uses it.

Each new store goes through the same steps on its own — join, match, then go live — and appears on the main store's home page with its own mode, match count and differences.

Setting this up for a client? Every paid plan is free to select on a development store — see the partner program.

Pausing, disconnecting, uninstalling

All of it keeps your history. Only the last one has to be set up again afterwards — uninstalling dissolves the connections, though reinstalling picks your history back up.

To have everything deleted rather than archived, email support@stockunison.com. Shopify also requires us to erase a store's data after uninstall, which happens automatically.

When something isn't working

I changed a quantity and the other store didn't move

Work down this list — it's ordered by how often each one is the answer:

  1. Is the connection live? Preview mode and paused both leave the connected store alone by design. The mode badge is at the top of the page.
  2. Was it the synced location? A connection syncs one location per store. A change at any other location is ignored.
  3. Is that SKU matched? Search for it on the SKUs page. Duplicates and one-sided SKUs are never synced.
  4. Does the main store have a plan? Live writes need one. Matching and preview mode don't.
  5. Check the activity log. If the change reached StockUnison at all there is a row for it, and the row says what happened.

Everything says "SKU not matched" and nothing syncs

This nearly always means the products were recreated since matching last ran — a CSV re-import, a bulk-edit app or a migration all do it. The stored matches point at products that no longer exist. Match products again to relink them. The app watches for this and shows a warning when it sees a run of unmatched changes.

The counts don't agree

Press Check for differences, then Fix N differences to push the main store's counts across. If it keeps coming back, something is editing the connected store directly — another app, a POS, or a person.

I can't go live

Two things are checked, in that order. First, has anything matched? A connection with nothing matched cannot write anything, so going live is refused until Match products finds at least one pair — this is the usual answer on a new connection. Second, the plan: going live needs a plan on the main store, and a plan slot free. If every live connected store your plan covers is in use, either upgrade or switch a store you don't need live to preview mode — that frees the slot at no cost.

A product shows as a duplicate

Two variants in that store share one SKU. StockUnison won't guess between them, so it syncs neither. Give them distinct SKUs in Shopify and match again.

I need to change which location syncs

If the store shares stock with others, open Settings on that store and use Change location. Its products leave their groups until you check your catalogue again, then rejoin at the new location. No stock is changed by this, in either location.

On a one-store-in-charge connection the location is still fixed when a store joins. To change it there, disconnect that store and join it again with the location you want. The code is reusable.

A shared group says "Needs review"

The counts stopped adding up — usually a CSV import or another app rewriting stock — so the group stopped rather than spread a wrong number. Press Check my catalogue again; the new check reads every product afresh and clears it.

What it deliberately doesn't do

Still stuck? Email support@stockunison.com.