Docs
Real-Time Syncing Not Working

Real-Time Syncing Not Working

Troubleshoot real-time sync issues between Square and WooCommerce.

If changes in Square aren't reflecting in WooCommerce immediately (or vice versa), follow this guide to diagnose and fix real-time sync issues.

Symptoms

  • Changes in Square not appearing in WooCommerce
  • Delayed updates (minutes or hours)
  • Sync works manually but not automatically
  • Missing webhook notifications

Common Causes

1. WP-Cron Issues

The most common cause of delayed syncing is WP-Cron not running reliably.

Why it matters: Webhook data is queued and processed by WP-Cron. If cron isn't firing, the queue doesn't process.

Solution: Set up a server-side cron job for consistent execution.

Server-Side Cron Setup Guide

2. Webhook Not Configured

Square webhooks may not be properly configured or active.

How to check:

  1. Log in to Square Developer Dashboard
  2. Go to your application
  3. Navigate to Webhooks
  4. Verify your site's webhook URL is listed
  5. Check webhook is enabled for relevant events

Common webhook events needed:

  • catalog.version.updated
  • inventory.count.updated
  • customer.created / customer.updated
  • order.created / order.updated

3. Queue Backlog

A large queue can delay real-time updates.

Symptoms:

  • Updates eventually appear, just delayed
  • Queue shows many pending items
  • Server under load

Solution: Enable performance settings to manage the backlog.

Performance Settings Guide

4. SSL Certificate Issues

Square requires valid SSL for webhook delivery.

How to check:

  • Visit your site with https://
  • Look for certificate warnings
  • Use an SSL checker tool online

Solutions:

  • Renew expired SSL certificate
  • Fix mixed content issues
  • Ensure certificate chain is complete

5. Firewall Blocking Square

Your firewall or security plugin may be blocking Square's webhook requests.

Common blockers:

  • Web Application Firewalls (WAF)
  • Security plugins (Wordfence, Sucuri, etc.)
  • Server-level firewalls
  • Rate limiting rules

Solutions:

  • Whitelist Square's IP addresses
  • Add exception for webhook endpoint
  • Check security plugin logs for blocked requests

6. Site Not Publicly Accessible

Webhooks can't reach localhost or private networks.

Requirements:

  • Site must be publicly accessible
  • Valid domain name (not localhost)
  • No basic authentication blocking access

Step-by-Step Diagnosis

Step 1: Verify Webhook Configuration

  1. Go to Square Developer Dashboard
  2. Open your application
  3. Check Webhooks section
  4. Verify URL matches your site
  5. Check recent delivery attempts

Step 2: Check Webhook Deliveries

In Square Developer Dashboard:

  1. Go to Webhooks > Subscription
  2. Click on recent events
  3. Look for delivery status (success/failed)
  4. Check response codes
CodeMeaningAction
200SuccessWebhook received
401UnauthorizedCheck authentication
403ForbiddenCheck firewall/security
404Not FoundVerify webhook URL
500Server ErrorCheck PHP error logs
TimeoutNo ResponseServer too slow

Step 3: Test WP-Cron

  1. Make a change in Square
  2. Check if item appears in SWS Pro queue
  3. Wait 1-2 minutes
  4. Check if item was processed

If items queue but don't process, WP-Cron is the issue.

Step 4: Review Sync Logs

  1. Go to SWS Pro > Logs
  2. Look for webhook receipt entries
  3. Check for processing errors
  4. Note any patterns

Quick Fixes

Temporarily Test Without Security

Briefly disable security plugins to test if they're blocking webhooks:

  1. Disable Wordfence/Sucuri/etc.
  2. Make a change in Square
  3. Check if it syncs
  4. Re-enable security with appropriate exceptions

Force Refresh Connection

  1. Go to SWS Pro > Settings
  2. Disconnect from Square
  3. Reconnect to Square
  4. Re-save webhook settings

Manual Queue Processing

If WP-Cron is the issue:

https://yourdomain.com/wp-cron.php?doing_wp_cron

Visit this URL to manually trigger cron.

Prevention

  1. Set up server-side cron — Ensures reliable processing
  2. Whitelist Square IPs — Prevents blocking
  3. Monitor webhook status — Check Square Dashboard regularly
  4. Keep SSL valid — Renew before expiration

Still Having Issues?

If real-time sync still isn't working: