PHP open-source shopping carts: OpenCart and Magento
written by craig, 13 November 2007
I’ve been evaluating both of these shopping cart systems for a project I’m working on. Here are my opinions after a few hours testing…
OpenCart (v0.7.7 tested)
OpenCart looks great and is simple to setup and use. It’s probably aimed at smaller online shops, but is stable, fast, and caches pages. It’s new, so there aren’t many mods or themes just yet. Custom templates look straight-forward though.
My main concerns:
- It uses MySQL MyISAM tables (fast with full-text indexing, but no foreign keys or transactions). I’d really expect InnoDB to be used for a shop.
- URL aliases/mod-rewrites don’t work and there are few SEO considerations – descriptions and keywords can’t be entered. This should be fixed in the next version, but mod-rewrites need easier implementation (there’s currently a lookup table that must be manually populated with the real and aliased URL for every page).
- Template values are inserted using global variables. It feels dirty, and problems could occur with that approach. The current templates use transitional HTML, but I think standards-based versions should be possible.
It’s worth keeping an eye on the project and it’s definitely one I’d consider as it matures.
Magento (v0.6.1360 tested)
A serious amount of effort has gone into Magento. It’s huge, can run multiple shops, and has an Amazon-like plethora of features. The interface is nice, support is excellent, and there’s lots of help including video tutorials. InnoDB tables are used, mod-rewrites work, and SEO is well implemented.
My main concerns:
- It has high system requirements and could get slow with lots of users. The system could benefit from page caching.
- It’s a seriously complex piece of software and has a steep learning curve. It’s one for large companies rather than one-man stores (I couldn’t get a product to appear on the home page!)
- Templating is very flexible and uses XML to define multiple HTML page layouts and sections. But, it’s complicated: there are dozens of files in multiple locations, and the documentation appears to be wrong or out of date. It also seems to embed page-specific JS form validation code in the page head – not great.
Only a few people appear to be using it so far … that’s a little worrying given the positive press it’s had. Magento is very promising, but I would suggest waiting until it’s out of beta before using it.