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.
Overview
Section titled “Overview”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
How Product Sync Works
Section titled “How Product Sync Works”Initial Sync
Section titled “Initial Sync”When you connect your BigCommerce store to WordPress®, Commerce Connect performs an initial product sync:
- Connect BigCommerce - Complete the plugin-guided signup flow
- Sync Products - Click “Sync Products” in Settings → Data
- Monitor Progress - Products sync from BigCommerce to WordPress®
- 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.
Real-Time Sync (Webhooks)
Section titled “Real-Time Sync (Webhooks)”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.
What Gets Synced
Section titled “What Gets Synced”Commerce Connect syncs the following product data from BigCommerce:
| BigCommerce Field | WordPress® Storage | Usage |
|---|---|---|
| Product Name | Post Title | Product title block, SEO |
| Product Description | Post Content | Product description block |
| Product SKU | Post Meta | Inventory, admin display |
| Price | Post Meta | Product pricing block |
| Sale Price | Post Meta | Product pricing block (strikethrough) |
| Images | Post Meta (URLs) | Product images block |
| Categories | WordPress® Taxonomy | Category blocks, filtering |
| Brands | WordPress® Taxonomy | Filtering, organization |
| Variants | Post Meta | Product options, variant selector |
| Inventory Level | Post Meta | Stock status display |
| Weight | Post Meta | Shipping calculations |
| Custom Fields | Post Meta | Extended 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.
Resource Monitoring
Section titled “Resource Monitoring”Commerce Connect includes comprehensive resource monitoring to prevent sync failures on large catalogs.
Memory Protection
Section titled “Memory Protection”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
Execution Time Protection
Section titled “Execution Time Protection”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
Cron Overlap Prevention
Section titled “Cron Overlap Prevention”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
Product Timing Prediction
Section titled “Product Timing Prediction”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
Exponential Backoff (Failure Recovery)
Section titled “Exponential Backoff (Failure Recovery)”When sync failures occur (API errors, network issues, rate limiting), Commerce Connect implements exponential backoff to prevent cascading failures:
Backoff Progression
Section titled “Backoff Progression”| Failure # | Delay | Total Time Since First Failure |
|---|---|---|
| 1st | 60s (1 min) | 1 minute |
| 2nd | 120s (2 min) | 3 minutes |
| 3rd | 240s (4 min) | 7 minutes |
| 4th | 480s (8 min) | 15 minutes |
| 5th | 960s (16 min) | 31 minutes |
| 6th | 1920s (32 min) | 63 minutes |
| 7th+ | 3600s (1 hour) | Capped at 1 hour intervals |
Reset Conditions
Section titled “Reset Conditions”- Successful sync - Immediately resets backoff state
- Manual reset - Reconnect BigCommerce to force reset
- Time expiration - Backoff expires after delay period
Manual Sync
Section titled “Manual Sync”You can manually trigger a product sync from WordPress® admin:
- Navigate to Settings → Commerce Connect → Products
- Click Sync Products Now button
- Monitor progress in sync status indicator
- 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.
Sync Cursor & State
Section titled “Sync Cursor & State”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.
Performance Optimization
Section titled “Performance Optimization”Object Cache
Section titled “Object Cache”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.
Edge Full Page Cache (EFPC)
Section titled “Edge Full Page Cache (EFPC)”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
Database Indexes
Section titled “Database Indexes”Commerce Connect creates custom indexes for fast product queries:
wpe_market_listingsindex onwp_postmetafor multi-market support- Standard WordPress® post indexes for product queries
- Taxonomy term indexes for category/brand filtering
Webhook Health Monitoring
Section titled “Webhook Health Monitoring”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
Webhook Troubleshooting
Section titled “Webhook Troubleshooting”If products stop syncing automatically, Commerce Connect provides several diagnostic tools:
Check webhook status in WordPress® admin:
- Navigate to Settings → Commerce Connect → Connection
- View webhook health status indicator
- Check “Last Webhook Received” timestamp
- Review any error messages displayed
Verify scheduled jobs:
- Go to Tools → Action Scheduler in WordPress® admin
- Look for
commerce_connect_webhook_health_checkin 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.
Sync Configuration
Section titled “Sync Configuration”Global Settings
Section titled “Global Settings”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.
Channel Assignment
Section titled “Channel Assignment”Products must be assigned to a channel in BigCommerce to sync to WordPress®:
- Open BigCommerce admin → Channel Manager
- Find your WordPress® channel (created during connection)
- Assign products to this channel
- Wait for webhook sync (or trigger manual sync)
Only products assigned to the WordPress® channel will appear in WordPress®.
Sync Lifecycle
Section titled “Sync Lifecycle”On Plugin Activation
Section titled “On Plugin Activation”- No automatic sync - requires BigCommerce connection first
On BigCommerce Connection
Section titled “On BigCommerce Connection”- BigCommerce channel created
- Initial product sync triggered
- Cron job scheduled for ongoing sync
- Manual webhook registration required (Settings → Webhooks)
On BigCommerce Disconnection
Section titled “On BigCommerce Disconnection”- Webhooks deregistered
- Synced products removed from WordPress®
- Sync cursor reset
On Plugin Deactivation
Section titled “On Plugin Deactivation”- Webhooks disabled (paused) on BigCommerce
- Product data preserved in WordPress®
- Sync cron unscheduled
On Plugin Uninstall
Section titled “On Plugin Uninstall”- Webhooks deregistered from BigCommerce
- Product data deletion is opt-in (off by default)
- Settings and sync state removed
See for complete cleanup details.
Monitoring & Diagnostics
Section titled “Monitoring & Diagnostics”Check Sync Status
Section titled “Check Sync Status”You can monitor sync progress and statistics in WordPress® admin:
- Navigate to Settings → Commerce Connect → Products
- View sync statistics dashboard showing:
- Total products synced
- Categories synced
- Last successful sync timestamp
- Current sync status (idle, syncing, failed)
- Check sync history for recent activity
The sync status indicator updates in real-time during active syncs, showing progress through your product catalog.
Debug Sync Issues
Section titled “Debug Sync Issues”Enable WordPress® debug logging to see detailed sync information:
// In wp-config.phpdefine('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.
Resource Usage Reporting
Section titled “Resource Usage Reporting”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: 5429Related Documentation
Section titled “Related Documentation”-
- Webhook implementation details
-
- What happens on deactivate/uninstall
- Troubleshooting Sync Issues - Common sync problems and solutions
- Performance Optimization - Speed up your storefront