These are deliberate trade-offs, mostly set by how Paddle works.
- One subscription per order and one subscription product per subscription; the checkout fails otherwise. Switching is turned off for Paddle subscriptions.
- No amount or date changes. The gateway doesn’t declare
subscription_amount_changesorsubscription_date_changes: Paddle bills the recurring amount fixed at checkout, and price or date changes in WooCommerce are not sent to Paddle. - Pauses show immediately. A pause or suspension shows as on-hold in WooCommerce immediately, while Paddle pauses at the end of the paid period.
- Pending-cancel is final here. Changes in Paddle to a subscription that is pending-cancel in WooCommerce (for example removing a scheduled cancellation) are not applied.
- Off-cycle charges (origins
subscription_charge,subscription_update) are noted on the subscription, not recorded as renewals. - Classic: subscriptions only in USD, EUR or GBP; trials are converted to days (month = 30, year = 365);
cancel_timingapplies to Billing only. - Paddle discount codes are turned off; WooCommerce coupons are used instead.
- WooCommerce taxes should be off. Paddle calculates tax as merchant of record. With WooCommerce taxes on, buyers can be taxed twice, and Paddle-side refunds are recorded as amounts rather than on lines.
- Refunds from Paddle never restock items. Classic refunds from Paddle are always recorded as amounts (Classic alerts don’t name lines).
- Classic dashboard links (
orders/detail/…,subscriptions/customers/manage/…) are best-effort.