The problem with X-Cart…
I decided recently to stop developing online stores using the ecommerce script I have grown up with (X-Cart) and have used since I started ecommerce development in 2002. It being late 2009 now, I’ve spent the last 7 years diligently implementing shopping cart solutions for clients using X-Cart as the basis for development and whilst it is an excellent script which can be scaled to fit pretty much any operation, there are a few problems which, in the end, make it a non-starter.
Let’s look at the lack of basic order management:
You’d think that it would be a prerequisite of any shopping cart to contain basic partial refund capabilities so that when an order is placed and part of it is not available, or the customer no longer wants it, you could just modify the order from the back-end to remove an item (or items) and then refund onto their card so that your store records are kept in-sync. Not so with X-Cart – the order has to be redone which takes time and causes headaches when you come to file your accounts.
You might also expect to be able to add items to an order after it was initially placed – for example, a customer buys an item from you online, then spots another item tomorrow, decides to phone you for advice on it, so they can buy it and get the 2 shipped together. Wouldn’t you want to make your customer’s life hassle free by simply adding the item to the order and then taking payment details over the phone so that you can process the order and pack the 2 items together?
Not possible sorry – X-Cart does not allow orders to be edited after they are placed. You’d have to take the customer’s details again (unless they saved a profile on your site), take the card details, login as a customer and run the order through from scratch (fine if you’re not very busy, but if you’ve got stuff going on it’s a nightmare – imagine 10 people asking for the same, it becomes a real headache, real fast).
And what about refunding the entire order when a customer changes their mind? Unbelievably there is no refund facility in X-Cart – the only choice you have is to set the order as ‘failed/declined’ in the admin back-end, which then sends an email to the customer stating their order was declined and makes you look like a tosser. Although it does put the items back into stock.
What about the mods?
True, you can get 3rd party mods done (or build a mod yourself if you know Smarty and PHP), but the point is, there shouldn’t be the need. Sure, half the fun is developing the shopping cart to look, feel and behave in a unique way, but a retail script with no refund system? Come on.
There are many X-Cart alternatives out there (some have been around longer, others are newer. Some are expensive, some are cheap-or free). Many have fewer features, some have more. I am now off to explore alternatives and see if I can’t find a way to make my clients lives easier by supplying a solution which does a proper job. For now, bye bye X-Cart, see you when you grow up.
There are other issues of course – default search is a hack, clunky add-to-basket, no JQuery image or featured content widgets, poor marketing facilities, bloated code, huge database overhead, large memory footprint, user un-friendly admin layout, buggy and untested verion releases and so on, but this was the most recent aggravation, so that’s what I went with.
X-Cart is far from all bad though – it is a genius script for developers which can be modded like crazy and customised to look and behave exactly as you want – plus the use of Smarty templates makes editing on the fly an absolute breeze. Unfortunately, in this day and age, the lack of basic management and marketing features is a deal-breaker – retail is retail, whether online or off and people expect a shop to do certain things (as owners and customers) – gone are the days of a site being great just because it has ecommerce on it at all.
I’m not writing X-Cart off – the basis for greatness is definately there – but I for one will not be pursuing development further unless they fix the basics first.

