Hire Shelby free →

How to sync inventory between Square and WooCommerce

You sold it in the store; the website still says in stock. Here are the three ways merchants actually solve this in 2026 - and where each one breaks.

Why this is harder than it looks

Square and WooCommerce disagree about what a product is. Square thinks in catalog objects per location; WooCommerce thinks in products and variations with a single stock number. Any sync has to translate between them, decide who wins when they disagree, and survive the moments webhooks silently fail. Most "sync problems" are really reconciliation problems: nothing catches the drift after the first missed event.

Option 1: the official WooCommerce–Square plugin

Free, made by Woo/Square, and fine for one store with simple products. You pick a system of record and it mirrors stock across.

Option 2: middleware (Zapier, Make, custom scripts)

Event-glue tools can push "order created" events between platforms. They demo well and decay quietly: no state, no reconciliation, and per-task pricing that punishes busy stores. When a zap fails at 2 PM Saturday, your counts diverge and nothing notices.

Option 3: a unified inventory ledger

The approach multi-location retailers converge on: stop mirroring numbers between systems and give every unit one home. Each sale, refund, recount, and transfer — from every channel — is a row in one append-only ledger. The ledger's total is the truth, and corrected counts push back out to Square and WooCommerce.

Which should you pick?

Official pluginMiddlewareUnified ledger
Multi-locationNoPainfulYes
Catches driftNoNoYes (scheduled reconcile)
Variable products (sizes/colors)FragileDIYPer-variation
CostFreePer taskSubscription
Shelby does this out of the box.

One ledger across Square, WooCommerce, and Shopify. An assistant that acts. A phone that answers itself. First month free with code FIRSTMONTH.

Hire Shelby free

More guides: WooCommerce with multiple locations · AI assistants for retail stores · AI phone answering for boutiques