Skip to content

Product Sync

Product sync is the process of importing product catalog data from BigCommerce into WordPress®. Products are managed in BigCommerce (your source of truth) and automatically synced to WordPress® for display on your storefront.

Commerce Connect maintains a synced copy of your BigCommerce product catalog in WordPress®. This architecture gives you:

  • BigCommerce’s product management - Robust PIM, inventory management, variant handling
  • WordPress®‘s content flexibility - SEO optimization, custom fields, content integration
  • Real-time updates - Webhooks keep WordPress® in sync with BigCommerce changes
  • Scalable architecture - Handles catalogs from dozens to 50,000+ products

When you connect your BigCommerce store to WordPress®, Commerce Connect performs an initial product sync:

  1. Connect BigCommerce - Complete the plugin-guided signup flow
  2. Sync Products - Click “Sync Products” in Settings → Data
  3. Monitor Progress - Products sync from BigCommerce to WordPress®
  4. Register Webhooks - Manually register webhooks in Settings → Webhooks

The initial sync processes products in batches via a background cron job that runs every minute. Large catalogs (10,000+ products) may take 30+ minutes for initial sync.

After initial setup, product changes in BigCommerce automatically sync to WordPress® via webhooks:

  • Product created - New product appears in WordPress®
  • Product updated - Changes to price, description, images sync immediately
  • Product deleted - Product removed from WordPress®
  • Inventory changed - Stock levels update in real-time
  • Variant updated - Product options and variants sync automatically

After initial setup, you must manually register webhooks in Settings → Webhooks. Once registered, they work automatically to sync product changes in real-time.

Commerce Connect syncs the following product data from BigCommerce:

BigCommerce FieldWordPress® StorageUsage
Product NamePost TitleProduct title block, SEO
Product DescriptionPost ContentProduct description block
Product SKUPost MetaInventory, admin display
PricePost MetaProduct pricing block
Sale PricePost MetaProduct pricing block (strikethrough)
ImagesPost Meta (URLs)Product images block
CategoriesWordPress® TaxonomyCategory blocks, filtering
BrandsWordPress® TaxonomyFiltering, organization
VariantsPost MetaProduct options, variant selector
Inventory LevelPost MetaStock status display
WeightPost MetaShipping calculations
Custom FieldsPost MetaExtended product data

Product data is stored as WordPress® custom post type (product) with synced fields in post meta. This allows WordPress® SEO plugins (Yoast, Rank Math) to work with product pages while BigCommerce remains the source of truth.

Commerce Connect includes comprehensive resource monitoring to prevent sync failures on large catalogs.

The sync system monitors PHP memory usage during product processing:

  • 85% threshold - Stops processing when memory usage reaches 85% of memory_limit
  • Graceful degradation - Logs warning and stops cleanly before hitting fatal errors
  • Resume capability - Next cron execution picks up where sync left off

Tracks execution time to prevent WordPress® timeout issues:

  • 85% threshold - Stops processing at 85% of max_execution_time
  • WordPress® timer integration - Uses timer_stop(0) for accurate overhead tracking
  • Buffer for cleanup - Ensures time for logging and state updates

Prevents multiple sync jobs from running simultaneously:

  • Process lock - Skips execution if sync already running
  • Cron interval awareness - Monitors time until next cron execution
  • Configurable buffer - Default 10-second buffer before next execution

Tracks product processing times to predict if there’s time for another product:

  • Historical learning - Records processing duration for each product
  • Worst-case prediction - Uses maximum observed time for conservative estimates
  • Automatic decay - Resets maximum after 50 samples to prevent permanent outliers
  • O(1) performance - Constant-time operations for high-throughput catalogs

When sync failures occur (API errors, network issues, rate limiting), Commerce Connect implements exponential backoff to prevent cascading failures:

Failure #DelayTotal Time Since First Failure
1st60s (1 min)1 minute
2nd120s (2 min)3 minutes
3rd240s (4 min)7 minutes
4th480s (8 min)15 minutes
5th960s (16 min)31 minutes
6th1920s (32 min)63 minutes
7th+3600s (1 hour)Capped at 1 hour intervals
  • Successful sync - Immediately resets backoff state
  • Manual reset - Reconnect BigCommerce to force reset
  • Time expiration - Backoff expires after delay period

You can manually trigger a product sync from WordPress® admin:

  1. Navigate to Settings → Commerce Connect → Products
  2. Click Sync Products Now button
  3. Monitor progress in sync status indicator
  4. Check WordPress® debug log for detailed sync information

When you click Sync Products Now, Commerce Connect:

  • Fetches the latest product data from BigCommerce API
  • Processes products in batches via background cron
  • Updates WordPress® post data for changed products
  • Creates new products that don’t exist in WordPress®
  • Removes products deleted from BigCommerce

Manual sync is useful for:

  • Testing webhook functionality
  • Recovering from network issues
  • Forcing a full resync after bulk BigCommerce changes

For step-by-step sync instructions, see Verification Guide.

For programmatic sync options (WP-CLI, cron configuration), see CLI Commands.

Commerce Connect tracks sync progress using a sequence cursor:

  • Sequence ID - Each product event has a sequential ID
  • Last Processed Sequence - Stored in WordPress® options
  • Resume on Failure - Next sync picks up from last successful sequence
  • No Duplicate Processing - Events are processed exactly once

The cursor system ensures reliable sync even with large catalogs or intermittent failures.

Redis or Memcached significantly improves product lookup performance by caching WordPress® database queries. When object caching is active:

  • Faster product queries - Common product lookups served from memory instead of database
  • Reduced database load - Less pressure on MySQL during high traffic
  • Automatic cache invalidation - Cache clears when products sync from BigCommerce

WP Engine hosting includes built-in object caching. For other hosts, install a caching plugin like Redis Object Cache.

After bulk product changes in BigCommerce, you may want to flush the object cache to ensure fresh data displays immediately. See CLI Commands for cache management options.

WP Engine’s EFPC caches product pages for sub-second load times:

  • Automatic cache invalidation - Webhook sync clears cache for updated products
  • Anonymous user caching - Product pages cached for non-logged-in visitors
  • Configurable TTL - Default 1 hour cache lifetime

Commerce Connect creates custom indexes for fast product queries:

  • wpe_market_listings index on wp_postmeta for multi-market support
  • Standard WordPress® post indexes for product queries
  • Taxonomy term indexes for category/brand filtering

Commerce Connect includes automatic webhook health monitoring:

  • Daily health check - Scheduled via Action Scheduler
  • Failure detection - Monitors webhook delivery failures
  • Automatic re-registration - Re-registers webhooks if delivery fails
  • Status dashboard - View webhook health in Settings → Commerce Connect

If products stop syncing automatically, Commerce Connect provides several diagnostic tools:

Check webhook status in WordPress® admin:

  1. Navigate to Settings → Commerce Connect → Connection
  2. View webhook health status indicator
  3. Check “Last Webhook Received” timestamp
  4. Review any error messages displayed

Verify scheduled jobs:

  • Go to Tools → Action Scheduler in WordPress® admin
  • Look for commerce_connect_webhook_health_check in the list
  • Check for failures in the “Complete” tab

If webhooks appear unhealthy, you can re-register them by disconnecting and reconnecting your BigCommerce store in Settings → Commerce Connect.

For programmatic webhook diagnostics and management, see CLI Commands.

Configure product sync behavior in Settings → Commerce Connect → Products:

  • Products per page - Default result count for product listings
  • Products per row - Grid column layout (desktop)
  • Currency display - Symbol, code, or spelled out
  • Default ordering - Newest, price, name, etc.

These are global defaults that can be overridden per-block in the Site Editor.

Products must be assigned to a channel in BigCommerce to sync to WordPress®:

  1. Open BigCommerce admin → Channel Manager
  2. Find your WordPress® channel (created during connection)
  3. Assign products to this channel
  4. Wait for webhook sync (or trigger manual sync)

Only products assigned to the WordPress® channel will appear in WordPress®.

  • No automatic sync - requires BigCommerce connection first
  • BigCommerce channel created
  • Initial product sync triggered
  • Cron job scheduled for ongoing sync
  • Manual webhook registration required (Settings → Webhooks)
  • Webhooks deregistered
  • Synced products removed from WordPress®
  • Sync cursor reset
  • Webhooks disabled (paused) on BigCommerce
  • Product data preserved in WordPress®
  • Sync cron unscheduled
  • Webhooks deregistered from BigCommerce
  • Product data deletion is opt-in (off by default)
  • Settings and sync state removed

See for complete cleanup details.

You can monitor sync progress and statistics in WordPress® admin:

  1. Navigate to Settings → Commerce Connect → Products
  2. View sync statistics dashboard showing:
    • Total products synced
    • Categories synced
    • Last successful sync timestamp
    • Current sync status (idle, syncing, failed)
  3. Check sync history for recent activity

The sync status indicator updates in real-time during active syncs, showing progress through your product catalog.

Enable WordPress® debug logging to see detailed sync information:

// In wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

When debug logging is enabled, Commerce Connect writes detailed sync events to wp-content/debug.log:

  • Each product processed (ID, sequence, duration)
  • Resource monitor warnings (memory, execution time)
  • Backoff triggers and recovery
  • API errors and retry attempts

You can view the debug log via SFTP or your hosting control panel’s file manager.

For programmatic log monitoring and sync diagnostics, see CLI Commands.

The resource monitor logs detailed usage metrics when backing off:

Product sync backing off due to resource limits
- Memory usage: 428MB / 512MB (83.6%)
- Execution time: 42s / 60s (70%)
- Time until next cron: 8s
- Products synced this execution: 127
- Last sequence ID: 5429
    • Webhook implementation details
    • What happens on deactivate/uninstall
  • Troubleshooting Sync Issues - Common sync problems and solutions
  • Performance Optimization - Speed up your storefront