Opinions on Zen Cart
I recently wrote this up for an email, and it seemed relevant enough to want to also post here.
My experience with Zen Cart has been fairly frustrating so far, but it's slowly getting better as I figure out the logic of the creators.
It's stuff like how the templating system works, where I eventually figured out that it looks for a file in your template directory, but if it can't find one then it looks for the default one. But instead of having a single localized template directory, there's four different ones you need to create (includes/languages/mytemplate, includes/languages/english/mytemplate, includes/modules/sideboxes/mytemplate, and finally the one place that makes sense: includes/templates/mytemplate), each of which serves a different purpose.
What bugs me is that there might actually be an easier way to do it, a way to create only one template directory and somehow have it work perfectly, but since everything is so undocumented I'd need to dig into the actual zen_* functions in order to figure it out.
Also Zen Cart makes the odd choice of separating the page design from the content, but not the program logic from the page design. Meaning that all of the HTML is mixed up with pages of program logic, and just generally makes it impossible to quickly browse through all of the html code at once.
One problem I recently dealt with was the act of creating a static page full of information. As far as I can tell, it takes seven distinct steps, all of which involve creating and editing files by hand. In both the other two carts I've used, X-Cart and Quill Design's SiteDirector, this can be done simply through the admin panel.
The option creator is ridiculously time-consuming.
Finally there's quite a few common e-commerce things that simply don't exist in Zen Cart. Like a product thumbnail image* and short description for product listings (and for Froogle), product-specific meta keywords, our price v. list price, SKU, a way to sort product listings in the admin section, upselling products.
In regards to the two other shopping carts I've used (as in stuff that I think Zen Cart should lift ideas from):
I'm a big fan of X-Cart's use of the open source Smarty Template system. It executes every piece of the program logic before even a single piece of HTML is displayed. It then calls the smarty template engine and passes in all of the data that it will need to display on the page. It's not that there's isn't any logic at all in X-Cart's smarty templates, just that all of the logic is design-logic, not application/business-logic.
X-Cart is also just a beast of a program that has been developed for years. The sheer number of payment options it supports is tremendous. It also has a very flexible method for setting shipping. And my favorite part, the statistics page shows the conversion rate funnel of customers as they go through each step of the shopping cart, from looking at a product to completing their order.
Quill Design's Site Director
Site Director has a great system for creating static pages (or even pages filled with links to specific products, like a "What does Mike recommend for beginners?" page), and then creating menus to put them in. Their whole MenuBuilder is a really nice system.
Site director also this flexible object metaphor that lets every type of page (category, product, and static content) capable of containing any other type of page as a sub page. So a static content page filled with product advice could then have a list of products and relevant categories that they recommended. Or to create upselling links, a product page could contain other products.
* - On further investigation, I've found out that Zen Cart does support small thumbnails, medium sized regular images, and large detail images. But they have to be named a certain way, and the default image must be the thumbnail. This means that you have to upload them manually through FTP, no going through the admin section. I'd much rather just have a seperate database field for thumbnails.
|email@example.com »« more zencart goodness »« home|