Skip to content

Stock sync

Keep Square and WooCommerce inventory aligned when product SKUs match. Paid WooCommerce orders can still reduce Square stock via catalog-linked line items on Free. Location-linked push and Square → Woo webhooks are Premium (Plus / Pro).

Which plan?

Direction Plan Flow
Catalog-linked line items on Hosted Checkout Free Matching SKU on the payment link → Square lowers stock when the buyer pays
Woo → Square (location stock push) Plus+ When WooCommerce stock changes, the plugin writes a physical count to your selected Square location
Square → Woo (inventory webhook) Pro POS / Square stock changes update matching Woo products for that location

→ Premium features overview

Two directions

WooCommerce → Square (on paid orders)

When a paid WooCommerce order is confirmed:

  1. WooCommerce reduces its own stock (normal behavior).
  2. If the product SKU matches an item in your Square catalog, the payment link includes the Square catalog item so Square inventory is reduced when payment completes.

WooCommerce → Square (location stock — Plus)

  1. Choose the Square location under Connect / stock settings.
  2. When Woo stock changes for a SKU-matched product, the plugin pushes inventory to that location.
  3. Use this when WooCommerce is the source of truth for online stock and Square POS should stay in sync at one location.

Square → WooCommerce (webhook — Pro)

When inventory changes in Square (POS sale, manual stock edit, transfer, etc.):

  1. Square sends an inventory.count.updated webhook to your site.
  2. The plugin looks up the catalog item SKU and finds the matching WooCommerce product.
  3. WooCommerce stock is updated for your selected Square location.

Enable Inventory sync (Square → WooCommerce) on Payments Square Connect → Connect (requires Pro).

WooCommerce checkout — paid orders can trigger Square inventory updates when SKUs match

Setup (Square → WooCommerce)

  1. Go to Payments Square Connect → Connect.
  2. Copy the Webhook URL.
  3. Open the Square Developer Dashboard → your application → Webhooks.
  4. Add the webhook URL and subscribe to:
  5. payment.updated (refunds / payment IDs)
  6. inventory.count.updated (stock sync)
  7. Reconnect Square on the Connect screen so the token includes INVENTORY_READ.

→ Webhook setup

Best practice

Use the same SKU on WooCommerce products (or variations) and Square catalog item variations.

No matching SKU?

Checkout still works — line items use product name and price. Only SKU-matched products sync inventory.

Not a full catalog sync

This plugin does not import your full Square catalog into WooCommerce. It only syncs stock for matching SKUs:

  • Paid WooCommerce orders → Square inventory down (catalog-linked line items)
  • Square inventory webhooks → WooCommerce stock updated

If you need full bidirectional catalog mirroring, consider whether hosted checkout or heavy sync fits your store better. See the comparison on the home page and WooCommerce guide.

Troubleshooting

Symptom Fix
WooCommerce stock not updating from Square Enable inventory sync on Connect; add inventory.count.updated webhook; reconnect Square for INVENTORY_READ
Wrong quantity Confirm SKUs match exactly; check the selected Square location
Square stock not updating on web orders Confirm SKU exists in Square catalog and payment link used catalog item

Enable Debug Log on Connect and check WooCommerce → Status → Logs (source shc4wc).