When Square and WooCommerce stop agreeing, the cause is almost always one of a short list. This guide goes through them in the order they are worth checking. Most apply to any sync tool, including the official WooCommerce Square extension; where StockEven behaves differently, it is noted.
Check these first
- Does it affect one product or all products? One product points to SKUs, tracking or exclusion (causes 1–4). All products point to the connection, background jobs or the server (causes 5–7).
- Does it fail in one direction only? Square-to-WooCommerce problems are often blocked requests (cause 6); WooCommerce-to-Square problems are often stalled background jobs (cause 5).
- Did it stop at a specific time? Think of what changed then: a plugin update, a new security or caching plugin, a password change in Square.
1. Missing, different or duplicate SKUs
Sync tools match products by SKU. A product without a SKU is ignored; a SKU that differs by a character ("CANDLE-01" against "CANDLE01") is a different product; a SKU used on two items makes the match ambiguous.
Fix: give each product and each variation a unique SKU, identical in both systems. In Square, check the item variations, not only the item. StockEven ignores letter case and spaces around the SKU, and lists duplicates under Can't sync with the item names.
2. Stock tracking switched off
If WooCommerce doesn't track stock for a product, there is no number to sync. For variable products, stock can be tracked on the parent product instead of each variation, which breaks per-variation sync.
Fix: in WooCommerce, open the product, go to Inventory and tick Manage stock; for variations, open each variation and tick Manage stock?. In Square, turn on stock tracking for each item variation.
3. The wrong Square location
Square keeps stock per location. If the sync reads the warehouse location while the shop counter sells from another, the numbers will never match what staff see on the POS.
Fix: check which location the sync tool uses and compare it with the location selected on the POS. In StockEven it is under the gear menu → Square location.
4. The product is excluded from sync
The official extension syncs only products with Sync with Square ticked. A product added later, or duplicated from another, may have it unticked.
Fix: open the product in WooCommerce and tick Sync with Square. In StockEven, new products appear after Match products again from the gear menu.
5. Background jobs not running
WooCommerce runs syncs as background jobs through Action Scheduler, which is triggered by WP-Cron. If WP-Cron is disabled without a real server cron, or the site gets few visits, jobs pile up and nothing is sent.
Fix: open WooCommerce → Status → Scheduled Actions and look at the Pending and Failed tabs. Many old pending actions mean the scheduler is not running: set up a server cron job that calls wp-cron.php every few minutes, or ask the host to. Failed actions show an error message that usually names the problem.
6. Caching, CDN or security plugins blocking requests
Some tools push changes into WordPress as incoming requests (StockEven does); others ask Square for changes from the site. Page caching, a CDN rule, a firewall or a security plugin can block or cache incoming requests, and some hosts restrict outgoing ones. Reviews of the official extension mention having to adjust WP Rocket and Cloudflare settings.
Fix: exclude the WordPress REST API (/wp-json/) and the sync plugin's endpoints from page caching, and allow them through the firewall. Check the security plugin's log for blocked requests around the time a change went missing. Outgoing HTTPS connections from the server must also be allowed.
7. The Square connection expired or was removed
The link to Square is an authorization that can be revoked in the Square Dashboard, expire, or break after the Square account owner changes. When that happens, every sync fails at once.
Fix: reconnect Square in the plugin's settings. In StockEven, the WordPress top bar shows Sync paused and a Reconnect Square button; changes made in the meantime are queued and delivered after reconnecting.
8. Two tools syncing the same stock
Running the official extension's inventory sync and another sync tool at the same time makes every change happen twice: a sale lowers the stock by two, or the tools overwrite each other in turns.
Fix: let one tool own stock. With StockEven next to the official extension, turn off Sync inventory between WooCommerce and Square in the extension's sync settings and keep it for payments.
9. A system of record overwriting numbers
With a system of record, one side wins every sync. If Square is the system of record and someone corrects stock in WooCommerce, the next check puts Square's number back. WooCommerce's documentation notes exactly this for manual quantities.
Fix: make stock corrections only in the system of record, or switch to a two-way tool. StockEven sends each correction as a change, so a recount on either side is kept and copied across.
10. Stock changed outside WooCommerce
Imports that write straight to the database, some bulk-edit plugins and custom scripts change stock without WooCommerce noticing, so no sync is triggered.
Fix: use WooCommerce's own importer or tools that go through WooCommerce. StockEven's hourly comparison catches these and corrects them from the side chosen for each product.
StockEven lists products that can't sync with the reason and the fix. Free up to 50 products.