Editor’s Note: This post was written based on an interview with Justin Sainton.
Justin is the founder of Zao, a WordPress Agency, and Lead Developer of the WP eCommerce Plugin, which was the first eCommerce solution for WordPress. He’s also a WordPress core contributor, proud husband and father, and founder of BeachPress.
Thanks so much for chatting with us! Let’s start with the WP eCommerce plugin. As the lead developer for WPeC, can you give us an overview of what you do?
Yeah, absolutely! So for WP eCommerce, my role can be split in three main areas: Development, Strategy, and Community. First and foremost, I am a developer. I’m in my element when I am crafting APIs, solving interesting backwards compatibility issues or paying off technical debt in our codebase. I’m lucky enough to work closely with dozens of other incredibly talented contributors that help make WP eCommerce what it is.
Beyond that, I spend a lot of time thinking about the eCommerce landscape in general. Not just within the WordPress ecosystem, but as an entire industry and way of transacting in general. Keeping my mind on the big picture helps me shape a better vision of where I’d like to see us end up within that overall picture.
Finally – community is what most people find so attractive about open-source software. I run an event called BeachPress – this year, we’ll have 30 developers from all across the continent in a beach house for a week. Our only common bond is WordPress. It’s going to be a smashing success because we all have found something of a community within WordPress that we place an incredibly high value on. Within the context of WP eCommerce, I do my best to ensure that we have a thriving, welcoming community of customers, developers and contributors.
- When should WPeC be the top choice as an eCommerce plugin? What kind of stores is it best for?
All of them! Ha, I kid. We’ve been around since 2006 (Back when WordPress was still in diapers!), so I’ve seen literally every kind of store you can imagine using WP eCommerce. From stores that sell subscriptions to razors for men to stores that sell digital icons for designers to your standard brick and morter T-Shirt stores and everything in between. We’ve seen stores that only ever do a few hundred dollars per month in revenue to stores that do millions of dollars per year and tens of thousands of orders. So the sky really is the limit.
That said – I’ve really enjoyed a personal and professional friendship with Pippin Williamson of Easy Digital Downloads. Whenever I find a client that is looking to do only digital – it’s fair to say that WP eCommerce is a bit more than is needed. EDD does a phenomenal job for that.
- WPeC has been around longer than custom post types and other WordPress features that make it easier to create an eCommerce plugin. What challenges have you faced in keeping the plugin updated and on top of the latest WordPress capabilities?
That’s a fantastic question. As I mentioned earlier, WP eCommerce has been around since 2006. If I recall correctly, it was probably first released around WordPress 1.5. I’m not sure if anyone really remembers what that looked like, let alone what it was like to build a plugin for WordPress in those days – needless to say, the effort was herculean.
Back when I first got involved in the project, it was roughly the end of 2009 and beginning of 2010. At the time, we were pretty much the only platform doing a solid job of a general eCommerce plugin for WordPress. One of my very first initiatives in the project was to be a part of the efforts of moving from custom architecture for everything (at the time, I believe we had 31 custom tables) to utilizing custom post types and taxonomies for everything. I believe by the time we were done, we had nearly complete backwards compatibility and had cut the custom tables created down to less than half of what it was previously. A massive effort, but quite worth it.
To speak to the challenge of it – the most significant challenge for us has been backwards compatibility. We would consider our firm commitment to backwards compatibility to be one of our distinctives as a project. We will never intentionally break backwards compatibility. That doesn’t mean it has never happened – but never intentionally 😛 . The commitment to backwards compatibility requires some less than desirable approaches to some edge cases, but for us, it’s worth it. Also, our committing developers have more “props”, or code contributions to WordPress, than any other eCommerce project I’m aware of. What that means for our users is that when WordPress changes or evolves, so do we.
- Wow, the changes in architecture are massive. I know a lot of developers like to gut their code and start over, which is probably a lot easier, but props to you guys for maintaining compatibility.
Aside from the massive changes the plugin has undergone as it has grown, what’s the number-one thing people should know about WP eCommerce that they don’t seem to know?
That it’s getting better all the time 🙂 . Naturally, a plugin that has a history as long as ours has a TON of technical debt. We’re paying that down all the time. As of a few releases ago, we had 90,000 lines of code! I’ve been working on it for 4 years now and there are still times where I find code I haven’t seen before. I was lucky enough to make a single commit earlier this year that brought us down closer to 70K lines of code or so, which felt great 🙂 .
But given the legacy we have, there are a number of folks who gave the plugin a try a few years ago and possibly had a less than stellar experience. Through the hard work and diligence of so many contributors, WP eCommerce is a very different plugin (and a different project) than it was a few years ago.
- Great to hear that you guys are addressing some of the performance issues and streamlining the plugin.
Speaking of code you’re cutting or refactoring, what about integrations? There are several integrations in the core plugin already – do you plan on building more features / integrations into the core plugin, or are you going to take the add-on route for new additions?
To piggy-back on the last question, another thing people aren’t often aware of is that WP eCommerce was one of the first commercial plugins that actually did the Freemium or “Add-On” model. If you look at the codebase circa 2007, you’ll find custom actions and filters scattered throughout from all the way back then. So to speak to this question – yes 🙂 .
I don’t actually see it as an either/or proposition. We choose to align ourselves as closely as possible with the same philosophies as WordPress. When it comes to adding something to core, it has to be something thatn 80%+ of our users will benefit from. We favor decisions over options – while we have a history of TONS of options, we’re working at paring those away in favor of more strategic decisions that help people get their stores up and running more efficiently.
So yes – we’ll absolutely integrate more features into the plugin when it makes sense to – and continue releasing add-ons for features that don’t make sense for core.
- There are a couple of big releases coming up. Can you tell us what’s on the roadmap? What are you excited about building?
Yeah, we’ve got a minor release and a major release coming up pretty quickly that we’re really excited about. The minor release, 3.8.14, introduces a lot of great enhancements and fixes. We’ve streamlined a lot of the product editing UI, resolved a ton of edge case shipping issues for external shipping rates, improved our customer meta data architecture – and a TON more! It’ll will be quite the effort to even write the change log. 🙂
For 3.9 – it’s actually going to be quite the revolutionary release for us. One of the oldest, most frustrating areas of our codebase has been our entire theming process and all the code surrounding it. We’ve invested a TON of effort, energy and resources into a completely new theme engine that will be deployed with 3.9. We’re as excited about this as we have been about anything. The entire theme engine has been crafted around the latest research in usability – so on a default theme, right out the door, you’ll have one of the most usable eCommerce workflows of any eCommerce site out there. From a development perspective, crafting themes for the new theme engine will be a night and day experience when compared to the current theme engine. There is a load of other stuff going into (and coming out of) core for 3.9 – so we’re incredibly excited about what that will all look like.
- How about Zao – what kinds of projects do you specialize in?
- Naturally, we do a ton of eCommerce development and consulting. Not just with WP eCommerce, either – we’ve worked on fantastic projects with nearly every platform (in the WordPress ecosystem and outside). Beyond that, we do some WordPress VIP work, some sub-contracting with different agencies in the WordPress world. Anytime we can solve an interesting problem with WordPress, that’s the kind of project we like to work on.
- What are the most common mistakes designers and developers make when creating an eCommerce site?
That’s a great question! I wouldn’t consider myself as someone qualified to speak on design of any kind 🙂 . That said, most eCommerce designs or themes I’ve seen tend to be severely lacking in what I would consider important hallmarks for eCommerce. It should be beautiful and work beautifully. It’s as simple as that, but so many miss the mark.
As far as developers creating eCommerce sites – probably the most common mistake I see is developers not being quite as paranoid about security as they should be. I cannot tell you how many times we’ve been brought in to audit a project or help finish up a half-completed project and found severe and exploitable vulnerabilities in the code. Security is such an important perspective to be developing from on any project – but eCommerce projects up the ante considerably.
- Any favorite plugins / frameworks you use in your projects?
Aside from WP eCommerce? 😀
Kidding aside, I don’t use frameworks too often, and many of the projects I work on require custom development. So I can’t say I have too many plugins or frameworks that I use on every project. That said, one plugin that has become absolutely indispensible for my plugin development is Query Monitor. Lest the name mislead you, it does far more than monitor slow SQL queries, though it does do that beautifully. Many of your readers who are developers may already use it, but if any are not using it – start now!
Thanks so much to Justin for taking the time to talk with us! We’re definitely curious to see the growth of WPeC, as we’ve noticed that it’s gotten better and better. We’re excited to see what the 3.9 release brings and will have a review ready for our readers!