OpenCartI was recently asked to quote for making a few improvements to an OpenCart shop. OpenCart wasn’t a package I’d customised before, but as I always like to keep abreast of the latest software packages for use on clients sites, I thought I’d spend a little time having a play around with it and see how easy it was to develop on.

Installation

My first impressions were pretty good, their website is attractive and simple to use. I downloaded the latest copy of the open source shopping cart software, and followed the online installation instructions. Having setup many, many different online software packages in my time, I have to say this probably ranks about a 7/10 for ‘ease of installation’. I had no problems at all:

i) Unpack the files
ii) chmod some directories

iii) Setup a database
iv) And follow the onscreen installation instructions.

However it wasn’t quite as slick as the WordPress installation which is so easy it’s just silly.

The Code

The code itself seems well organised and thought through. It’s all based on an MVC framework, so if you’re familiar with that pattern of software development, you’ll immediately feel quite at home here. If you’re not an MVC programmer, then it might be a little confusing as first.

Creating Extensions

Extensions are the small boxes which can be customised to appear in either of the 3 columns of the template. Their position, type, etc can be controlled through the admin interface.

I couldn’t find any documentation on the OpenCart website which explained how to create your own extension, so I downloaded an existing freely available extensions which most closely matched my needs. This told me that I need to create new controller and view files for both the user and admin interfaces.

Further Customisation

Another customisation I was asked to look into, was the ability to search between specific price points, I.e. The ability to enter a minimum and maximum price for items. Unfortunately due to the slightly limited search options available by default, this involved updating the core application code itself, most specifically the model used when searching. While not a problem in itself, I would be concerned about this code being overwritten if the site was ever upgraded, so an alternative solution might be to create a standalone replacement model for searching the site, and reference this from the controller instead.

Final Thoughts

All in all I’m fairly impressed with OpenCart. I found it interesting to learn and it feels ‘clean’ to develop with. While I feed the code is slightly ‘specific’ in some regards, it’s also very accomplished in many more. Whilst I can’t comment from the shop owners point of view, and I’ve only really scratched the service, I would be very interested in exploring this software more in the future.

Visit OpenCart.com to learn more or contact us to discuss our Opencart customisation service.