If contacts or orders are not syncing between WooCommerce and Mautic, work through the issues below to identify and fix the problem. Start from the top of the list, as the most common causes are listed first.
Module Not Enabled
Symptom: No data is syncing to Mautic at all, even though the connection test passes.
Solution: Each sync feature is controlled by its own module, and modules must be enabled individually. Go to WooCommerce > Mautic Integration and check the relevant tab:
- For contact sync, open the Contact Sync tab and make sure the module is turned on.
- For order sync, open the Order Sync tab and make sure the module is turned on.
- For abandoned cart sync, open the Abandoned Cart tab and make sure the module is turned on.
Remember that the Authentication module must be connected and working before any other module can sync data.
Mautic Custom Fields Not Created
Symptom: The connection is working and the module is enabled, but specific data like order details, lifetime value, or cart data is not appearing on Mautic contacts.
Solution: The plugin writes data to 6 custom fields in Mautic. If these fields do not exist in your Mautic instance, the API will silently ignore the data. You need to create the following fields manually in Mautic under Settings > Custom Fields:
mautic_woo_order_data(Text)mautic_woo_cart_data(Text)mautic_woo_recovery_url(URL)mautic_woo_total_spent(Number)mautic_woo_order_count(Number)mautic_woo_coupon_code(Text)
See the Mautic Fields section of this documentation for complete details on each field, including the correct alias and type.
WP-Cron Not Firing
Symptom: Bulk sync jobs are stuck, abandoned cart detection is not running, or scheduled tasks appear to never execute.
Solution: WordPress cron (WP-Cron) only runs when someone visits your site. On low-traffic sites, this means scheduled tasks can be delayed by hours or even days.
To ensure WP-Cron runs reliably, set up a real server cron job that hits your site’s wp-cron.php endpoint at regular intervals. Here is how:
- Add the following line to your
wp-config.phpfile to disable the default visitor-triggered cron:define( 'DISABLE_WP_CRON', true ); - Set up a system cron job (via your hosting control panel or SSH) to call WP-Cron every 5 minutes. The command looks like this:
*/5 * * * * wget -q -O /dev/null https://yoursite.com/wp-cron.php
Most hosting providers offer a cron job scheduler in their control panel. If you are unsure how to set this up, contact your hosting provider for assistance.
Order Sync Only Fires on Specific Statuses
Symptom: Some orders are syncing but others are not. New orders or processing orders do not appear in Mautic.
Solution: By default, the Order Sync module only triggers when an order reaches the Completed or Refunded status. Orders that are still in Processing, On Hold, or Pending Payment will not be synced until their status changes to one of the tracked statuses.
This is by design, because syncing incomplete orders could send inaccurate data to Mautic. If you need to track additional order statuses, check the Order Sync tab for available settings.
Contact Sync Requires a Registration Event
Symptom: The Contact Sync module is enabled, but existing customers are not appearing in Mautic.
Solution: The automatic contact sync triggers when a new customer registers an account on your store or when a customer updates their profile. It does not retroactively sync all existing customers.
To sync existing customers, use the Bulk Sync feature on the Contact Sync tab. This queues all existing customers and processes them in batches via WP-Cron.
Bulk Sync Appears Stuck
Symptom: You started a bulk sync but the progress bar has not moved, or it has been running for a very long time.
Solution: Bulk sync processes records in batches using WP-Cron. If WP-Cron is not running reliably, the batches will not be processed. See the WP-Cron Not Firing section above for how to set up a proper server cron job.
You can also check the progress and look for errors in two places:
- Sync Log – Go to WooCommerce > Mautic Integration > Tools and check the Sync Log for error messages on individual records.
- Debug Logs – Go to WooCommerce > Status > Logs and look for files with the source mautic-integration-woocommerce. With Debug Mode enabled, you will see detailed information about each batch as it processes.
Checking the Sync Log for Errors
The Sync Log is the fastest way to identify why a specific contact or order failed to sync. To access it:
- Go to WooCommerce > Mautic Integration > Tools.
- Look at the Sync Log section.
- Each entry shows the object type (contact or order), the sync status (success or failure), and any error message returned by the Mautic API.
Common error messages you may see in the sync log include:
- “Field does not exist” – A required custom field is missing in Mautic. See the Mautic Custom Fields Not Created section above.
- “Duplicate contact” – Mautic already has a contact with the same email and rejected the update. Check your Mautic duplicate handling settings.
- “401 Unauthorized” – The authentication credentials are invalid or expired. Re-check your connection settings.
- “429 Too Many Requests” – You have hit the Mautic API rate limit. The plugin will retry on the next cron run. If this happens frequently, consider increasing the batch interval or reducing the batch size.