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:
- A complete migration of data from the WordPress default tables into custom database tables that offer significant performance and flexibility improvements.
- 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.
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!