Launching an Extension in the WooCommerce Marketplace

I launched an extension in the WooCommerce Marketplace! It’s been three years since I came up with the initial idea and it’s exciting to see it being sold on

For anyone interested in selling WooCommerce products, I wanted to share some thoughts on the process.

Coming Up With A Product

The extension idea originally came out of a client project. A company I worked with acquired a lot of their new customers through Facebook advertising, and they wanted a way to offer those new customers a big discount on their first purchase.

The first version of the extension took a couple days to build. It simply added a checkbox to the coupon editor for marking coupons as “new customer only” and validation on checkout. From that basic idea, I then started to add other restriction options I thought would be useful.

WooCommerce client work is great source of extension ideas because it requires solving a real need for a customer (and is something they’re willing to pay for).

To get the extension idea accepted to the WooCommerce Marketplace, I also had to prove that others wanted this functionality. Luckily, a number of people had also requested this on the WooCommerce idea board as well.

Marketplace Review

I submitted the extension to the WooCommerce Marketplace March 10th, two days after it re-opened to third-party sellers. The extension was officially approved May 24th and went live June 28th. So, I’d encourage anyone going through this process to have patience.

The Marketplace Review consisted of three main parts: a user experience review, a code review, and a support review/setup.

UX Review

I really liked that UX was first in this process. My reviewer had a number of great questions and suggestions. Some of the feedback required small tweaks, like changing a select field to radio buttons, or updating field label text to be more consistent with WooCommerce core. Others were more involved, like adding an entire onboarding sequence with tooltip pointers when someone first activates the extension.

The idea behind a UX review is that the interface should be as intuitive as possible. Most customers don’t bother to read the docs before contacting support, so having a great onboarding sequence and clear labels really helps everyone.

Code Review

The code review happened after the UX review, and just consisted of a few architecture recommendations. But one of the recommendations was to switch from using the stored customer data (for location restrictions) to session data (in case the customer changed address fields for shipping, etc), which called for a major rewrite of the codebase and took a number of days to complete.

To make sure the code was 100% solid before selling it to Marketplace customers, I also asked another developer I know to do a code review (paid). This gave me a number of great additional improvements. Most were under-the-hood code styling tips, but it also flagged a potential performance issue that could happen for stores with high order volume.

Automated Tests

Unit and integration tests are essential for any WooCommerce plugin. I discovered this the hard way when the first version of my plugin worked perfectly for coupons that had a new customer restriction, but broke checkout for all other coupons.

The plugin now has 19 different integration tests, which ensure coupons work with all the different restrictions applied (or none at all applied). It also runs against different versions of WooCommerce (which is great when a new version is being released) and multiple versions of PHP. I run the tests frequently when updating code, and the test also run automatically on Travis CI every time a commit is pushed to GitHub.

Although automated tests won’t catch every bug, it allows me to test against new versions of WooCommerce core much quicker and provides a greater level of confidence when releasing new code.

Pricing and Sales

The WooCommerce Marketplace doesn’t give you a lot of control over pricing. There are a few different price tiers based on the amount and complexity of functionality being added. As a fairly simple plugin (especially compared to something like Subscriptions or Memberships), my extension was priced at $49.

WooCommerce returns 60% of net sales to the extension author. That “net sales” part is important, as your rate is calculated after discounts, refunds, reversals, affiliate fees, payment processing fees, and taxes.

For instance, I’ve have 25 active subscriptions this month, but also had a 50% off sale for their 10th anniversary this month, which is when a lot of those sales happened. Total revenue for the month is $805, which is about $32 per unit (rather than $49). And my commission is $384 (about 48%).

This will probably be an outlier month because of the big sale, but it’s something to consider as you decide whether to launch on Marketplace.

Benefits of the Marketplace

I sold this extension through DevPress for about a year before listing it on the Marketplace and had about 100 sales. It’s pretty neat how many people actually found the product through a search and were willing to purchase through a site they had never heard of before.

But selling through the WooCommerce Marketplace has a lot of advantages. Here’s a few:

  • The vast majority of shop owners and developers have an account and credit card registered with, so there’s way less friction for purchases.
  • The Marketplace handles licenses and automatic updates. You don’t need to add any additional code to your extension, it just works.
  • License renewals! Although a customer doesn’t have to renew, they’ll see a notice on their site if they’re using an outdated version of your extension- which should encourage them to keep their license active.
  • WooCommerce does the marketing for you. They have an affiliate program and also run promotions.

Worth the Effort?

I wish I had tracked hours on this extension from the beginning. It was at least 200 (and likely quite a bit more). Would I have been better off financially by just taking on a freelance WooCommerce jobs with this time? We’ll see. The extension will need to earn at least $30,000 over its lifetime to match a freelance project of the same hours.

In the first month live, it’s earned $384 in commissions (with 25 active subscriptions)

This may not seem like a lot, but if half of those renew their license when it expires, one year from now I’ll earn an additional $588. It’s definitely a business that can grow over time if people like the extension and keep it active on their site.

Final Thoughts

I enjoyed building this extension. It gave me an opportunity to get more familiar with the WooCommerce codebase, gain experience with feature testing, and help out a number of people who needed this feature for their site. It was also neat to see sales on the first day- that doesn’t always happen with a new product.

However, I’m really curious to see how the extension sells over time and what the support load is like. I have a few additional extension ideas, but am hesitant about investing the time until I see how this first one does.

If you know anyone who uses coupons with their WooCommerce site, please let them know about the extension! If you’re thinking about launching your own extension in the WooCommerce Marketplace and have any questions, feel free to contact me at!

Thoughts on Theme Options

One of the most difficult decisions I face when building a new theme is which customization options to include.

It’s an incredibly difficult feature to balance. Customization options can make it possible for a single theme to be used for a greater variety of websites (which is good from a sales perspective), but it can also make a theme more complex to set up and customize.

Many of the best-selling commercial WordPress themes are ones that allow non-developers a huge amount of customization choices. Avada, Canvas, Divi, Make, Total and X Theme all have hundreds of settings. The big website platforms like Squarespace and Wix also provide a huge amount of design control.

Options Are Both Popular and Complex

I understand why customization is important. One of the main purposes of a website is to express a brand or identity. Customization of fonts and colors can be hugely important. When I helped my wife set up her first WordPress site years ago, I installed Canvas by WooThemes because I knew she’d want something that could be altered to fit her specific design aesthetic (and I didn’t have time at the time to customize it for her).

But even with a thousand options, there’s no way that everything can be customized. And adding many options has a downside: it increases the complexity of the user interface and code. Continue reading

Zelda Released, Zenith Retired

Zenith was the best selling theme on DevPress, so it may seem like an odd move to retire it. However, we’re introducing a new theme today called Zelda designed to take its place.


Everyone who has an active license for Zenith now has access to Zelda if you’d like to switch. You can also choose to stay with Zenith if you’re happy with it (DevPress will continue support for a year and release updates as needed). Continue reading

Introducing Summit


Summit is a simple one-column WordPress theme, perfect for blogging and small business. It features large header images and a number of customizable display options. Social icons can be added to the header. A customizable widget area is available in the footer. Summit is also responsive and looks great on desktop and mobile devices. I encourage you to check out the demo to see how it looks. Continue reading