Development Plans for Easy Digital Downloads 3.0

Easy Digital Downloads 3.0 is expected to be released sometime in the first or second quarter of 2018 and with it we are shipping a significant number of changes. To help developers and users alike prepare for the 3.0 release, we’ll be communicating these changes through this blog consistently over the next few months.

The 3.0 release will have two primary focuses:

  1. A complete migration of data from the WordPress default tables into custom database tables that offer significant performance and flexibility improvements.
  2. A complete rebuild of the reporting tools offered in order to provide store owners accurate and actionable reports of their store’s eCommerce activity.

We have chosen to skip the 2.9 version and jump straight to 3.0 as this is going to be a significant release with a huge number of underlying changes that pose the possibility of breaking backwards compatibility. Our goal is to always maintain 100% backwards compatibility but it is possible that we’ll need to strategically break backwards compatibility in some places for Easy Digital Downloads 3.0. As we work through the 3.0 release we’ll work to heavily document any and all break points that we are aware of.

Migration to custom database tables

Since the very beginning Easy Digital Downloads, like the majority of other early plugins in WordPress, has relied on the standard WordPress posts and postmeta tables for the bulk of its data storage. At the time this was seen as the “right” way to build large plugins for WordPress. Time has proven, however, that this “standard” was poorly conceived and carried a number of significant disadvantages to a properly designed database schema. We have worked for the last few years to get past this early, short-sighted decision by implementing a proper database schema for Easy Digital Downloads and migrating all data carefully and safely from the old structure. This has, however, been a slow process. Moving massive amounts of mission critical data is a task that must be done with the utmost care.

Our original plan was to roll out a series of migrations over the course of a year or more. We have now chosen to finalize all of the migrations in a single release. Doing this will permit us to resolve long-standing issues with the reporting capabilities of EDD while simultaneously providing a huge performance improvement to stores, especially large stores.

The data that has already been migrated to EDD-specific database tables:

  • Subscription records from the Recurring Payments extension
  • Commission records from the Commissions extension
  • Customer records

The data to be migrated in the 3.0 release:

  • Payment records
  • Payment notes
  • Product sale logs
  • API request logs
  • File download logs
  • Gateway error logs
  • Discount codes

Prior to the 3.0 release, an update for the Software Licensing extension that migrates license keys to a custom database table will also be released. This is nearly complete.

Reporting tools

A long-time complaint with Easy Digital Downloads has been its poor reporting suite. The reports in EDD have always had two primary issues for store owners:

  • They are oftentimes inaccurate
  • They do not provide nearly enough information to allow store owners to make actionable decisions

By completing the migration to a proper database schema in a single release we will also be able to significantly improve the reporting options in Easy Digital Downloads.

The exact reporting options to be introduced are not yet fully decided but they will be determined as we progress through the development cycle.

Another problem the reports in EDD have always been afflicted by is poor developer APIs for creating reports. 3.0 will resolve this by introducing a complete reporting API that provides methods for developers to easily extend and enhance reports.

3.0 time frame

We hope to have 3.0 completed within the next few months but there is not currently a due date assigned to the release. As 3.0 includes the migration of large amounts of store-critical data, we’re being extra cautious and will only release 3.0 when we are 100% confident in it. There will be numerous beta versions released in order to get as much real-world testing as possible.

Follow the 3.0 development

If you wish to follow or contribute to the development of 3.0, you can find the GitHub milestone here.

Here is a list of the primary issues for 3.0:

Contributions, feedback, and testing are welcomed and encouraged!

10 responses... add one

I’m happy to see you working so hard on 3.0. While I’ve enjoyed using EDD for a year now, the points you bring up about its shortcomings are all valid and at times frustrating. I’m very much looking forward to seeing the progress you make this year!

Bravo!
Indeed I remember looking at your database structure to generate my own sales reports but quickly gave up given how embedded all the sales data is in the core WP tables.

This is a significant move. It’s been clear, I think, for some time that EDD suffered from significant legacy issues.

The “complete rebuild of the reporting tools” is long over due – the current implementation is very buggy. When I reported these bugs, I was told the tools were working as expected, which again highlighted to me the extremely variable support offered by the EDD team.

Well done to the EDD team for taking this big decision.

Love the plan, especially the data migration part. I think it’s the most important thing for an e-commerce website. With the growing data, it will be a big problem from the performance view. I wrote an article about optimizing database for custom fields that might add some useful info.

Anyway, I’ve very excited to see it in action! Looking forward to the v3.

Looking forward to the improved reporting.

And thank you for being so thoughtful with backwards compatibility. I’ve seen how devs who chose another e-commerce solution get a bit worked up when an update is rolled out because they know it probably means more work for them. You’re really helped us keep costs down.

With that said, it’s perfectly reasonable that with a major release like this, some things may end up breaking. Better to deal with that every few years than every few months. 🙂

Hi,

Is there any estimated date on when this will be released?

Having more than 3M of records on wp_postsmeta is causing lot of troubles and performance issues.

Thank you!

It is still in very active development and is getting closer! We can’t provide a precise ETA bu right now we do anticipate early alpha versions being ready in about a month.

Leave a Reply

Your email address will not be published. Required fields are marked *