Why Your WooCommerce Orders Are Not Syncing to Salesforce
You set up the integration. You mapped the fields. You tested it once and it worked. But now, when a customer places an order in WooCommerce, nothing shows up in Salesforce. The order is stuck in your store, and your sales team is working with outdated data.
This is one of the most frustrating issues for WooCommerce store owners who rely on Salesforce CRM to manage leads, opportunities, and customer relationships. A broken sync means manual data entry, missed follow-ups, and lost revenue.
The good news? Most sync failures have a clear cause and a straightforward fix. In this guide, I’ll walk you through the seven most common reasons WooCommerce orders stop syncing to Salesforce—and exactly how to fix each one.
If you’re using NexaForce, our WooCommerce-Salesforce integration plugin, many of these fixes apply directly. But even if you’re using another tool, the underlying principles are the same.
Immersa Builder | The Ultimate Guided WordPress Theme with Built-In AI Content Tools
Immersa Builder is the most guided WordPress starter theme designed to get your website live in minutes, not weeks. Featuring a foolproof 9-step setup wizard, professionally crafted starter sites, and…
Fix #1: OAuth Token Expired or Revoked
Salesforce uses OAuth 2.0 for authentication. Unlike a simple username and password, OAuth tokens have an expiration period—typically between 1 hour and 24 hours for access tokens, and up to 30 days for refresh tokens. When the token expires, your plugin can no longer communicate with Salesforce.
How to check: Log into your WordPress admin and navigate to your Salesforce integration settings. Look for a “Reconnect” or “Authorize Again” button. If you see an error like “invalid_grant” or “expired access/refresh token,” that’s your culprit.
How to fix: Re-authorize the connection. In NexaForce, go to Settings > Salesforce Connection and click “Reconnect to Salesforce.” You’ll be redirected to Salesforce to approve the connection again. Once done, the plugin gets a fresh set of tokens.
Pro tip: NexaForce uses secure OAuth 2.0 and automatically refreshes tokens when possible. But if you’ve changed your Salesforce password or revoked app permissions, you’ll need to reconnect manually.
Fix #2: Field Mapping Mismatch After Salesforce Update
Salesforce rolls out updates three times a year (Spring, Summer, Winter releases). Sometimes these updates introduce new field types, deprecate old ones, or change API behavior. If your field mapping references a field that no longer exists or has a new API name, the sync fails silently.
How to check: In NexaForce, open your Visual Feed Builder and inspect each mapped field. Look for red indicators or warning icons next to any field. Salesforce will often return an error like “No such column ‘CustomField__c’ on entity ‘Opportunity’.”
How to fix: Remap the affected fields. Delete the broken mapping and re-select the correct Salesforce field from the dropdown. If the field was removed entirely, choose an alternative field or create a new custom field in Salesforce.
Pro tip: Keep a changelog of your Salesforce field customizations. When Salesforce announces an update, review your mappings before the release date.
Fix #3: Conditional Logic Blocking the Sync
Most advanced integration plugins—including NexaForce—let you set conditional rules. For example, you might only sync orders over $100, or only sync orders with a specific payment gateway. If your order doesn’t meet the criteria, it won’t sync.
How to check: Review your feed configuration in NexaForce. Go to Feeds > Select your feed > Conditional Filters. Look for any “AND” or “OR” rules that might be excluding your order.
How to fix: Adjust the conditions. If you want to sync all orders, remove the conditional filters entirely. If you need some filtering, make sure the logic is correct. For example, if you set “Order Total > $100 AND Payment Gateway = Stripe,” only orders that meet both conditions will sync.
Pro tip: Test with a simple order first. Create a test order that clearly meets your criteria. If it syncs, the issue is with your conditions. If not, move to the next fix.
Fix #4: WooCommerce HPOS Conflict
WooCommerce introduced High-Performance Order Storage (HPOS) in version 8.0. This changes how order data is stored—from WordPress custom post types to dedicated database tables. Some older plugins and custom code still use the legacy post type structure, causing sync failures.
How to check: Go to WooCommerce > Settings > Advanced > Features. Check if “High-Performance Order Storage” is enabled. Then check your Salesforce plugin’s documentation or settings for HPOS compatibility.
How to fix: If your plugin doesn’t support HPOS, you have two options: disable HPOS (go to WooCommerce > Settings > Advanced > Features and switch back to legacy storage) or update to a plugin that supports HPOS. NexaForce is fully compatible with WooCommerce HPOS, so you won’t have this issue.
Pro tip: If you’re running custom code that hooks into WooCommerce order data, make sure it uses the new HPOS-compatible functions like wc_get_orders() instead of get_posts().
Fix #5: Webhook or CRON Job Not Running
Most sync plugins rely on WordPress CRON or webhooks to trigger the sync. If your CRON jobs are not running—common on low-traffic sites or misconfigured hosting—the sync never fires.
How to check: Install a plugin like WP Crontrol. Check if your Salesforce sync jobs are scheduled and when they last ran. Alternatively, place a test order and immediately check your server’s error logs or the plugin’s sync log.
How to fix: If CRON is the issue, set up a real server CRON job. In your hosting control panel (cPanel, Plesk, or server terminal), add a CRON job that runs wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron every 5 minutes. This replaces the unreliable WordPress CRON with a server-level trigger.
Pro tip: In NexaForce, you can enable real-time sync, which triggers immediately on order creation rather than waiting for CRON. Check Settings > Sync Triggers > Real-Time Mode.
Fix #6: API Rate Limits or Quota Exhaustion
Salesforce has API request limits based on your edition. Developer Edition: 15,000 requests per 24 hours. Enterprise Edition: 100,000 requests per 24 hours. If you’re bulk syncing thousands of historical orders or have multiple integrations hitting the same API, you can exhaust your daily quota.
How to check: Log into Salesforce Setup. Go to Administration > API Usage. You’ll see your daily API requests and remaining limit. If you’re near or at the limit, that’s why new orders aren’t syncing.
How to fix: Reduce unnecessary API calls. In NexaForce, you can use date range filtering for bulk syncs—only sync orders from the last 30 days instead of all historical data. Also, disable any unused integrations or apps that consume API calls.
Pro tip: If you consistently hit limits, consider upgrading your Salesforce edition or using NexaForce’s batch processing, which groups multiple records into fewer API calls.
Fix #7: Plugin or Theme Conflict
Sometimes another plugin or your theme interferes with the sync process. This is especially common with caching plugins, security plugins, or custom functions that modify WooCommerce order data.
How to check: Temporarily disable all other plugins except WooCommerce and your Salesforce integration plugin. Switch to a default WordPress theme like Twenty Twenty-Four. Place a test order. If the sync works, the conflict is with one of the disabled plugins or your theme.
How to fix: Re-enable plugins one by one, testing after each. When the sync breaks again, you’ve found the culprit. Contact that plugin’s developer for a fix, or look for a workaround. Common conflicts include:
- W3 Total Cache or WP Rocket (cached order data)
- Wordfence or Sucuri (blocking API calls)
- Custom order status plugins (unrecognized statuses)
Pro tip: If you can’t identify the conflict, check NexaForce’s sync log (NexaForce > Logs) for specific error messages. The log often points directly to the conflicting code.
Preventive Measures: Keep Your Sync Running Smoothly
Once you’ve fixed the issue, here’s how to prevent it from happening again:
- Monitor API usage weekly in Salesforce Setup.
- Set up sync alerts in NexaForce to email you when a sync fails.
- Test after every WooCommerce or Salesforce update—even minor patches.
- Use NexaForce’s bulk sync to periodically re-sync any orders that might have been missed during downtime.
- Keep a staging environment where you test updates before pushing to production.
When to Upgrade: NexaForce Pro vs Free
If you’re using a basic or free integration plugin, you might be hitting limitations that cause sync failures. NexaForce Pro gives you:
- Real-time sync—no CRON delays
- Visual drag-and-drop feed builder—no coding required
- Conditional filtering—sync only what matters
- Bulk sync with date ranges—catch up on missed orders
- Multi-currency support—works with any currency
- Opportunity creation from orders
- Priority support—get help fast
At $159/year (down from $399), it’s a fraction of what you’d pay for Zapier ($20–$100/mo) or WP Fusion ($247/yr). And because it’s self-hosted, your data stays on your server.
Still Stuck? Get Direct Help
If you’ve gone through all seven fixes and your WooCommerce orders still aren’t syncing to Salesforce, don’t waste another hour debugging. Contact our support team with your sync logs, and we’ll help you pinpoint the issue. NexaForce Pro customers get priority support with same-day responses.
Or, if you’re evaluating solutions, try NexaForce free and see how smooth WooCommerce-Salesforce integration can be.



