Being a computer programmer typically means all of your friends and family immediately assume you a) can fix their wireless router and b) want to. For the same reason we often get asked to help make a website, blog, webstore, killer web 2.0 app or all of the above – which in the most part I can’t help with through lack of spare time. But I did manage to fit a WordPress + WP-E-Commerce project in, and this is a case study of that development project in particular, comparing WP-E-Commerce to Magento.
My girlfriend Cindy asked me to help with her latest venture, Cheap Titles – so naturally I helped whip up a site. Despite spending most of my time developing Magento, I actually thought I’d give the WordPress + WP-E-Commerce combo a try. I’ll summarize my rationale for that in the next section – suffice to say it made some things a lot easier.
So this is a little blog post that summarizes my experiences making the site with WP-E-Commerce, what I noticed different about the platform, as compared to Magento – and in particular how I found the underlying code quality of WP-E-Commerce measured against Magento.
Why WordPress not Magento?
Firstly, why would a Magento Developer like me even consider any other option? Seeing as the site didn’t need an extensive catalog, or any flashy features provided by Magento it wasn’t an immediate choice to go with Magento. WordPress is much a easier, lightweight option. It is easier for non-technical people to work with than Magento too which is important as I didn’t want to be dealing with questions like why isn’t my product showing up?!
One of the other requirements was for a blog. I know Magento has some blog extensions, and I know that you can integrate WordPress and Magento a number of ways – my favourite is Branko’s technique to have WordPress wrapped by the Magento header and footer.
I didn’t use the extension, because I don’t like the idea of using a blog that isn’t WordPress, just because it’s what I know well and it’s so widely used that you can Google almost anything and someone else will have had the problem too. The integration would have worked, but increased the effort required quite considerably, for no real gain given the Magento functionality would have been an overkill (think add to compare, layered navigation etc).
So that’s the why; simplicity and blogging.
Building Cheap Titles
If you’ve ever met me you’ll know I haven’t got an artistic bone in my body, so naturally the site was built using a customized version of a paid template. I used Appcloud, by Tokokoo. I will go on record as saying I wouldn’t buy another theme from this crowd, in fact some of my code criticisms (below) are more the fault of the theme than the underlying WordPress plugin.
Aside from that, building the site has mainly just been a process of me tweaking the CSS and PHP code, and Cindy adding products and content. It has gone along smoothly and quickly as planned, the site is now live and taking orders.
What Worked Well
Several things were very easy to set up and have worked well on the site. Here’s my highlights list:
Adding a custom field for the title address – This worked nicely, just re-purposing the Personalisation Options for a product. In Magento this would be a custom field on a product, so it is quite achievable there too.
Payment methods and Checkout – compared to Magento, payment setup in WP-Ecommerce is quite simplistic, and a refreshing change. The paypal integration just worked right out of the box too, which was nice, the checkout page is a simple one pager, where you can control the form fields very easily. On cheaptitles.co.nz we only needed 3 pieces of information (name, phone and email) – in Magento, customizing the checkout process can be a bit of a pain!
Adding Products – The product form is a simple one-pager, there’s no real way to mess it up and it has all the features we needed for the site – a title, description, an image and a price – that’s it really.
Blog Integration – As I said earlier, although Magento can do this, there’s nothing quite like a native WordPress blog for simplicity.
What Didn’t Work So Well
I have had to fix several bugs with the theme, and have improved other areas. The theme seems to be a bit of a hack really, here are some of the issues I’ve had to fix.
The checkout button (the most important one on the site!) did not work with Internet Explorer. Yes, completely failed. The HTML for the button had no type=”submit” which it seems Firefox will infer is for submission, but IE just does nothing when the button is clicked (try it yourself). So this gives a bit of insight into how well these themes are tested, an ecommerce theme that doesn’t let you checkout on the worlds most popular browser, simply isn’t helping you do business.
The pagination failed (current page == max page
not >=
), so Google has indexed about 160 pages of nothing:
This has now been fixed with redirection, and I’ve disabled pagination altogether as the store will never have more than a page full of products. But it’s a trap for people new to building sites that may not check things like that. It’s a sure fire way to put Google off crawling your site if you get it’s Google Bot trapped in an infinite loop of empty content pages!
Thoughts On Code Quality In General
From a developer point of view, the difference between Magento and WP-E-Commerce is a gulf. WP-E-Commerce is descended from the php-as-a-web-script world where your .php file contains everything; business logic, rendering logic and data access. This makes reading and editing it feel like a trip down memory lane. That’s because at university before you really start writing commercial software, you just hack all your code together in great big long files, because it seems easier at the time. In fairness, there is some modularity, and even a theme framework within WP-Ecommerce, but it’s no substitute for an object-oriented modern application.
The reality is, the older architecture makes the code hard to read, extend and refactor – and this certainly affects WP-Ecommerce. My development technique basically involved finding a string that I expected to see in the source code (a CSS class, or output string) and then grep
‘ing for it in wp-content
.
To give you an example take a look at this snippet from the checkout processing code:
case "delivery_country": if(wpsc_uses_shipping() && (get_option('use_billing_unless_is_shipping') != 1)) { $country_name = $wpdb->get_var("SELECT `country` FROM `".WPSC_TABLE_CURRENCY_LIST."` WHERE `isocode`='".$_SESSION['wpsc_delivery_country']."' LIMIT 1"); $output = "<input title='".$this->checkout_item->unique_name."' type='hidden' id='".$this->form_element_id()."' class='shipping_country' name='collected_data[{$this->checkout_item->id}]' value='".$_SESSION['wpsc_delivery_country']."' /><span class='shipping_country_name'>".$country_name."</span> "; } else if(get_option('use_billing_unless_is_shipping') == 1) { $output = wpsc_shipping_country_list(); } else { $checkoutfields = true; //$output = wpsc_shipping_country_list($checkoutfields); $output = wpsc_country_region_list($this->checkout_item->id , false, $_SESSION['wpsc_selected_country'], $_SESSION['wpsc_selected_region'], $this->form_element_id(), $checkoutfields); } break; |
We’ve got some web output, business logic and some database access all in the one little place. This is a very different architecture to Magento (MVC + EAV), and it’s easy to see why an application like Magento is able to grow and add new features and functionality at a faster rate, without collapsing under it’s own weight. Having said that, Magento is a lot more complicated, not only for users, but for developers too.
This of course ignores the speed of the application, Magento requires considerable resources and optimization to perform well. As with everything, there are trade-offs.
Conclusion
Now that the site is live and selling certificates of title like hotcakes, I’m in a position to reflect on whether I’d do it the same way again. The reality is that despite the problems and issues with code quality I have outlined, I still think the site came together quicker, and will require less maintenance long term, than a Magento site. So yes, for sufficiently small store projects, I’d do it again.
Thanks Ashley for the comparison review. Very insightful.
I know that the WP ecommerce guys (Instinct) are working hard on re-factoring the current code and getting away from the PHP 4.x compatibility requirement. With the announcement that WP will move to PHP 5.x only this will help.
Cheers Robert – good to know, they have a great solution, a bit of a code revamp will make it a powerful tool for developers. Were they at the WordCamp?
Hey Guys.
I’m Dan from the WP e-Commerce Plugin. Nice post!! Thanks for trying us out and using our software 🙂
For those of you who don’t know, we’re really working hard on a new 3.8 release. Essentially this update will bring our Plugin inline with the latest WordPress standards – of course part of that is tidying up code as we go. The really massive code “overhaul” is coming in 3.9 – to help us we’re even employing a number of the core WordPress contributors – its going to be the best there is and I’m pleased to say that we’ll be moving as close to an MVC framework as we possibly can.
So Whether you’re a WP e-Commerce user, a YAK user, a ShopperPress or a Magento user we don’t really care, once you’ve used 3.8 / 3.9 you’ll be all over us (well at least thats the plan). All we care about (as an Open Source project) now is making sure that 3.8 & the impending 3.9 versions are indeed stable and revolutionary.
Here are a few links that I’d like to share with you regarding upcoming versions:
1) http://getshopped.org/news/3-8-a-new-look/
2) http://getshopped.org/news/road-map-draft/
Thanks again for the link / story.
Best,
Dan
I was in real dilemma, whether to use oscommerce, Magneto or WP ecommerce for a small ecommerce website. Former two being too big files, I hesitate to use for small online shop, in case system files are heavier than acutual products this site gonna sell.
I am now pretty convinced with WP ecommerce plugin after going through this article.
Thanks to you.
Glad to hear it helps Mahesh – let us know how it goes.
Hello Ashley,
Insightful post, i mostly work with WordPress theme for more than 2years and i never worked on e-commerce website. I heard a lot about magento but i regret you re only saying “it is more complex and powerful than WP- e-commerce”
To wish extend is it more powerful?
I am actually thinking about doing a small e-commerce part while redoing a travel agency website. It would offer to buy tour packages(no more than 40) but user will have to input some information on a form.
For such use, would you recommend Magento or WP- e-commerce?
Also, your article being written 1 year ago? Have you see improvement in WP e-commerce pluggin bringing it closer to Magento?
Hi, Charly – I haven’t upgraded WP e-commerce actually, so I’m not sure how it’s improved but I understand the team have been working hard on it so I’d expect it to be better. I think if you’re building a large site, with a plan to continually develop it then Magento is probably a sounder platform. For a smaller site that isn’t going to change much you could get away with a quick WP site build probably. Your mileage will vary though, do a few hours of prototyping with each and see how you go.
Hey Ashley –
Great post. Thanks 🙂
Are you comparing wp e-commerce to magento enterprise or magento go?
Thanks
Libby
Comparing to community edition. Magento Go would be an interesting comparison – but it gives up a number of options for customization.
Hi Ashley,
The site is pretty lovely and that’s a really nice idea. Your girlfriend & team doing great work bringing those information available in such an ease.
I didn’t understood the service from the the site headings “Titles”. I didn’t know that it is called so. But definitively I’ll call it a real modern service website.
And hat’s off to you. You made a great decision and brought the website in a manner that the visitors just need to go into the site get his/her desired stuff and come out and use it within just few minutes. I’m writing a book on design and strategy. I’ll definitely include this example.
Hope you both do well in life.
Thanks
Sanmaya
CTO, 8i Creations
Hi Ashley… very useful comparison. Any thoughts on where MarketPress fits in the mix… simplicity/comprehensive, difficulty scale, integration with WordPress, best kind of site to use it for?
Even if MarketPress does not have all of the features of Magento, could it still be a better choice since supposedly it integrates well with WordPress and BuddyPress and Mutisite … AND you then could accomplish many things with the added features of those platforms?
Thanks. This is a superb comparison mate. Have you used the newer JigoShop? Love to hear your thoughts.
(And pls email me if you compare it! Your blog doesn’t have a “Notify me after an update” feature.)
Thanks for this comparison; it’s just what I needed to make a decision on a new site I have in the queue.
Does Word press have a true shopping cart to add multi product and do one transaction. Does it also allow you to have a monthly subscription functionality so the user can sign up to purchase on an on going monthly basis.
The site will also have an A-Z database so the user can search for a particular key word.
I have a project that I am trying to decide whether to use Magento or WP, the client will probably have no more than 30 products.
Any help or advise would be good
cheers
I really believe that WP should stay where it is: as best blogging system and when one tends to serious sell things, to us Magento and otheres, specialized in ecommerce.
Wow. Excellent post. I have been fiddling around with various solutions for two small to mid-sized eCommerce sites, and this is exactly the type of thing I needed to see.
Well done, sir.
Karl A. Krogmann
Fantastic blog post! Stumbled across it on Google while researching whether or not to step a new client up to Magento or not .. thanks for the comprehensive info 🙂
Thanks for the comparison Ashley.
I’m about to dive back into Magento after building sites in WordPress. I’ve found the woocommerce framework to be really great, but for larger operations WordPress just won’t cut it.
Enjoyed the article. Thanks. I was wondering what the comfort zone is for using a wp e-commerce shop in terms of products and customers?
Hi Ashley. Thanks so much for the post. Great insight. I’m getting involved with a site right now that’s currently on Magento and feeling like I could do so much more for this business if it were on wordpress. Site will have maybe 10 products, but potentially very high traffic…(at least that’s the goal.. hmmmn, no really…)
If you have a moment, I’d really appreciate your thoughts on speed, etc with wordpress. Looking into wpengine as well…
Regardless, thanks so much for the insight.
All the best,
Y
Hi Ashley,
I am a Web Developer by profession and we design and develop websites at Brandmantra.net.
I completely agree with what you have written in the article, to be more precise we offer wp-ecommerce solutions to 90% of our clients and except those you have a robust online store with lot of products we offer Magento.
Thanks for writing the informative article.
I have used wp e-commerce on several occasions and I am pretty pleased with it so far. It is very customizable if you know what you are doing. Great job.
Thanks for the article. Would be nice to see an update. I’ve spent the last year moving all my sites from a customized php/mysql pfiend format to Magento. I have one site left, and now i’m going bonkers. It doesn’t make sense to have one site in WP and all the rest in Magento. But magento certainly does require me to have a programmer help me out. And i’ve spent thousands of dollars making these changes.
Any comments on the SEO aspects? I’m not sure if it was google panda or the site re direct, but when i moved one of my sites (www.AllAboutChi.com) from php to magento, i totally lost my # 3 ranking on Google. Now i’m about 734!
I’d appreciate any comments you might have.
As payment gateway developer for wp based ecommerce solutions I really liked this article. Regarding your conclusion: “So yes, for sufficiently small store projects, I’d do it again.”
Why not for a big store project? 🙂
This is by the way a question I’d like to invite the development teams of Woocommerce, Jigoshop, WPEC, Cart66 to consider as well. Why can a platform which is actually more lightweight, more user and seo friendly not be brought to the “next level”?
As far I can see it might these reasons:
– Anybody developing WP ecommerce systems has simply accepted the idea that WP based ecommerce is “of course” only for small shops
– there is not enough ecommerce infrastructure products around there for WP (e.g. ERP systems)
Nice Blog on WP-e-commerce…
Thanks for Sharing !!
I considering to migrate my store to Wp eCommerce, and I wonder about their support? I am going to use Cart2Cart tool to migrate data, because if I understood correctly, I should built my store design by myself in any case. I see comment from Dan who is the developer if this plugin. It is always pleasure to meet people from the backside. Nevertheless, thanks for comparison
At first I was confused that which platform should I used. But finallly I prefer Magento as it added blogging as a plug-in and for a pure e-commerce site, Magento may be the best answer.