How product sync works
Sync your WooCommerce products to Paddle Billing so prices and products stay consistent across both platforms.
- Simple products — 1 Paddle product + 1 Paddle price.
- Variable products — 1 Paddle product + 1 price per variation.
- Each variation is mapped to its own Paddle price, so customers can buy any variation.
- Paddle IDs (
_paddle_{environment}_product_id,_paddle_{environment}_price_id) are stored as product meta, kept separate per environment (production / staging).
To sync a product:
- Go to Products in WordPress Admin.
- Hover over a product row.
- Click "Sync with Paddle".
Syncing many products at once
To sync more than one product, select them on the Products screen, choose "Sync with Paddle" from the Bulk actions dropdown, and click Apply.
A bulk sync runs inside the normal admin request, so it is bounded by time rather than by a fixed number of products. Every product costs at least two Paddle API calls, and a variable product costs one more for each of its variations — so a hundred simple products and a hundred variable ones are very different amounts of work.
If a selection is large enough to run out of time, the sync stops early and tells you how many products were not synced. Those products are left exactly as they were, so you can select the rest and run it again as many times as you need. A partial run is always reported — it will never quietly look like it finished.
Tax categories
Paddle uses a product's tax category to decide how each sale is taxed in every jurisdiction. Because Paddle is the merchant of record, that decision is made on your behalf — so the category needs to match what you actually sell.
Set it per product on the Paddle tab in Product data, or set a store-wide default under WooCommerce → Settings → Payments → Paddle. A product left on "Use the store default" follows that default if you later change it.
Only Standard and SaaS are enabled on a Paddle account by default. The other seven — digital goods, ebooks, website hosting, implementation services, professional services, software programming services and training services — must be requested in the Paddle dashboard first. Syncing a product under a category your account is not approved for fails, and the plugin will tell you so in the sync notice and on the product's Paddle tab.
The default is Standard, which means pre-written software downloaded and installed on a local device. If that does not describe what you sell, change it.
Duplicated products
When you duplicate a product, the copy is deliberately created unsynced — it does not inherit the original's Paddle product or price IDs, and neither do its variations. Its first sync creates its own Paddle product and price.
This matters because two WooCommerce products pointing at one Paddle price both charge that price at checkout regardless of what WooCommerce shows, and syncing either one rewrites the price the other sells at. The problem is invisible for as long as the two products happen to cost the same — which is exactly the situation immediately after duplicating.
If products on your store already share a Paddle price from a duplicate made before version 1.2.0, a warning appears on the Products screen naming them. To fix it, decide which product owns the Paddle price, then open each of the others, clear the Paddle Product ID and Price ID on its Paddle tab, and sync it.
Auto sync
Products tagged with a configurable tag (default: paddle) can be synced automatically on a schedule via WordPress cron.
- Go to WooCommerce → Settings → Payments → Paddle.
- Set Product Tag for Auto-Sync.
- Enable Enable Auto Sync.
- Set Auto Sync Interval in minutes (minimum 5, default 60).
- Save settings.
Price changes on tagged products are also detected automatically — no manual re-sync needed.
To trigger a sync run immediately from the command line:
wp cron event run paddle_auto_sync_products