I’ve been selling digital WordPress products for over 7 years, including plugins, themes, and SaaS.
There are many different eCommerce plugins out there for selling WordPress plugins and themes, but my favorite is Easy Digital Downloads (aka EDD).
It’s a free plugin with a wide variety of paid add-ons that can do anything from manual purchases to software licensing.
Selling WordPress themes and plugins require some special handling, like file download limits, licensing restrictions, automated renewal payments, and more. Easy Digital Downloads is the best in the business for these requirements.
There are already guides out there telling you how to install the plugin and setup your initial products. This guide is a more advanced look at all the nuances of digital products such as automatic updates, software licensing, renewals, download limits and more.
This guide is based on 7 years of experience using the EDD on multiple sites, with all kinds of useful tips you won’t find anywhere else.
Table of Contents
- Why EDD?
- Setting up your store
- Payment Gateways
- Recommended Email Settings
- Finding a Great Theme
- Add-ons You Might Need
- Setting Automatic Updates and Software Licensing
- Install and Configure
- Add code to your plugin/theme
- Recurring Payments
- Settings
- Recurring Products
- Software Licensing Integration
- Taking Your Store Further
- Affiliate Programs
- EDD iOS App
- Cart Recovery
- Dunning
- Email Marketing
- Conclusion
Why EDD?
You may be wondering why you should use Easy Digital Downloads.
Am I getting paid to write this article? Do I have ulterior motives?
Nope and nope.
The simple truth is that I’ve used other plugins, and they don’t work as well. WooCommerce is great for physical stores, but it doesn’t handle things like software licensing and automatic updates as nicely.
EDD has a team of great developers, many of whom I know personally. They use the product on their own sites, and are constantly pushing it forward.
It’s not the best solution for everyone, but I highly recommend giving it a shot.
Setting up your EDD Store
To setup your store, you will need a self-hosted WordPress website.
Install and activate the Easy Digital Downloads plugin, and visit the settings page to get started.
This guide will not be focusing on setup and installation, but you can find a great getting started guide here. I’ll just briefly cover some of the initial settings you should be aware of.
Payment Gateways
Visit the payment gateways tab on the settings page.
Set a default gateway and enter your PayPal payment email at a minimum.
You can use PayPal Standard by default, but I highly recommend adding a credit card gateway such as Stripe (or a popular gateway in your country).
You can purchase additional gateways as individual add-ons, or as part of the Starter Package.
Tip: Many of the plugins I recommend in this article are in the Starter Package, and you can save quite a bit by buying them all at once.
It’s ok to use PayPal standard at first, but to be able to refund purchases through your admin, you will need PayPal Pro.
Email Settings
Visit the email settings tab and fill out your from name and email.
Next, click on “purchase receipts.” It’s important that you include all the information your customers will need in the purchase receipt emails before you start selling. The default settings are not good enough as is.
Here’s what I recommend at a minimum:
Hey, thanks for your purchase.
Below you’ll find your download links, these expire in 24 hours. To download after that, please visit your account page.
Here’s a link to our getting started documentation.
Downloads
{download_list}
License Keys
{license_keys}
Purchase information
{date}
{fullname}
{billing_address}
Payment ID: {payment_id}
Payment method: {payment_method}
VAT: 0%
Total: {price}
Thanks!
A few things about that email:
- Customers always try to download from the email after the links have expired. Make sure you have that line or else you will get a lot of support tickets about it.
- Make sure you link to your documentation in the receipt email, many people won’t search for it on their own.
- Even if you don’t charge VAT tax, many European businesses need it to explicitly say the VAT amount.
Most of the other EDD settings like Styles, Tax, etc. are personal to your store. I don’t change many other default settings, but you should go through them and edit as necessary.
Themes
Easy Digital Downloads works with any theme, but some themes are made for it specifically.
If you are using your own theme, you may end up with a lot of custom CSS work to get the look you want. You will most likely need to clean up your product archive, single product, cart, checkout, and account pages.
It’s important that your site looks professional, don’t skip this step.
If you don’t have a theme yet, EDD has some free ones you can choose from here.
My personal favorite is a paid theme called Checkout by Array Themes. It’s the theme I’m using on this site, and I love it. It comes with a built-in pricing table, beautiful product page layouts, and even great account pages.
Add-Ons You Might Need
Even though EDD is free, you will need to purchase some add-ons to do everything you want.
Here are some add-ons that I can’t live without.
Email Integrations
You probably use an email marketing provider like MailChimp or Convertkit. You’ll want customers who purchase to be added to your list, with the appropriate tag or group so you can keep track.
Using an add-on for your provider will allow you to do that.
Manual Purchases
You will occasionally want to create a purchase manually, either for a test, a demo account, etc. To do that you’ll need the manual purchase add-on.
PDF Invoices
You’d be surprised how often customers want their invoice in PDF form, because of the way their company does bookkeeping. You can do that with the PDF Invoices add-on.
HelpScout Integration
If you use HelpScout, you can use this free plugin by Danny Van Kooten to integrate with EDD.
It’s extremely helpful because it shows EDD purchase information right in the support ticket. It’s an easy way to see who has purchased or not, if their license is expired, and what products they own.
Other
Besides the add-ons already mentioned in this article, you may have other needs like bookings or front-end submissions. Take a look at the wide variety of add-ons available, and don’t forget to check out the starter package.
After you get the add-ons you need installed, the next step is to setup your products. Creating a new download is pretty self-explanatory, I won’t go over that here. You can view the documentation if you need help.
Let’s skip right to automatic updates and licensing.
Setting Automatic Updates and Software Licensing
Most WordPress products need some sort of licensing to provide automatic updates and keep track of paying customers.
When someone pays for your product, you give them a license that can be used on a limited number of sites. This license allows customers to receive automatic updates, only while their license is active.
This is done with the Software Licensing add-on.
Setting up automatic updates is a 3 step process.
- Install and configure the Software Licensing add-on.
- Add the SL updater code to your theme or plugin files.
- Add a setting to input and activate the license in your plugin or theme.
Install and configure the Software Licensing Add-On
Once installing and activating Software Licensing, visit the EDD Settings page and click on the Extensions tab.
Configure the settings as desired, here are a few settings I recommend you check: Ignore Local Host URLs, Allow Renewals, Disable Discount Codes on Renewals, and Send Renewal Reminders. Edit these as necessary.
Make sure to edit your renewal reminder emails. This is a chance to sell your customer on why they should renew, don’t write a boring email!
I think it should be something like this:
Hi {name},
Your license key for {product_name} is about to expire, please renew it here: {renewal_link}
By renewing, you will continue to receive:
- Critical updates and support for all plugins you purchased
- Access to our library of exclusive educational materials
- New features and updates
- Premium support
- Other stuff here…
Thanks!
I’d recommend sending multiple emails, and increase the urgency as you go. Your first email can look like the one above, send another one a week or two out, then one a couple days prior to expiration like this:
Subject: Urgent, license expiring tomorrow
Hey {name},
Your license for {product} expires tomorrow, and you will stop receiving critical updates and support.
Please renew now to keep your account active: {renewal_link}
If you have any questions, reply to this email.
Thanks!
Manual renewal rates are notoriously low, so you have to do whatever you can to encourage your customers. Add whatever you can as a selling point, if you offer more than just support and upgrades, definitely add that to the email.
It’s important to know that if you are using Recurring Payments for renewals (covered below), the only time these emails are used is when someone does not have an active subscription. Anyone with a subscription will receive the recurring payments reminder emails, not the software licensing emails.
The next step is to visit your product(s) and enable license creation.
Here you can set the activation limit, license length, and more. You’ll come back and upload the product zip file after the next step.
Add Updater Code to Your Plugin or Theme
Next you have to add the code that handles the license and software updates to your product.
EDD has an example plugin and great support documentation to help you with this, so I’ll just give an overview.
You’ll need to add the SL Updater php file to your plugin, and include it. Next, you add the code that checks if an update is available. Finally, create a settings page (or field on an existing settings page) that allows you to enter the license and activate/deactivate it.
- Plugin updater documentation
- Theme updater documentation
- The Software Licensing add-on has sample code in the plugin folder in the /samples directory
It’s important to know that this is not copy/paste code. You need to change the constants and function names to something unique. To activate a license, you must save the license, then click activate. This 2-step process is not ideal, you may want to make that a 1 click process using Javascript.
Once you’ve finished adding your updater code, zip your plugin or theme folder and go back to it’s download edit page. Upload the file in the “Download Files” meta box.
Make sure you fully test the licensing process when you are finished. Nothing is worse than making your customers update manually because your updater code isn’t working!
For more information on this process, see the documentation here.
Recurring Payments
The best way to create sustainable revenue for your business is with recurring renewals.
Many product developers including myself have implemented them and seen stable revenue growth, with no negative impact on sales. Prior to recurring renewals, most product authors would have an optional yearly renewal for support and updates. Most saw very low renewal rates.
Subscription based purchases increases renewal rates, and makes you more money.
To set this up, you need to purchase and install the Recurring Payments add-on. The good news is that it’s much easier to setup than Software Licensing, because no custom code is needed.
The great thing about using Easy Digital Downloads is that everything they make is geared towards plugin and theme sales, since that’s what they do on their own site. If you are using Software Licensing, the Recurring Payments add-on has built-in integration for licensing and updates.
Recurring Payments Settings
After activating the plugin, visit the EDD settings page, click the Extensions tab, then the Recurring Payments sub tab.
Configure the settings as desired, here are some that I like to check: Limit File Downloads, Display Subscription Terms, One Time Discounts, Payment Received Email, Payment Failed Email, Send Renewal Reminders, and Send Expiration Reminders.
You should always be transparent with your customers that this is a subscription payment and they will automatically be charged.
Include the terms clearly on your pricing and checkout pages.
Tip: If you are charging yearly, it is wise to send an email about a week before you charge them.
Some people forget, and if you don’t warn them, they may do a chargeback with their bank. It is better to notify them so they can cancel than deal with chargebacks.
Create Recurring Products
The next step is to turn your existing products into subscription products.
Visit your download product and go to the pricing box. Change recurring to yes, and enter the period and number of times.
To keep charging until the customer cancels, leave “times” blank or at 0. The signup fee is charged on top of the first payment, so an item priced at $30 with a signup fee of $25 would be $55 initially, then $30 each period.
For more setup options, see the documentation.
A few tips from my experience:
- Don’t offer renewal discounts. It won’t make a significant impact on your renewal rate, you just lose money.
- Make sure coupons don’t apply to renewals. You can select this in the settings.
- You will have a lot of failed renewal charges and refund requests, that’s just the way it goes. Your revenue will still be higher with recurring than without it.
Software Licensing Integration
The Recurring Payments plugin automatically integrates with Software Licensing.
You don’t need to change your code, and you don’t have to change any settings. Automatic updates will work the same way, license activation and expiration is the same.
One difference to be aware of is that your SL reminder emails will not be used if the customer has an active recurring subscription. The emails under the Recurring Payments will be used instead, so make sure you have those setup properly. If a customer cancels their subscription, it will go back to the Software Licensing reminder emails if you have those setup.
Take EDD Store Further
After setting up your store, here are some useful apps and plugins to help you increase sales.
Affiliate Program
Setting up an affiliate program can be done through a major network like ShareASale, or using a plugin like AffiliateWP.
There are pros and cons to each approach, and which system to use depends on your goals.
AffiliateWP is affordable (Starting at $99/yr) and easy to setup, and has built-in integration with Easy Digital Downloads. It works through the WordPress admin, and it’s easy to make your customers affiliates.
ShareASale is much more expensive ($650 sign up + 20% transaction fee), but has the benefit of a large network of professional affiliates, and it handles much of the transactional burden. It is also very good at saving you from fraud, which can be a problem in the affiliate space.
My personal experience with affiliate programs has been hit or miss.
The quality of your affiliates is much more important than the software you use. Don’t expect to put up an affiliate program and start getting sales, it takes time to build relationships with great affiliate partners.
Sales Tracking App
The EDD sales tracking app is a fun way to keep tabs on your site stats.
It shows you sales, revenue, customers, products, and more. You can get historical data as well, like how much revenue you made between June and July of last year.
The app costs $6.99, get it on iTunes here.
Cart Recovery
Cart abandonment can be an issue for some eCommerce stores.
Your customers may put items in their cart, then get interrupted and forget to purchase. EDD has an integration with Jilt to help recover lost sales by emailing these customers.
Some stores can see a bump in sales using a service like Jilt, but it doesn’t work for me. My stores don’t have enough products, or a high enough volume to benefit from a cart abandonment service. Here’s who I think it could work for:
- Stores with lots of different products.
- The average purchase is three or more items.
- Very high sales volume.
If that describes your store, I’d recommend you give it a try.
Dunning
If you are using recurring renewals, there’s a 100% chance that you will have failed credit card charges.
Your customer’s cards will expire, get cancelled, maxed out, or any number of issues. Reducing the number of failed payments will increase your revenue.
Dunning is the process of reducing churn by ensuring customer credit cards are up to date. Payment gateways like Stripe handle card updates automatically, but this is only a small part of churn. Credit card charges get denied for all kinds of reasons, and you won’t always know why.
There are many services that can help you with dunning, including Baremetrics Recover, and Churnbuster.
These services are mainly focused on SaaS businesses, and you will see limited results with a plugin/theme business. I’ve tried these services, and I did not see enough recovered revenue to justify the cost.
That doesn’t mean they won’t work for you, here’s who I think dunning is good for:
- Stores with 5 figures of recurring revenue each month exclusively from Stripe.
- SaaS businesses.
These services do not work with PayPal, so it really only makes sense if you are doing a lot of recurring revenue through Stripe.
Email Marketing
No store is complete without a way to capture leads and nurture them into sales.
Many stores skip creating content, and just offer a discount to get people on their email list. This is the wrong approach in my opinion.
You should be creating great content for your blog, and great opt-in bait like a PDF ebook. This will allow you to build your email list, but what do you do once they sign up?
A service like Convertkit or Drip can help you segment these customers, and create an email sequence to nurture them.
Here’s what I recommend:
- Create great content centered around your product niche, and valuable opt-in bait to get people to sign up for your list.
- Start a drip campaign for all new subscribers that sends them high quality, non-salesy content.
- Go for a soft-sell or limited time promotion towards the end of your sequence to turn subscribers into customers.
You’ll need to do a lot of testing of your drip sequence to know what your potential customers want to see, the idea is to provide value and make sure they keep opening your emails. If you go for a hard-sell up front, that’s a sure-fire way to turn them off right away.
One final recommendation is to segment your list. Make sure you know who has purchased and who hasn’t, you can use the EDD Convertkit add-on to add tags to new subscribers.
This can also be done with MailChimp using Groups and Interests, but it’s not as easy to use.
Conclusion
Easy Digital Downloads is the most comprehensive solution for selling plugins and themes with WordPress.
It’s easy to automatically update your products and restrict usage with the Software Licensing add-on, and earn subscription revenue with the Recurring Renewals add-on.
You can take your business to the next level by earning affiliate sales, and reduce churn and cart abandonment to plug the leaks. Email marketing is a critical part of building an audience for sustainable growth, a service like Convertkit or MailChimp has EDD add-ons that make them easy to integrate.
Nice tutorial, Scott. I’ve just tried EDD on one of my websites, previously I use my own stuff. And I was so confused to configure everything to make it work, especially the Software Licensing extension. It takes more time than I expected (2 days). I hope the settings process can be easier in the future.
Thanks Anh, ya Software Licensing is the hardest part, but it’s still the best way to do it. I’m sure EDD will improve this process in the future.
Once again — great article Scott. Truly helpful breakdown. I can also vouch for EDD. I’ve tried a few and Pippin’ and team kill it.
Thanks Matt! I agree they have a great team and are always improving the product.
Well written Scott. This article summed up pretty much everything we do with EDD right now too. Good to see we’re approaching things in the same way 🙂
Thanks Mark!
Brillant !
Nice read and recommendations. It made me aware of some settings I just overlooked before and I also added a link to the manual in the purchase confirmation email.
I think that one information is wrong though:
“It’s ok to use PayPal standard at first, but to be able to refund purchases through your admin, you will need PayPal Pro.”
I don’t use the Pro add-on for PayPal and can still do refunds through the backend.
Hello,
Thank you for sharing this awesome collection of WordPress plugins.
Disqus & Yoast SEO is one of my favorite plugins. Disqus is a default WordPress commenting system works well for websites with fewer visitors and Yoast SEO will help you to optimize your meta tags without entering into coding. I use this plugin on my website.