news

Easy Digital Downloads to WooCommerce, subscriptions included

Moving a store from Easy Digital Downloads to WooCommerce has always had one painful step in the middle: the subscriptions. Products can be rebuilt, content can be moved, customers can be exported. But recurring billing has stubbornly meant going back to every subscriber and asking them to subscribe all over again. Some do. Many do […]

By Rémi Corson · August 11, 2026 · 4 min read

news

Moving a store from Easy Digital Downloads to WooCommerce has always had one painful step in the middle: the subscriptions. Products can be rebuilt, content can be moved, customers can be exported. But recurring billing has stubbornly meant going back to every subscriber and asking them to subscribe all over again. Some do. Many do not, and you find out which is which over the following months.

Milo Subscriptions now imports Easy Digital Downloads Recurring Payments directly. Your subscribers keep their plan, their price and their renewal date, and never hear about the move.

Why this is not a plugin swap

Our other importers move subscriptions between WooCommerce plugins. This one crosses a platform boundary, and EDD does not have the pieces WooCommerce expects. There are no products, only downloads. No orders, only payments. Customers are EDD’s own records, not WordPress users. Cadences are written differently: EDD says “quarter” where WooCommerce says every three months.

So the import does not copy rows across. It reads EDD’s tables directly and builds the WooCommerce side as it goes: a subscription product per download, saved as a hidden draft so nothing appears in your shop uninvited, and one product per price tier when a download has several, because two tiers can bill on different schedules.

Your files stay exactly where they are. They are attached to the new products pointing at the same locations EDD already serves them from, with EDD’s own per-tier gating reproduced, so a Premium subscriber keeps getting the Premium files and nothing else.

The part we thought hardest about

There is one thing the import deliberately does not bring across: the payment agreement.

EDD stores it with your gateway, and that agreement keeps billing on the gateway’s side until you cancel it there. If Milo also charged the same saved card, your subscriber would pay twice for the same month. Nobody notices that on day one. Everybody notices it on day thirty.

So imported subscriptions arrive on manual renewal. Each renewal is invoiced to the customer instead of charged, and your store keeps running while you close the old agreements down in your own time. When you are ready, the Health Check screen sends re-authorization emails: customers re-enter their card once, through your gateway, and automatic billing resumes. Every imported subscription is placed in that audience for you, so nothing gets left behind.

It would have been easier to reuse the card and let the two systems race. We would rather your customers never notice the move at all.

What comes across

Statuses, including EDD’s trialling and failing states. Billing periods, with quarter and semi-year translated into the schedules your customers already have. Trials, as real trial end dates. Sign-up fees. Fixed-length plans, where EDD’s count of payments becomes an end date that stops the subscription at the right cycle. Guest checkouts stay guest checkouts, identified by their billing email rather than attached to whichever account happens to share it.

Past EDD payments are not recreated as WooCommerce orders. Those sales already exist in EDD, and importing them would count the same revenue twice in your reports.

How it runs

The importer detects EDD automatically and shows you a preview before anything changes: how many subscriptions, in which states, on which cadences, how many products it will create, and what to be aware of. Nothing is written until you press the button.

The import itself runs in the background in batches, so a store with thousands of subscriptions does not hang on a page load. It is safe to re-run: every imported row is stamped on both sides, so a second pass does nothing rather than duplicating. Afterwards, a verification report pairs every EDD subscription with the Milo subscription it produced and names any that did not line up.

Your EDD data is never modified. Nothing is moved, only read.

Six sources, one importer

Easy Digital Downloads joins WooCommerce Subscriptions, Subscriptions for WooCommerce by WP Swings, YITH WooCommerce Subscription, Flexible Subscriptions by WP Desk, and Sublium. Same wizard, same preview, same verification report.

Migrating recurring billing is the step that keeps stores where they are, long after they have decided to move. We would rather that step were boring.

Read the migration guide →

Try the engine, it costs nothing

Free on WordPress.org, and one percent only when you get paid.

See pricing

Keep reading