Lee Willis

February 25, 2014
by Lee

Designing the plugin store

As I hinted at the end of my last post, probably the final step of pre-planning my new plugin store was to think about theme choice for the new store. I’m no designer myself, so a self-build theme is mostly out of the question. Neither am I at the level where I’d consider a bespoke theme development to be required, which leaves me with customising an off-the-shelf theme – an activity I’m perfectly comfortable with.

The problem is…

Most (e-Commerce) themes is that they’re designed to show off the products in the best light possible, and as a result they tend to be image heavy. This is an approach that really doesn’t work well if you’re selling code. Currently my store relies on screenshots on products.

While I think this is really useful in terms of people understanding the functionality available in the plugin, it’s not great for people navigating the store, or “selling” people on the product. So – I’ve decided I need product “icons” of some form.

I’ve not yet decided what they’ll be, or how complex they’ll be. My design skills might stretch that far, or I may be looking for an illustrator who can help me out – but I’m not yet convinced that’s what will be required. 

Choosing a theme

As part of my original research on this project, I’d looked closely at WP e-Commerce, and WooCommerce – both of which have a broad selection of lovely looking themes. Discounting the really image heavy themes there’s still a great deal to choose from.

Since I settled on Easy Digital Downloads, and because it’s not a plugin I’ve spent a lot of time theming, I really wanted something that worked out-of-the box. Unfortunately, while there are a couple of nice themes, there’s not really as broad a choice as there is with other plugins – I think this is the only area I’d score the plugin down in. 

I settled on a shortlist though:

Forelight is great, and would be fantastic for someone selling digital art or similar, but I felt it relied too much on imagery. Quota and Shop Front also got discounted as great as they are, they were a bit too plain. I thought I’d have too much design to do to make them feel polished. In the end, I settled on HumbleShop (Be careful, there’s a normal, and an EDD version of the theme available on the net – make sure you grab the right one).

Aside from throwing a few warnings during installation, I’m pretty happy with this choice so far. As you’d expect from someone who tinkers a lot, I expect I’m going to be throwing a few improvement patches the authors way – we’ll see how that goes. However – first impressions are that it’s going to deliver the sort of experience I’m looking for.

Styling it up

Of course, I won’t be leaving HumbleShop as-is. I’ve created a child theme already and have started playing around with styling and colour schemes. I’ve been browsing colourlovers.com for colourscheme inspiration. Again I had a shortlist (Higher, Wordofmouse & Worf, Winter Olympics, and Breakfast Berries), but after a discussion with some trusted friends – I settled on Wordofmouse & Worf:

Color by COLOURlovers

Actually – when I say “settled” on – that might not be entirely true – after applying it to HumbleShop, I’m not quite sure it works, so it may be back to the drawing board. We’ll see…

February 24, 2014
by Lee
1 Comment

To sell direct, or not?

My recent blogging revival, kicked off by my plans to re-build my plugin store has led to some really interesting discussions on various topics. I guess that’s definitely a plus-point of taking the time to write up my thoughts.

One question I got asked on Twitter was definitely too difficult to answer in 140 characters:

The discussion related to my WooCommerce plugins, some of which are sold directly on my own site, and others which are sold through WooThemes. I admit that I don’t have a hard and fast set of rules which make the decision for me, but the list below gives some of  the factors I consider.

Note: While this is written mainly about selling through WooThemes vs. selling on your own store, many of these apply equally to any other non-direct sales channel.

1. Product similarity

One of the main considerations is the availability of similar products. For example, one of my most popular plugins is my WP e-Commerce Premium Shipping plugin. When I considered porting this to WooCommerce, I reviewed what was already available through WooThemes. Sure enough – WooThemes already sell their Table Rate shipping plugin which covers roughly the same set of features.

It takes a different approach, and the functionality isn’t a 100% match though. Being a believer in healthy competition, I decided that this wasn’t reason enough to not port the plugin to WooCommerce. However I didn’t think it would really make sense for both of those to be available in the same place – it would muddy the water too much – so I sell it myself, through my own store.

 2. Pricing

WooThemes (just like any other marketplace) take a percentage of sales made through WooThemes.com. For simple, or smaller plugins this can puts quite a lot of pressure on the selling price. For some of my plugins, I simply feel that a marked up price would make the plugin too expensive if sold through WooThemes.

3. Likely support overhead

As part of the WooThemes extension agreement, WooThemes provide first line support. If your extension is likely to have issues with badly coded themes, or is likely to raise many questions, then having a team available for support can be a great thing.

4. Eggs in baskets

As the expression goes: “Don’t put all of your eggs in one basket” 🙂

5. Customer ownership

Building up a list of customers allows you to market to them on an ongoing basis, cross-sells, up-sells, product updates etc.

If you sell through a third party marketplace, you might not have that opportunity, and you may be relying on the marketplace to market effectively to their customers on your behalf to drive further sales.

6. Route to market

For me, one of the biggest advantage to selling plugins through WooThemes is that they are a great route to market. If you’re a WooCommerce user, it’s likely to be one of the first stops when trying to find suitable plugins. Not selling through a well-known marketplace (whether that’s WooThemes, the EDD extension store, CodeCanyon or similar) means you have to build your own reputation, work on your own SEO, and driving your own customers.

If you’ve read my planning post, then you’ll know that I’m keen to maintain good schema.org markup, and existing review data. Hopefully you now know one of the reasons why …

7. Supporting the community

WooCommerce is a free plugin. I’d like to think that the money that WooThemes earn on the commission on premium plugins goes some way to supporting the ongoing development of WooCommerce – something that’s in extension developers’ interests.

Hopefully that provides some information on what I consider when deciding where to sell plugins.

February 21, 2014
by Lee

Moving to EDD – Qualification & planning

Once I’d decided on Easy Digital Downloads for my plugins store, the first step was to work out which components of my current / desired setup would be covered by EDD core, which by EDD extensions, and which would be bespoke. From there I could plan properly what work was required.

One of the key reasons I’d settled on EDD was the Software Licensing extension. It’s one of the bigger areas of bespoke code in my current solution and one which causes me a reasonably high maintenance overhead. There’s a couple of aspects of my current system that aren’t in the current extension, but Pippin Williamson did a great job of covering off the few questions I did have about the functionality with a speedy, and well-considered response in their support forums. I’m sure that any bits I really miss I’ll be able to add on, and hopefully commit back.

I’m also grabbing the Review extension. Again, I don’t think it does everything I want out of the box, but the one or two features that I’ll miss I’m confident I can add on. Since the EDD team had a discount for multiple purchases I’ve also been swayed into grabbing the Stripe extension – I’ve been happily using PayPal for the past three years, but I’d like to give another options since not everyone likes PayPal (or gets confused about how to pay via card).

After the initial investigation was done I set about working out some key tasks would be required.

The big thing that became obvious was data migration. I already have a reasonable body of (positive!) reviews on my plugins, and I want to maintain them across the transition. The bigger job, however will probably be the licensing changeover. Not only will I have to migrate existing licence codes into the new plugin, but I’ll also need to make sure that existing deployed plugins can be transitioned smoothly.

Here’s the main list of jobs I identified:

Solution needed for product documentation

My current site has an entirely bespoke setup for linking documentation posts to products. It’s not huge, but does involve a variety of query hijacking that really shouldn’t be necessary. For the new site I’m planning on basing the end-solution off the excellent “posts to posts” plugin by @scribu. I’ve already got a simple proof-of-concept up and running, and this is one area that might make its way out as a plugin in its own right – more in a future post.

Legacy upgrade provider

I need to provide a wrapper around EDDs licensing system to handle existing deployed plugins asking for updates, so that they can transition to the new version.

Licence migration script

I need to migrate all of my existing licenses into EDD. Pippin helpfully provided some outline info about how this could be achieved, so I’m happy it won’t be too much of a drag.

Review migration script

I need to make sure that all product reviews get migrated across, and that the schema.org markup is as I want it. Again the EDD team helpfully answered my pre-sales questions about migrating the data and how easy or otherwise it could be.

GA Tracking in EDD licensing

After an interesting issue in the past I’ve discovered it’s important to monitor the health and activity of services that happen behind the scenes. My current licensing system feeds information into Google Analytics so I can track licence request volumes, and activity to spot any problems early. I’m planning on porting this in some form into the EDD licensing plugin, or as an add-on to it.

Re-write product copy

My product copy is a bit dry, and lacking. I’m planning on running all copy through Hemingway to improve its readability, as well as updating all screenshots, and looking into getting some proper product icons sorted out (Still a bit undecided on the approach here).

Mailing provider

I currently use Campaign Monitor for handling mailing lists, as well as Sales follow up emails. They have a great service, but MailChimp offer some other features (Such as e-Commerce tracking) that are making me consider moving. Another job to be evaluated at some point.

In summary, this won’t be an overnight job, and there’s a lot of testing to do, not to mention the actual re-design …

Easy Digital Downloads

February 20, 2014
by Lee

Moving to EDD

As some of you may know, I offer commercial WordPress plugins over at plugins.leewillis.co.uk. I started the store back in April 2011, and at the time the only real e-Commerce solution for WordPress was WP e-Commerce. My store’s run rock solidly on WP e-Commerce for the past 3 years, and I’ve constantly been impressed by the core team’s ability to manage the complexity of supporting legacy features, installs and themes.

Scratching my own itches building, and running my store served admirably as a source of ideas for many of my free, and paid-for extensions. However, for the last 6 months or so, I’ve been planning a bit of a spring clean. A redesign was on the cards, and there were a few things I’d implemented that have worked OK, but could do with a second iteration and a bit of clearing up – particularly the documentation areas and the product information sections.

There’s a fair amount of bespoke code behind the current solution, from the licensing engine, documentation architecture, and a few other handy tools I use to handle support efficiently. When I talked at WordCamp London in November, hopefully I was clear that I’m a big fan of not re-inventing the wheel. So, I took the opportunity to review what was out there that would allow me to minimize bespoke code.

While I still think WP e-Commerce is a great solution for a lot of stores, it seemed overkill for my own requirements. Fortunately one of the plugins to have arrived in the last few years is targeted specifically at digital products. Easy Digital Downloads also provides some great add-ons that are going to help me minimise the amount of custom code powering my store.

So, with a bit of a heavy heart, I’ve decided to move my store over to Easy Digital Downloads.

I’ll certainly still be working with WP e-Commerce regularly (Actually, I’m looking forward to some changes with the store freeing up a bit more of my time to help out again!), not to mention WooCommerce, but I have to say I’m a little bit excited to spend a little bit more time with EDD.

Addendum: I’ve realised how infrequently I actually use WordPress for blogging, so I’m going to use this exercise to make me blog a little more. I’ll be covering the process, the extensions I’m using, and hopefully also any shareable code that comes out of the process – watch this space …

 Disclaimer: The easy digital downloads links in this post include an affiliate code.

Getting ready for my talk at WCLDN 2013

November 29, 2013
by Lee

WordCamp London 2013

Last weekend I was privileged enough to have a speaking splot at WordCamp London 2013. I’ll leave it to others who have already done a great job rounding up what was an excellent conference. The organisers and volunteers all did an outstanding job and deserve congratulations.

I’m dropping this post here to with a link to the online version of my slides if you want to re-cap, or didn’t manage to make it to the conference. I’ve heard rumour that some of the sessions were recorded – if they appear online I’ll be sure to update this post. In the meantime the slides from my talk “Shipping code for fun & profit” are online at https://leewillis77.github.io/26-things.

The source is also online if you want to fork it (Creative Commons BY-SA).


Photo credit: @ommunist


I'm attending

October 28, 2013
by Lee

WordCamp London 2013

Autumn seems to be conference season in the Willis household, and at the end of November I’ll be off to my 3rd conference in 3 months – this time for the inaugural WordCamp London.

The UK has a solid history of WordCamp events, with the “roving” WordCamp UK sessions hitting Manchester, Portsmouth, Edinburgh in recent year, and Lancaster earlier this years. WordCamp London though is a new event, taking place on the 23rd/24th November with the main session track on the 23rd, and a contributor day on the 24th.

I’m excited not only to be attending, but also speaking at the event – with a talk titled “Shipping code for fun & profit – 26 things I learned by shipping code”. You can see the full list of speakers on the WordCamp London site at http://2013.london.wordcamp.org/speakers/ – if you’re lucky enough to be there I’d love to talk to you.


October 3, 2013
by Lee


This weekend I’ll be attending PHPNW13 in Manchester. It’s my first non-CMS-focussed conference, so I’m really interested from a personal, and professional point of view to see the differences. It’s a conference I’ve heard great things about – so roll on Saturday!


September 18, 2013
by Lee

DrupalCon Prague

I’ll be spending much of next week in Prague for DrupalCon. With Drupal 8 well underway, and some significant architecture changes since Drupal 7 it’s sure to be a great event, with plenty to catch up on, knowledge to be shared and contacts to be made.

I’m there with colleagues from Hydrant, and we’d love to chat!

June 26, 2013
by Lee

Processing feed imports in bigger chunks

Just leaving this here for next time I need this. The change below allows you to change the number of items that Drupal’s feeds importer will process at once.

/* Set feeds importer to import in chunks of 500, rather than 50
 * Ref: http://drupalcode.org/project/feeds.git/blob/b39b547768abbda3b0d7b5425593c0e7c05800f2:/README.txt#l185
$conf['feeds_process_limit'] = 500;

May 11, 2013
by Lee
1 Comment

Adding SKU to email notifications in WP e-Commerce

Adding the SKU (Or other information) to order emails in WP e-Commerce has been an often-requested feature. Up until recently it meant editing plugin files to apply the changes, and remembering to re-apply them on every update.

Thanks to the great work that’s been going on in WP e-Commerce core – there are now a bunch of useful hooks and filters that allow the content to be changed by filters rather than by editing the plugin direct.

So – if you want to add the SKU to your order emails you can just install and enable the plugin below to add it for you.