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.
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.
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.
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.
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 WooCommerce.com 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 WooCommerce.com, 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.
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 firstname.lastname@example.org!