CS-Cart, A Very Excellent E-Commerce Engine

I’ve been in the Web Development Business now for more years than I care to remember. In that time I’ve worked with plenty of E-Commerce engines, some of which were entirely bespoke before ‘off the shelf’ solutions such as osCommerce or Magento existed.

In more recent years I’ve been using osCommerce. I took a look at Magento but reviews of its fairly serious need for horsepower and to be honest I found it quite difficult to get around. Before any Magento fans flame me I’m quite prepared to admit that is probably much more down to me than it is to Magento. So I stuck with osCommerce. I’ve released a number of E-Commerce sites based on osCommerce and in general I had been fairly happy with it. But, it’s very old technology now – my first shop was released back in 2005, on osCommerce 2.2 and today the platform is still the same, 4.5 years later. And I’m sure I wasn’t on the bleeding edge back then. I don’t want to bash osCommerce here either – that’s not the purpose of this article. But it is my basis for comparison and as such I have to point out the shortfalls it has when compared to CS-Cart.

I took the plunge and started looking at CS-Cart. It was a brave (and potentially stupid) move because I chose to investigate it’s use for a large client site. Sometimes when taking on a large project it can be better the devil you know. In this case though, I was pleasantly surprised. It was better the devil I didn’t know.

CS-Cart is based on the Smarty Template Engine and I have good experience with Smarty, having developed the more recent parts of DearDiary.Net in Smarty, along with the original version of Kabarty Collector, plus the playing around with WHMCS (which also uses Smarty) and a couple of other smaller projects. CS-Cart is also structured into a Model – View – Controller paradigm, which with my commercial background with Java Server Faces, Struts and CodeIgniter appealed to me from the outset. Perhaps having experience in both these technologies helped me to understand CS-Cart quicker than others might was an advantage but I soon found I could get around the software quickly and easily.

CS-Cart is written in PHP using the Smarty Template Engine, and although it is commercial software (which I might add is very reasonably priced at $265US) it does come with full source code so you can find your way around it. Just like the WordPress world though it is highly recommended that you do not make any edits to the core code. Doing so will make your upgrade path much harder – and it’s just about never necessary (although I did have to for one of my customers as it was a bug in the core).

CS-Cart uses a skin architecture (made simple by the use of MVC) so you can make it look exactly how you want – and I’ve applied a pretty radical design to one of my new sites. I’ll update the URL later once it’s been made public. But you can hook in jQuery effects and just totally radically alter the way the site looks whilst not having to stress at all about how the engine works. The engine is totally seperate from the display – which is how a modern system should be designed.

The engine also supports the concept of Add-Ons which means you can plugin extra functionality. In the case of CS-Cart these are quite literally ‘plug ins’. You don’t have to get your editor out and search for line Y in file blah.php and modify this query to show Z. You place the addon into the addons directory – possibly add the addon skin additions to the skins directory, and then activate the addon in the Administration screen. You may need to configure the addon and that’s all done through the Admin screen.

CS-Cart, straight out of the box, comes with dozens of Payment Gateways, including Paypal, eWay, WestPac (sadly, no Commonwealth Bank of Australia or ANZ (yet)), noChex and too many more to mention. Along with those payment gateways, it also comes with a bunch of pre-installed Postage Handlers, including live postage rate calculations from Australia Post and others. It supports multiple taxation models for sales tax, so if you’re a multi-national you can apply VAT to British Addresses, GST to Australian addresses and whatever other sales taxes you might need, all at different taxation rates as defined by you.

CS-Cart is also very user friendly for the customer. It contains its own Content Management System which allows the customer to add additional pages that aren’t product specific (for example, Terms and Conditions, Returns Information, Privacy Policy). The user does not have to understand any PHP to do this, CS-Cart provides an editor built into the Administration Screens.

Positively THE most powerful part of CS-Cart is found in its ‘Blocks Management’. This allows a designer of the site and/or addons to create blocks of content which can be placed on certain (or all) pages and the intuitive interface allows the cart administrator to move these blocks all around to fit how they want it to look. No need to edit HTML – the administrator simply drags the block from (for example) the left sidebar over to the right sidebar, or even to the top. The blocks manager seems to be almost infinitely flexible and even allows certain blocks to be only shown on specific product or category pages.

The only strange part I’ve found to CS-Cart at this stage is the business model that CS-Cart employs when a specific add on is required. You can write to CS-Cart and request a particular addon be coded, which they will quote you a price for. If you agree, and pay the price, they will code the addon. All good there. But that addon could then appear in a later version of the CS-Cart product – even though you just paid for it to be developed. It’s not a huge deal, and I think it’s just something that will happen more in the bespoke software world.

All in all, I’ve been really very pleased with the easy way CS-Cart can be extended and the intuitive and very powerful customer administration interface that makes it a great system to deploy to customers and not have to continually go back and make changes for them.

Eclipse hangs on SVN commit

eclipseIf you have a big project you try to check in to a subversion repository, eclipse can get part of the way through and then just hang. The only solution is to end task (or force quit on OSX).

But there is a solution!

This one eluded me (and google) for some time, but I am pleased to say that with the help of the Eclipse mailing list I have found the answer.

Open up the Eclipse preferences, choose Team -> SVN -> Console and uncheck the box that says ‘Limit Console Output’. With this option checked it seems that once Eclipse reaches the limit of the console output, it just freezes. I’m now able to check in a project with a lot of files and it’s all working excellently.

Eclipse Line Numbers Not Scrolling On OSX

Eclipse 3.5 Galileo OSX Cocoa version released June 24th fixes line numbers, breakpoint markers and cold folding regions scrolling problems that appear after upgrading OSX to 10.5.6 or greater.

eclipseIf you’re using the fantastic Eclipse IDE on OSX then you may have come across a small but highly annoying issue whereby the line numbers, breakpoint markers and cold folding sections in the left hand gutter do not scroll when you move through a long page you’re working on.

I discovered this happened only after upgrading to OSX 10.5.6, and there was a number of blog entries across the web that talked about how OSX 10.5.6 had broken the Dvorak keyboard layout but very little about Eclipse line numbers not scrolling. Most of the articles I did manage to find didn’t mention that the problem didn’t exist on 10.5.5 and previous. One that did, suggested waiting until 10.5.7 for a fix.

Unfortunately 10.5.7 does not fix the Eclipse line numbers not scrolling issue.

The good news is that there is a solution. Over at the Aptana support forum I came across an article talking exactly what I was experiencing – and someone commented that Eclipse 3.5 Galileo was to be soon released and that they couldn’t reproduce the problem on that version. After more digging – and this is where the Dvorak keyboard issue came up – I discovered that OSX 10.5.6 made some changes to the Carbon Framework libraries. Eclipse 3.4 was built using the Carbon Libraries.

Eclipse 3.5 comes in 2 flavours now (actually, 3, but only 2 32 bit flavours). There’s the original Carbon Framework version, and the shiny new Cocoa Framework version. The Cocoa Framework is the newer OSX programming framework and the good news is, the line numbers, breakpoint markers and code folding icons all scroll correctly with Eclipse 3.5 Galileo on 10.5.5, 10.5.6 and 10.5.7.

So if you’re on OSX Leopard, 10.5.6 or above and having issues with Eclipse, I highly recommend Galileo Eclipse 3.5 which was released on June 24 (though I’ve been using a release candidate for a month or so now with no issues).