I am currently examining several open source candidates for my next project and ZenCart seems almost too-good-to-be-true. Not only it has impressive set of features, add-ons etc. there is also a book about it etc.
However, there are two concerns that make my leery about choosing ZenCart:
Although the concept of of the override system is well explained, there is no documentation anywhere about what each overridable .php module does. For example, all the modules in includes/templates/template_default/templates have a nice header like:
But the header doesn't explain what the module does, its purpose in the system, its position in the system (who calls it) etc.PHP Code:* @package templateSystem
* @copyright Copyright 2003-2005 Zen Cart Development Team
* @copyright Portions Copyright 2003 osCommerce
* @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
* @version $Id: tpl_modules_categories_tabs.php 3395 2006-04-08 21:13:00Z ajeh $
This is a problem for someone who wants to seriously customize the system.
If I want to introduce another template that is slightly different from another one (for careful introduction & beta testing of new features), I have to re-enter via admin console (i.e. manually!) all the layouts/sideboxes and define pages. This is unlike preparing a template that can be simply packaged into a ZIP file, uploaded to the site and then simply extracted.
Moreover, to control a certain item in the web site, I have to access several functions/menus in the admin console. For example, to define a product, it's not enough to go to the product's page (via Categories/Products), I also have to go several other pages and menus (attributes controller, etc.).
In short, not very well organized/architected/designed which leads to too much work.
Is this really the state of the art of open source shopping cart software? In other words, are other open source packages in much worse situation?
If you think I am mistaken, I would be more than happy to be proven wrong (and chose ZenCart over other packages).


Although the concept of of the override system is well explained, there is no documentation anywhere about what each overridable .php module does. For example, all the modules in includes/templates/template_default/templates have a nice header like:

