WooCommerce sync explained
Last updated: May 19, 2026
WooCommerce sync explained
WooCommerce data syncs to Wevion via REST API polling every 15 minutes + optional real-time webhooks. The Customer Data Model (CDM) normalizes customer fields across WooCommerce installations that use different themes / plugins. Health check runs hourly to detect connection issues.
Who is this for
Mediabuyers running WooCommerce stores trying to understand:
When data appears in Wevion
Why some custom fields are/aren't synced
How conversion attribution from WooCommerce works
Data synced from WooCommerce
Products
Product ID, name, slug, description
Type (simple, variable, grouped, external)
Variants (for variable products): size, color, SKU per variation
Regular + sale price per variant
Stock quantity per variant
Categories + tags
Images (URLs)
Updated timestamp
Visible at /catalogs after sync.
Orders
Order ID + number
Status (pending, processing, on-hold, completed, cancelled, refunded, failed)
Line items (product + variation + quantity + price)
Totals: subtotal, tax, shipping, discount, total
Currency
Customer email + name
Billing + shipping address (city, country)
Created + completed timestamps
Customer notes
UTM parameters (from
_wc_order_attributionif WooCommerce Order Attribution plugin enabled, else captured via Wevion's pixel/CAPI)
Customers
Customer ID + email
Name + billing address
Order count + lifetime value
Created date
Custom fields (via CDM — see below)
Refunds
Refund ID + parent order ID
Refunded amount
Reason (if provided)
Created timestamp
Sync mechanisms
REST API polling (primary, every 15 min)
woocommerce-sync.service.ts runs every 15 minutes:
Pulls products updated since last sync
Pulls orders updated since last sync
Pulls customers updated since last sync
Pulls refunds created since last sync
Uses WooCommerce REST API standard endpoints + Basic Auth header.
Webhooks (real-time, optional)
If webhooks configured in WP Admin (com-104 step 6):
New events delivered within seconds
WooCommerce signs payloads with secret (HMAC-SHA256)
Wevion verifies signature before processing
Failed deliveries retried by WooCommerce per its config (configurable in WP)
With webhooks + polling combination, you get real-time freshness + missed-event recovery.
Customer Data Model (CDM)
woocommerce-cdm.service.ts normalizes customer fields across diverse WooCommerce installations. WooCommerce stores have varied schemas:
Default
wp_users+wc_customer_lookuptablesCustom fields added by themes (Storefront, Astra, Divi, etc.)
Plugin-added fields (WooCommerce Subscriptions, Memberships, B2B, etc.)
Custom registration forms
CDM extracts:
Standard fields (email, name, billing/shipping address, phone)
Common custom fields (newsletter opt-in, account type, B2B flags)
Last order details
Output: a normalized customer record Wevion can use consistently across stores.
Connection health monitoring
woocommerce-connection-health.service.ts runs hourly:
Check | What it tests | Failure means |
|---|---|---|
Site reachable | HTTP GET to REST API root returns 200 | Site down or DNS issue |
REST API enabled | Standard endpoints return JSON | Permalinks disabled or REST API plugin broken |
Credentials valid | Authenticated test call succeeds | Consumer key/secret rotated or revoked |
WooCommerce active | WC endpoint returns expected schema | Plugin deactivated or downgraded |
If any check fails, the connector card turns yellow with the specific failure reason. You're alerted via email + Telegram (if connected).
Sync frequency in practice
Event | When Wevion sees it |
|---|---|
New order via webhook | < 1 minute |
New order without webhook | < 15 min (polling) |
Order status update | Same as new order |
Refund | Same |
Product update | < 15 min (polling — no webhook for products in default setup) |
Customer registration | < 15 min |
Conversion attribution
When a customer places an order:
Customer landed via UTM-tagged URL (e.g.
?utm_source=facebook&utm_campaign=summer_sale_2026)WooCommerce stores UTM in order metadata (if Order Attribution plugin enabled)
Wevion's pixel/CAPI also tracks the conversion event with same UTM
On sync, Wevion correlates order to ad campaign via UTM match
Revenue attributed to the campaign in Wevion analytics
Deduplicated against pixel events using event_id
For best attribution: enable WooCommerce Order Attribution plugin (free, official) OR use Wevion's pixel/CAPI for browser-side capture.
Initial sync timing
Store size | Initial sync |
|---|---|
< 100 products + 1k orders | 5-10 min |
500 products + 10k orders | 20-40 min |
5k+ products + 50k+ orders | 1-3 hours |
Performance depends on:
Your WordPress server speed
Wevion's API call rate (configured to avoid hammering your server)
Network latency
Manual force-sync
If you need fresh data RIGHT NOW (e.g. demo for client):
/connect/woocommerce→ store detail → Force sync buttonTriggers immediate full sync (not just incremental)
Use sparingly — heavy on your WordPress server
Performance considerations for your WordPress server
Wevion's polling makes 5-20 REST API calls per 15-min cycle (depending on store size). Each call typically < 1 second. Negligible load for most stores. For very busy stores (10k+ orders/day):
Wevion auto-throttles to avoid spikes
Consider using webhooks (less load than polling)
Monitor your server via WP plugin (e.g. Query Monitor) if concerned
What you'll see in Wevion
After healthy sync:
Dashboard shows WooCommerce revenue attributed to campaigns
/catalogsshows product catalogPer-store, per-campaign, per-product breakdowns
Health badge: green Healthy
Common questions
"Custom fields not synced": CDM covers common fields. For specific custom fields, contact support for mapping setup.
"Subscription orders showing wrong total": WooCommerce Subscriptions stores differently. Wevion respects WC's reported total; check if WC plugin is set up correctly.
"Variable products showing only parent": variations are pulled separately. Check
/catalogs→ product detail → variations tab."Order status 'On hold' missing from reports": by default Wevion includes only Completed + Processing orders in revenue. Configurable per workspace — contact support.
Related
Connect WooCommerce — prerequisite
WooCommerce multi-source — multi-store setup
Data and sync troubleshooting — broader issues