I'm frustrated with content management systems and e-commerce platforms. Well, to be more specific, my frustration lies with products that claim to offer both. There are an unlimited number of fantastic CMSes, and an equal number of great e-commerce platforms. But, to this day, I haven't found that perfect product that combines the best of both worlds. So, I'm hoping this post fires up a discussion, and perhaps a few reviews on platforms which come close, or fit the bill completely. I'll start with my review of CMS / E-commerce products I've used over the years:
WordPress
Arguably, WordPress is the most popular CMS out there right now. Although it's primary focus is on blogging, it can be used to manage content on very simple websites. It's power lies in it's simplicity. A simple parent/child relationship between pages doesn't imply any specific functionality, so it can be purposed in any way we like. While many other CMSes, for example, might have a specific content type for "Folder" and "Page". If a page was created, then later we need to add children pages to that page, we need to delete it, and add it as a folder. This is not necessary in WordPress, due to it's simple nature.
What I like about WordPress
- Simple
- Free
- Tons of free themes and plugins
- Easy install
- Easy to learn
- Plugin development is straightforward
What I don't like about WordPress
- Potential for attacks
WordPress is wildly popular, which means it's a popular target for hackers as well. Why would a hacker spend time crafting an attack on a platform with small user base? But, the primary reasons for it's popularity and also reasons for it's security holes. WordPress boasts FTP and .htaccess usage. FTP for quick and easy upgrading and plugin installation. .htaccess for SEO friendly URLs. While neither are required, WordPress doesn't offer good explanation of the risks taken when you use FTP and .htaccess files. - Server requirements are a bit stiff
With each major WordPress release, comes new demands on your server's PHP support. A vast amount of the WordPress user base is using shared hosting, which does not give them the control needed to keep up with WordPress's reliance on newer PHP releases. There is nothing that can be done with PHP 5.3 that can't be done with PHP 5.0, it simply makes the developers job easier, as they can leverage the latest language features.
Overall, I think WordPress is a great piece of software. If you stick to SFTP, and avoid .htaccess (drop your directives in the vhost stanza), you'll be in a much better place security-wise. The WP e-Commerce product is an excellent plugin for small, simple product stores which don't require much customization. If you need deeper customization, you'll find the database table structure to be very denormalized and difficult to make sense of.
In summary, I like WordPress for blogging, simple websites and very simple product stores.
Plone
Plone was love at first sight for me. There simply is no better Content Management user interface on the open-source market. Years ago, before Plone 3, customizing Plone sites used to be a bit of a struggle, but it was doable. With the release of Plone 3, and subsequent versions, a whole bunch of complexity was introduced, which was a bit of turn off. Not to mention that, for me, Plone 2.5 was the most stable version I've used to date. I don't want to lay into Plone too much though, the fact is, their end-user interface has done nothing but improve with each passing release, while the themes that come packed with it stay cutting edge on the CSS/JavaScript side.
What I like about Plone
- End-users who have experience with any other CMS are amazed at how intuitive the Plone interface is.
- Creating basic, custom content-types is a breeze with their Archetypes framework
- Users management, roles, permissions & authentication are flexible, yet solid, thanks to the underlying Zope.
- Again thanks to Zope, you can edit basic template files through a web interface, making quick changes doable from the most basic device.
- I love the way Plone was conceived and developed. To build on a stack that is not widely supported (python/zope), or even understood (object database), took a great deal of ingenuity, and really sets Plone apart from the myriad other CMS which are based on PHP.
What I don't like about Plone
- It's a resource pig. The Plone "stack" is not something we run on a VPS with 512MB of RAM. Although, this is generally explained and understood easily to clients, who are willing to pay a bit more for hosting.
- Debugging is no picnic. I've been fortunate to never experience a fatal hiccup in any of my ZODBs (Zope Object Database), but it can happen, and debugging is not for the faint of heart. ZODB backups are essential and should be done nightly.
- It doesn't scale well to objects with relationships to each other, which makes it nearly impossible to create a custom e-commerce system without leveraging a relational database (which Zope does support). I don't consider this a flaw, but rather something that Plone just wasn't designed to do.
Overall, Plone is an incredible application, build on a solid framework (Zope). It's steeper learning curve on the developer side is what I think keeps it WordPress's shadow. That being said, if you offer Content Management solutions as part of your core business services, it is worthwhile to learn Plone development. End-users are consistently blown-away at how simple the user interface is. Few, if any products hide the back-end details and present the website itself as the user interface quite like Plone does.
Don't try to do anything with Plone that relies heavily on complex business logic. E-commerce and intricate intranets/extranets are doable, but anything with complex relationships between objects becomes tricky with the object database which is at the core of Plone.
Magento
I created a Magento-based e-commerce site about 2 years ago, and have chosen to wipe that experience from memory. The product is very complete, and an excellent solution for a medium-sized or large store, but customization is bear for anyone who doesn't have a PhD from MIT. That is, of course, and exaggeration. Customization is not impossible, and there is documentation to support your efforts, but it is by far the most difficult product of those listed in this article to make your own.
What I like about Magento
- Great documenation
- Covers just about every angle when it comes to managing a product store, extremely feature-rich
What I don't like about Magento
- Badly beaten with the over-engineering stick. I get what they're trying to do, but personally, it feels like overkill. The database structure and file structure is just way too many levels deep to comprehend in any reasonable timeframe.
- Like Plone, it's a resource pig. Feed it lots of RAM and CPU and you should be okay, but don't expect it to run on a small-time VPS.
CFWebStore
We've touched on products built on PHP and Python, which covers the open-source products. But, what about commercial products? We've all heard of ColdFusion, aren't there any good CMS / E-commerce platforms for CF? I have not had the good fortune of toying with a ColdFusion-based CMS product, but I have recently dabbled with a product called CFWebStore. So, for those of you have a ColdFusion license and are in the market for an E-commerce solution, here's my take:
What I like about CFWebStore
- The Price Tag
When I think about commercial e-commerce platforms, I think "thousands". But a single-site CFWebStore license is only $400. - Everything Works
This one is difficult to explain, but you know what I'm talking about – that situation where you purchase or download a product and you really have to dig to get it work as expected. I don't recall hitting any snags with CFWebStore. After stepping through the installation instructions, we were pretty much ready to go, and the store functioned entirely as expected. - Customization is more straightforward than any other CMS or E-Commerce platform I've ever used. If you have even a basic understanding of ColdFusion, you'll be able to customize this product. The database table schema is not overly complex, so adding your own fields and integrating them into the user interface is not difficult.
What I don't like about CFWebStore
- The admin interface is fully functional, and technically, works as expected and designed. But, it relies on a framed layout, which makes it impossible for me to open multiple tabs easily. The admin UI is also a little old school, reminding me of the menus I might use to configure my television. But again, it all works.
- The field labels/descriptions many times are a little ambiguous or don't fully explain their intent. The product documentation, however, is very complete.
- The default layout is based on tables, although this is very easily customized.
- Every time I make a change in admin, it pops up a JavaScript alert box, "Your changes have been saved". That's gotta go!
Overall, I dig CFWebStore for E-commerce. Don't use it for anything else, it deals with page content, but it's a bit clunky. But, as said, for a small or medium sized web store, I would certainly choose this product over WordPress/WP-Ecommerce. It's far more secure and customization won't send you running for the hills.
NetSuite
Continuing on the commercial route, this next product, Netsuite, I have only scratched the surface of. But, that little scratch left deep, lasting wounds in every one of my brain lobes! I've said to my clients who support Netsuite that "no simple change goes unpunished", and stand by it to this day. But, I do need to reiterate that I truly am a Netsuite Noob, and it's very possible that I don't have the complete understanding necessary to customize the product. I really don't have enough experience with it to drum up a likes/don't likes list, but I can say that it is very complete from an accounting, reporting, business intelligence standpoint. If these things are of dire importance in an e-commerce product, you might have a look at Netsuite. But, leave customization to the pros, no matter how awesome your programming talent. Expect to pay a Netsuite Developer a bit more than your average PHP/ColdFusion developer.
If you are a developer and you do decide to dive in, expect a very steep learning curve, inefficiencies such as a poorly designed through-the-web development interface, which essentially boils down to tons of textareas to carry the various pieces of your HTML template. The product clearly was not built with the average developer in mind, so be sure to have a guru on hand to back you up.
To put a lid on this discussion, the following list summarizes my thoughts and product selection criteria:
Need | Product |
Blog | WordPress |
Simple CMS | WordPress, Plone |
Powerful CMS | Plone |
Basic E-Commerce | WordPress, Plone, CFWebStore |
Advanced E-Commerce | Magento, NetSuite |
I never have tried Plone though. Guess won't be trying it anymore because the way you described it is like it's a waste of time. Anyway, thanks for the information.
Oh, not at all, Plone is a fantastic product, but it has drawbacks as I mentioned. If you resell CMS-based websites, your customers will really be impressed by Plone’s interface. But, if you are using it to manage your own website and have development experience, it is overkill in terms of resource consumption.
If you need to work on CMS which can be converted to Shopping Cart, go for Umbraco otherwise you can use nopCommerce Shopping Cart.