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!

WordPress is a Copy-Cat Business

I know what you’re thinking. He doesn’t have the decency to save his rant until the weekends. How rude! On top of that, it’s a rant without images and links. I’m testing your patience. I know. On with the rant…

Now that WordPress copied Tumblr’s way of publishing with the addition of post format UI in the upcoming 3.6 release, we can all breathe a sigh of relief and kick originality out the freakin’ door. I’m not saying this is the beginning of a trend. It’s more like the last straw for innovative thinkers in the WordPress market.

Since the beginning of the WordPress economy back in… 2008-ish, WordPress and its community have been absorbing the best ideas from each other, other CMS, markets, and what have you into their own projects and into WordPress core. If your plugin is any good, it’ll show up in core and you can kiss your business goodbye. If your theme design is any good, a bigger theme company will copy and sell it to their own customers. It’s the nature of GPL. Continue reading

The Trouble With No Grandparents in the WordPress Community

Grandparents love us because they see an opportunity to correct their parenting mistakes. Unfortunately for you, you’re a WordPress child and when parents fight, there’s no one to run to. WordPress lacks grandparents, entities that have your best interests in mind and regardless of your behaviors. Guidelines and Policies

There are pros and cons to the way and WordCamp (extension of are run. I’m here to argue for neither. has the right to do whatever it feels as a website and organization. I deserve the same freedom on

What’s troubling for me personally is how a massive site like continues to make decisions against the interests of the community without consequence. Every couple of years, something new gets established at We’d argue about it at the expense of someone’s blog for about 100 to 200 comments and then learn to live with it without compromise.

Surprisingly, we have no influence on the hub we contribute to. It’s like an immune system trying to a keep a person alive, but he/she can’t stop getting sick. Even if it’s for a good cause like running for a healthier body, you shouldn’t run 20 miles on the first day. Maybe , you ( should learn to listen to your body (community).

Compromise and Take Care of Your Kids

That’s what parents do for the good of the family. Some suggests Automattic should create a 100% GPL compliant market to replace ThemeForest. That’s a no-no. When parents fight based on personal interests, they need to compromise, not win. When one side wins, you get even less freedom.

Create Grandparents

The WordPress community needs a new WordPress centric place to simply exist without strict guidelines.

  • a place to act as a hub for communication
  • an unbiased source where we can read the news, learn, and exist without the filters that are and
  • a place to meet up for online events
  • and maybe a free market will grow from it without affecting the .org side of your WordPress life

Why do we, one of the biggest communities online, spread ourselves too thin across Twitter, Facebook,, Google Plus, etc.?