It’s been already a few weeks since we’ve migrated the membership platform behind our website to Easy Digital Downloads, and I want to share some insights about the entire migration process.
Background & History
Our previous membership platform (including checkout and affiliate program) was powered by a very old version of aMember with a lot of custom modifications made for our needs.
One of the biggest mistake we made in 2011 when we started to use aMember, was that we hired someone who modified the platform for us, and after this we couldn’t update it anymore, as this would have removed all of his custom modifications.
Sounds familiar, right? Just like a lot of people are stuck with their themes because of numerous functionalities included in themes, and not in plugins.
Despite being an outdated platform, it was working very well for us and we optimized it as much as we could.
Why was the migration needed then?
Just because it worked “fine”, it doesn’t mean that our previous setup was a perfect one.
I will list here a few things that made the migration inevitable:
- Outdated software with no support for PHP 5.6+
- Lack of integration with analytics & marketing tools
- EU VAT compliance due to our reincorporation in EU
EDD vs. WooCommerce
We made the first attempts to get away from aMember in 2014 and 2015, when we spent several months trying to migrate to WooCommerce. A lot of time was spent on writing custom functionality that wasn’t available yet at that time as extensions. Most of the needed feature were related to handling the digital downloads.
As the time was passing, we realized that the migration takes us too much time and we started to divert from our release schedule.
In the end we gave up, and decided to stay on the old platform and focus on creating new products.
In Spring 2016 I purchased again a bunch of Easy Digital Downloads extensions with the intention to give a try to a different platform that I would easily name the WooCommerce for Digital Goods.
One of the reasons I decided to go with EDD was the Software Licensing add-on which basically was created especially for WordPress themes & plugins shops and with so many WordPress theme shops already using EDD, it would be foolish for us to not give this combination a try.
Back in 2016, the most important reason I wanted to migrate was to add 1-click updates to our themes.
Unfortunately, just as with WooCommerce, the migration started to affect our development cycle, so we gave up again.
3rd Attempt was Successful ????
At the beginning of 2018 I moved with my family in the Netherlands, and as part of our relocation, I wanted to reincorporate WPZOOM here.
This time I had no other choice but to act fast and migrate to a new platform that would take care of everything regarding the VAT MOSS, as I didn’t even considering tweaking and customizing our existing platform to comply with all the needed regulations regarding EU VAT.
It took us about 3 months, but we finally migrated our entire membership platform to Easy Digital Downloads on May 12:
Challenges & How We Overcome Them
It may sound crazy, but my list of “things needing attention” contained about 100 entries with different tweaks that were needed to be made in order to be able to migrate. Put apart, this is the same thing as the 100 custom modifications needed for us in order to ensure 100% functioning.
Some of the most complicated challenges were in regards to the affiliate system: the migration of the old links, and making the migration for existing customers as smooth as possible.
Nice-looking Members Area
We’re not really fans of the standard EDD styling and the way the downloads are listed, so we’ve customized the [download_history] shortcode almost entirely.
Instead of seeing downloads associated with a specific payment, we prefered to show these things separately: downloads on a page, and payments/invoices/licenses on other pages.
Even if Easy Digital Downloads recommends to use the [purchase_history] shortcode for displaying downloads, we didn’t like this approach, as it doesn’t give us too much flexibility to sort downloads as we wish.
We’ve also made some tweaks to group downloads included in a bundle – in our case this is the popular All Themes Package – and we’ve also made some tweaks to prevent the same download to appear multiple times, something that happened to a lot of our customers who renewed the same theme for several years.
Affiliate System
Our previous affiliate system was integrated in aMember, and there was no difference between the customer accounts and affiliate accounts, as each user automatically was an affiliate as well.
This was a big challenge for us, as initially we planned to make the migration of existing affiliate links somehow manually, only for active or top affiliates, but since the structure of links in both affiliate platforms aMember and AffiliateWP contained the affiliate ID, we simply decided to write a small script that will redirect all the old links to the new platform.
Since we managed to make the transition of the affiliate system without affecting existing affiliates, our responsibility was simply to inform our active affiliates about upcoming changes and possible actions needed from their side:
Giving a personal touch to the EDD Checkout page
Initially, I had no issues keeping the standard EDD checkout template and applying a few fixes to it. However, after spending so much time tweaking other things in EDD and seeing the same template on other websites using EDD, I decided that we have to customize the Checkout page entirely, and give it a unique look.
Our previous checkout page in aMember was pretty simply and only some basic information were needed from new customers:
We tried to keep the checkout page as simple as possible in EDD as well, but if you take a look at the following screenshot, you can notice that it’s far from simple:
Since we are required to collect the billing address from our customers, it was impossible to keep the checkout page simple, so the next challenge for us was to structure the information on the page as best as possible.
On the other hand, the Credit Card payments are processed directly on our website via Stripe, so now we can analyze users behaviour and make improvements over time.
We’ve also decided to split the page in 2 columns so that the information can be scanned much easier, and instead of scrolling at the top and bottom to see your cart’s contents, you can see it next to the checkout fields now.
Beside the billing address, the following elements have been added on the new checkout page:
- Progress indicator
- Cart functionality
- All Themes Package cross-sell banner when purchasing individual themes
- Recommended services
Migrating Existing Customers
Our final major challenge was to migrate all existing customers to the EDD. I didn’t want to try anything crazy related to the databases, so I preferred instead to use the built-in Payments Importer from CSV, especially by formatting our CSV file with the Products (Raw) column, which allowed us to match the exact pricing variation of a specific product, as each of our theme is available in 2 pricing options: with PSD File (Extended License) and without it (Single License).
Example: in aMember we had to create 2 separate products for each theme (and 2 more needed for renewals):
Velure (Single License) Velure (Extended License)
while in EDD we preferred to use different pricing options under the same product:
So we’ve formatted our CSV import file (with a lot of Find & Replace) to output the purchased product that will be assigned in the following structure, in order to be able to match the needed pricing option:
//Download Name|Price{tax}{price_id} Velure|69.00{0}{1} Velure|99.00{0}{2}
Even though the migration using this method was very slow, at least it was a safe one, and we did a dozen of tests before starting the migration.
Our future plans with EDD
Migrating to EDD opened the doors to a new world for us. During all these years, we barely could use any marketing & analytics tools due to their lack of integration with aMember.
Right now we are still monitoring how things are working on the new platform, and we continue to improve it by fixing different issues almost every day.
Next chapter for us is to integrate 1-click theme updates in our themes, which is possible very easy using the Software Licensing add-on.
UPDATE: We’ve integrated 1-click theme updates in all our themes. Read more here.
Another thing we’re curious about and want also to try next is the automatic license renewal, but more details about this will come in the next months.
Wrapping up
There are many things that I haven’t talked about in this post, especially about the EDD extensions used on our website, but most probably this will be covered in a separate post, along with other integrations & services we’re using currently.
Stay tuned!
June 4, 2018 4:50 pm
Great write-up, Pavel. Your custom modifications to the account and checkout pages are a nice change from the default EDD templates. Very user-friendly approach and it’s easy on the eye!
We’ve used EDD for our WP RSS Aggregator plugin for years. We were so happy with it we went and built a brand new appointment bookings add-on for EDD itself – https://eddbookings.com/
If you ever decide to introduce bookings to your site, let us know :)
June 6, 2018 9:44 pm
I can only imagine the amount of work you did to pull this off.
Great resource in migrating to EDD.
July 4, 2018 3:09 am
We have been running on EDD since the beginning and it has been a smooth ride for the most part. Regarding analytics – since you are using Stripe you might want to check Baremetrics ( https://baremetrics.com/ ) for better sales reports and analytics, or if you are more into WordPress based products (our) Users Insights reports might do the job: https://usersinsights.com/easy-digital-downloads-reports/
December 31, 2018 2:43 pm
Baremetrics have a lot of Glitches and hard to work with it, if you are aiming to work with more options, like PayPal where on the WordPress world, you cant avoid it!
I strongly recommend User Insights my self also.