update: WP eCommerce has updated to 3.8 which makes things much better. Still a few template issues but we’re on the right track. I’ll certainly try to update with thoughts on the update.

This week I’ve worked on 3 different e-commerce projects. Two worked with WP e-Commerce and one with Shopp. Admitely the Shopp work was mainly around getting SSL working properly on the site so I can’t comment on the themeing of the plugin but I can comment on building a WP e-Commerce theme and boy is it ‘fun’.

Get Started

To get started building a theme for WP e-Commerce you have to dig into the plugin and move some theme files into wp-content/uploads/wpsc/themes. Somehow WP e-Commerce can create that folder for you but not move the themes over? The second step is to duplicate the default theme and rename the folder to be whatever you’d like in your theme. Don’t forget that whatever your folder is called your stylesheet also has to be called, which seems pretty stupid to me. Why doesn’t it just recognize a styles.css file in any theme?

So now that we’ve got a theme going there are a few more questions. Why on earth can’t you just place the theme files into the main WordPress theme? Sure keep backwards compatibility so that the current system works but for those doing some type of automated deployment of themes (like me to multiple servers) I’ve now got to setup a totally different deployment scheme for the e-commerce theme. Since I also work in Git all the time I always exclude the uploads folder because I don’t want to automatically deploy images to servers where they aren’t linked to a corresponding post. So yeah I have to set up a new git repository then go over to Beanstalk and set up a new deployment. It’s just another thing that makes WP e-Commerce a pain to work with.

It Gets Worse

While the few items above are just little complaints that cost me time, we really get into some terrible when we crack open the default theme for WP e-Commerce. It seems that the developers of WP e-Commerce don’t know what an include is in PHP. Want to modify the breadcrumbs code? Yeah that’s in 4 files. How about the purchase button, again in 4 files. This is a sign of bad programming. It’s a programmers axiom that as soon as you use the same code in more than one spot you need to abstract that code and move it into a spot where it can be accessed from both files. Then updating becomes a matter of just one change which will propagate across multiple files. I took it upon myself to try and fix this by taking the default WP e-Commerce theme and using includes.

The other item that really bugs me about the duplication of code is that if you were able to move all the WP e-Commerce template files in to your WordPress theme you’d be able to take advantage of all the WordPress goodness that stops code duplication like get_template_part and locate_template. Alas you can’t have the template files in your main WordPress theme so you can’t.

Now I’ve take a look at the themes for the 3.8 release and they’ve done some clean up in the duplicated code world but there is still some more work to be done. Breadcrumbs are now built out of a single function call, we’ve got improvement but there is still a bunch of room for more.

Oh It’s Worse than that

Sure code duplication is pretty dang bad but there is something worse to be found inside the guts of WP e-Commerce. Thickbox effects for the design side are built right in to the plugin. Don’t like the Thickbox effect on the alternate image? Guess you have to hack the plugin to remove it then write your own functionality. I honestly can’t fathom why the effect is ‘required’ in this manor, especially since when you look up the Thickbox site it’s not even supported.

WP e-Commerce should have an option (or something) that lets you turn off the javascript effects that are purely presentational like Thickbox. Sure keep the stuff that lets the cart get updated by AJAX but if it’s purely presentational let us turn off the default easily.

And the Icing on the Cake

Again I’ll state that I’m looking at all of this from a Theme Developers perspective so I’ll admit that many people may not have this issue. To get alternate views Gold Cart is required, which is entirely fine I don’t mind supporting good work by paying for it. I own Gravity Forms, WP Touch Pro and a number of plugins from Plugin Buddy. What is so terrible about Gold Cart is that the single license is just that, one working copy of it.

At the very least Gold Cart should work fine when running on localhost since it’s on a local development machine. I understand that they want to ensure people pay for the plugin by having it really only run in one registered environment, but this is a PITA. It’s not like I’m using the plugin to make money while it’s running on my laptop so there is no real reason to have this limitation.

Is There Anything Good?

So after all that you’re probably wondering if there is something good about WP e-Commerce. WP e-Commerce is the only WordPress ecommerce plugin that has a single page checkout. Shopp has a 3 page checkout which means you’re going to loose sales on each page. Remember the title is talking about theme developers not store owners. For store owners this is a decent plugin that will keep your sales with the single page checkout, it’s just going to drive your web developer nuts (yes more nuts that they are already).

So overall I’d say that WP e-Commerce is a plugin I’ll keep recommending to clients despite the broken drag and drop ordering functions, terrible theme building experience and reliance on Thickbox inside the plugin not the theme. I’m going to do this because at the end of the day my clients business care most about a single page checkout. That’s what will bring them the most money and heck taking all this extra time to build means I make extra money too so we both win (well sorta).

13 responses to “WP e-Commerce – A Theme Developers Nightmare”

  1. Laurie Avatar

    I’ll never use that plugin again… One theme build using it was enough, I found it caused more problems than it solved. I’m still on the hunt for a better e-commerce solution for WP…

    1. Curtis McHale Avatar

      That’s the problem while the other solutions might have a better theme creation experience they have poor checkout which means our clients don’t convert sales well. At the end of the day we are supposed to help clients accomplish their business goals not make sure we have the best experience. I’m totally looking for a plugin that has a great theme creation experience and a checkout that clients need for sale conversion.

  2. Ron Avatar

    Just in the fyi category- the reason most shopping cart have a 3 (or more) page/click process is that it significantly reduces the number of purchase disputes the business has to deal with.

    A one click process makes “I clicked the wrong link/button by accident.” plausible.

    If you’ve ever bought a domain through godaddy you’ve seen the number of clicks & screens you have to go through to purchase a domain. It’s pretty difficult to argue that you “accidentally” bought the domain.

    Obviously, some clients are going to want the one click purchase. There are lots of products that likely have a low dispute rate where the one click will be fine.

  3. Brian Avatar

    I’ve been looking at several eCommerce solutions that integrate with WordPress and I boiled it down to WP e-Commerce and Shopp.

    Looking at some examples of Shopp I noticed that one of the sites showcase does a “one page” check out.


    I’m not great at programming and can’t figure out how they do it.

  4. martin Avatar

    did you ever figure out what they use on their one page check out?

    1. curtismchale Avatar

      Nothing in particular you just have to work at building it yourself. I’m not sure if it can still be done with the 3.8.x version we’re currently on but the guys at BraveNewCode have a 1 page WP eCommerce checkout already.

  5. Alastair McDermott Avatar

    Hi Curtis,

    I’m interested if you’ve got any more updates to this – I’m trying to evaluate a few shopping cart plugin options at the moment and the one page checkout is such a big plus it’s hard to look past this plugin.


    1. curtismchale Avatar

      Sorry Alastair looks like I missed your comment. Anyway the more I use WP eCommerce the less I like working with it. Stuff just doesn’t work as it’s supposed to. I’ve been fighting it with the built in PayPal payments this week, FedEx was last week. I’ll be using/trying Woo Commerce next project just to see how it compares.

  6. nacho Avatar

    I have installed WP-Commerce once and I promiss I wont do it again. It’s a time consuming plugin, with zero support even with gold cart update and several problems and bugs.

    1. curtismchale Avatar

      Yeah I’ve been less and less impressed with WP eCommerce. The support (or total lack thereof) is one of the most maddening parts of the plugin. I certainly understand that support gets expensive as you get more customers and you need to make money somehow but probably 90% of the time I post I don’t get a response of any type from anyone. I’ll be looking at Woo Commerce, Cart 66, and Shopp for future projects. The extra time I’ve spent on the last few projects easily covers paying for something that has some support and good documentation.

  7. Harley Avatar

    To those wondering about the one page checkout shown on http://www.eternalbeautyproducts.com.au, it’s more of an optical illusion.

    This still uses Shopp’s standard 3 page checkout process, but the cart.php template includes a version of the forms present on the checkout.php template with all of their fields disabled.

    1. curtismchale Avatar


      I didn’t know that actually. I’ve worked with Shopp but never had to try a one page checkout. I knew it was possible from the guys at BraveNewCode (it’s on their site or they did it for someone). Thanks for clarifying.

  8. StevenZed Avatar

    I also attempted to use this and after about 2 days of trial, I have given up. My reason was the lack of features. I wanted to replace my current ASP.NET ecommerce site, but this turned to be a dead end. I now work hard on replacing my site using magento despite the fact everyone says the learning curve is too long. So far (after 3 month of fooling around) reasonably impressed still.