The not so 'Zen', Zencart

1 comment

A few weeks ago I took on some work theming ZenCart, a popular open source PHP/MYSQL shopping cart system. After investiagting a number of solutions (including my much prefferred choice, Shopify), the client decided on something that would offer a better financial solution, and would work directly with the RealEx payment engine.

As an ecommerce sites go, ZenCart is perfectly suitable for the end user. It has the usual features and structure you would find in other online shops (recent products, related purchases, categorisation, notifcations, stock management etc.) The problem comes when you need to theme it. Here’s just a few of the issues that came up;

  • Abolutely no attempt has been made to sperate PHP code and HTML presentation. Opening up a templated page, means trawling through mountains of includes, function calls and PHP case statements to find the HTML you are looking for.
  • ZenCart claims to allow a table-less layout to be easily customised, and while there are no tables, the xHTML markup is some of the worst I have seen; semantically incorrect at best, grossly bloated and invalid at worst.
  • The promise of using a few CSS files to theme the shop is simply not true. In many pages with similar layouts you will find completely different class and id attributes for exactly the same elements.
  • The xHTML is inconsistent, in some pages a product list might be shown in a table, in others as an ordered-list. Combined with bad CSS identifiers, the size of your stylesheet grows and grows.
  • The admin panel seems to feature not one, but two built-in templating systems that (along with being confusing) allow raw-HTML to be entered by non-technical staff without any validation. I chose to avoid using them, to keep things simple.
  • For a complete re-theme, there are literally hundreds of files that need attention in the themes/ folder; and many of these contain application code.

Now I don’t know all of the history behind ZenCart, but I have to say I think it over promises on simplicity (a lot). Rather than a ‘zen’ like experience, working with it will probably cause your hair to fall out.

Shopify from JadedPixel on the other hand, is an outstanding piece of software. I followed its development closely (via their blog) from early last year. They make use of the Liquid templating system, and provide a large selection of well designed themes to choose from. They have gone as far as developing an offline application, Vision allowing developers and designers to build the required theme templates without having to setup a development box. It is a great approach to building a simpler e-commerce solution, with the minimum of fuss.

The disadvantages being its closed source, and a hosted-only solution. Setup is free, but requires a credit card to activate – and you must agree to a 3% commission on all sales.

1 comment so far

  • photo of Soldier Soldier May 02, 2007

    Hello,

    Try Avactis shopping cart software. In Avactis cart storefront and backend are separated. So, when you customize your storefront design you work with HTML codes only, not PHP codes.

Leave a comment