DEV Community

Kayabyte
Kayabyte

Posted on

Wix Stores has no Square POS sync. Here's what works (and the bug that makes most syncs oversell)

If you run a shop on Square and sell online through a Wix store, you've probably noticed the two don't talk to each other. A sale at the counter doesn't lower the online stock, and an online order doesn't lower the Square count. Until someone updates both by hand, the web shop can sell stock that's already gone.

Wix did add a Square POS connection in 2026, but only for Wix Restaurants orders. For Wix Stores products and inventory there's no built-in link. Here are the options, from free to automatic, and the one design detail that decides whether a sync actually stops overselling.

Option 1: update both sides by hand

Fine for a handful of one-off items. After each counter sale, lower the stock in the Wix dashboard (Store Products > Inventory). After each online order, lower it in the Square Dashboard item library.

It breaks on the first busy day, when the same item sells in both places before you catch up.

Option 2: spreadsheets

Square can export your item library, and Wix Stores can import products from a CSV. Some shops do this weekly.

  • The two files have different columns, so you rework the sheet every time.
  • An import overwrites counts, so any sale between the export and the import is lost.
  • It's good for the first upload of products, not for day-to-day stock.

Option 3: switch one side

Wix POS shares stock with your Wix store out of the box, and Square Online shares stock with Square. Both work, but each means giving up the tool you're already using.

Option 4: an app that syncs as sales happen

This is the only option that keeps both tools and stops overselling, but only if it's built the right way. When you compare apps, check these:

  1. Both directions. An online order must lower the Square count, not only the other way round.
  2. Changes, not overwrites. This is the subtle one, see below.
  3. A safety check. Webhooks occasionally arrive late or not at all. A regular comparison of both sides catches what slipped through.
  4. SKU matching. Items should link automatically when the SKU is the same, and duplicate SKUs should be flagged rather than guessed.
  5. One chosen location. The online store should follow one Square location, and sales at your other locations shouldn't touch it.

Why "changes, not overwrites" matters

The obvious way to sync is to copy the number: Square says 7, so set Wix to 7. It works in a demo and fails on a real Saturday.

Say a shirt has 10 in stock on both sides. At the same moment, someone buys 2 at the counter and someone buys 1 online. Square now says 8 and Wix says 9. An overwrite sync copies whichever change it hears about last, so both sides end up at 8 or both at 9. One of the two sales has disappeared, and you're now overselling by one.

The fix is to sync the change instead of the number. Square went down by 2, so take 2 off Wix. Wix went down by 1, so take 1 off Square. Both sides end at 7, which is right.

That needs a bit of bookkeeping: remember the last count you saw on each side, and the writes you made yourself, so your own update isn't mirrored back as a new sale. Add a check every few minutes that compares both sides, and the rare missed webhook gets repaired too.

What I built

Full disclosure: after seeing a lot of "Wix and Square inventory sync?" threads, I built a Wix app for exactly this, Inventory Sync for Square. It follows the checklist above:

  • two-way stock sync within seconds, sent as changes, so simultaneous sales both count
  • automatic linking by SKU, with duplicates listed
  • a safety check every 15 minutes, and an activity log of every change
  • one chosen Square location, any Square country and currency (yen and three-decimal currencies included)
  • Pro adds price sync in the direction you choose and imports Square items as Wix products

The Free plan syncs up to 25 items. It's on the Wix App Market: https://go.kayabyte.dev/square?s=dv-square

A longer, non-technical version of this guide, with an FAQ, is here: https://go.kayabyte.dev/square/guide?s=dv-square

Questions about the sync logic, or Square/Wix API quirks, are welcome in the comments.

Top comments (0)