New Open Source ColdFusion Shopping Cart

I have tried a handful of ColdFusion shopping carts and I have never been happy with them. They tend to do more than I need, but not in the way that I need it. That they don't work quite as I need isn't a problem. That they are difficult to modify is.

After a few frustrating experiences, I finally decided to build a shopping cart the way I always wanted one to work. The real difference between this cart and others is that it assumes that you will have to modify it. Rather than give you 90% of what you need and making it hard to do the other 10%, it gives you closer to 60% of what you need, but makes it extremely easy to get the other 40%.

The result is a free, open source, shopping cart program that I call StarterCart. While it is very slim on features, it does provide some significant advantages over other shopping cart programs that I have seen.

Perhaps my favorite feature of StarterCart is that it can easily integrate with products defined outside of StarterCart itself - even from multiple different sources. So, for example, if you have a site that already lists model car sets and train sets that your client sells in store and those are each stored in separate tables, it would be easy to hook them both up to StarterCart so that a user could purchase either (or both) kinds of products in a visit.

StarterCart also has its own built-in product management system, but it is bare-bones. The intent is that you can easily customize this to fit your needs.

Another great aspect of StarterCart is that it has a wide set of supported platforms thanks in part to its internal use of DataMgr and cfpayment. On a related note, if you want to build your own cart from scratch then I would highly recommend you take a look at cfpayment - it is a really great project.

Among the things StarterCart doesn't yet support, however, is calculation of shipping rates. This is simply because neither of the sites on which I have implemented the cart have shipped products.

StarterCart is still in beta, but will likely have a very slim feature set when it is launched to full 1.0 gold. I do hope, however, to get a more complete feature set over time if there is interest and contribution.

Even if the feature set grows somewhat, I plan to tilt it more towards easy modification than a complete out of the box solution. This is written to be something that a programmer can use to easily create a solid shopping cart for their client, not something that an end user could download and use to set up a cart on their own.

StarterCart is built on the Neptune framework and does require it to be running on a site to work. Fortunately, Neptune itself should work along side other frameworks.

On that note, this is the second Neptune program I have released since I released the beta of Neptune. Hopefully I can keep up this pace for a bit. The Neptune program specs for StarterCart:

Size (uncompressed) 1.88M (122 files across 25 folders)
cfpayment: 1.75M (46 files across 18 folders)
other code: 0.13M (76 files across 7 folders)
Exposure
  Any Version Current Version
Installations 2 2
Time 2 years 6 months
Configurations Used Modified Modified
Supported CFML Engines
Engine Tested?
ColdFusion MX 6.1  
ColdFusion MX 7 YES
ColdFusion 8 YES
ColdFusion 9  
OpenBD 1.X  
Railo 3.X  

StarterCart does not handle logins and users for the administration area of the cart. Fortunately, you can use the "Admins" program (or something similar) to handle that for you.

If you are looking for a ColdFusion shopping cart, but StarterCart doesn't seem like what you are looking for, here are some other options that are currently available:

Cart Cost Source Notes
CF Shopkart Free Open Source  
Meld MiniCommerce Free Open Source Requires Mura
QuickEStore $99 unencrypted  
Cartweaver $250 unencrypted  
cf_ezcart $250 unencrypted  
CFWebstore $400 unencrypted  
SiteDirector $495 unencrypted  
AbleCommerce $995 encrypted  

By my count, this makes StarterCart one of only two free and open source ColdFusion shopping carts (cfCommerce looks like it stalled).

I have only used StarterCart on two sites so far. I am eager for it to get a little bit more mileage and then I can call it 1.0 gold and start working on new features. In that vein, if you have ideas for features you would like to see then I would love to hear them. The cart does have documentation, but I am sure it needs some work. I am certainly open for suggestions on that as well.

StarterCart is open source and free for any use and can be downloaded from RIAForge.

Related Blog Entries

Comments (Comment Moderation is enabled. Your comment will not appear until approved.)
Awesome, awesome, awesome! :) I had been one of the people to "start" on cfcommerce, but other than getting a site up and running to collaborate, not a whole lot else happened with it (too much overthinking and not enough "git er done" :) ). Glad to see someone in the community throw up a cart app that gives a starting point for everyone else. Haven't had a good reason to need one lately, but I'll be sure to check it out.
Thanks,
# Posted By Gareth Arch | 2/8/11 3:09 PM
Great work Steve and thanks for making it as a open source project. I'm sure it will be useful for many peoples like in the CF community.

I just want to add one more Free CF Shopping Cart solution to your list called the Meld MiniCommerce a Mura CMS Shopping Cart Plugin - http://www.meldsolutions.com/products/meld-minicom...
# Posted By Akbarsait | 2/8/11 10:33 PM
I'm really, really excited about this, as I've been looking for something like this. Hopefully this can be made to work on other frameworks such as ModelGlue and ColdBox.
# Posted By Lola LB | 2/9/11 6:42 AM
Thanks guys!

Akbarsait,

Thanks for the reminder about Meld MiniCommerce. I actually saw it earlier but just forgot about it when I was writing this entry.

Lola,

I mention in my documentation that I think it should be relatively easy to port this to work in other frameworks as well. Not something I would likely be interested in doing on my own dime, however (I wrote it to run on my own framework, after all).

Still, if someone else wanted to tackle that then I think that would be great and I would certainly be available to assist in the effort.
# Posted By Steve Bryant | 2/9/11 10:24 AM
Any working example / live site to see the cart in action?
# Posted By Ben | 2/9/11 4:05 PM
Ben,

Sadly, no. The client for which I did both of the shopping cart sites has not been open to my sharing which sites of theirs have used open source projects of mine.

It would be a good idea for me to build a demonstration site for the cart and other programs, but it will probably be a bit until I get to that. Maybe I can get some screen-shots up in the meantime.
# Posted By Steve Bryant | 2/9/11 8:38 PM
OK. I did add several screen-shots to RIAForge. They show two possible skins for the cart. The Neptune framework currently ships with seven skins - about three-four of which are worth anything. You can also create your own skins pretty easily.

I also found a couple of bugs with the version available for download, so if you have downloaded it already you might want to do so again. I'm sure more will turn up later as well.
# Posted By Steve Bryant | 2/9/11 11:01 PM
First of all... Kudos to you for putting this out there.

I've looked through the docs, screenshots and some code. Haven't had a chance to install yet. Whats left for a true cart? Product options and shipping methods?
# Posted By Emmet | 2/10/11 9:27 AM
Emmet,

Good question. This is actually up and running on two sites already. One site has been using it for about 6 months, the other for just short of 2 years. So, in that sense, it is a true cart.

Neither have required shipping and that is not in the cart, so you would likely have to handle that yourself for now. I am hoping to get that added for another shopping cart installation soon.

As to product options, that isn't actually needed for StarterCart itself. The products are intentionally anemic so that you can add any fields that you need to them. Because of the way Neptune works, you just need to create some XML to define your fields and it will create the form fields and database fields for you.

I will try to do a more complete write-up of that in the near future.

Other features that I haven't even considered are sure to be needed later as well.
# Posted By Steve Bryant | 2/10/11 10:06 AM
Steve, thanks for the use of cfpayment and the mention. We have been doing a bit of work here lately and are receiving new contributions. A 1.0 release will finally hit the shelves soon. For anyone curious, I've personally processed more than $25MM through cfpayment so it's definitely production ready. Thanks!
# Posted By Brian | 12/14/11 10:20 PM
Very good news! I can't say enough positive things about cfpayment.

Any chance that you will switch it from subversion to Git and put it up on GitHub (might help get other developers involved)?
# Posted By Steve Bryant | 12/15/11 9:10 AM
Steve - yes, we just discussed this on the cfpayment google group. I'm not a git user myself but I'm going to get it migrated and get up to speed for exactly that reason to build on the recent momentum.
# Posted By Brian G | 12/16/11 2:17 PM
sounds good, I need a basic cart/billing system to build a new provisioning system for cfmldeveloper.com, so I may give this a try.
I think it would benefit from twitter bootstrap :-)
# Posted By snake | 10/16/13 7:16 AM
I gave up on this after all kinds of pathing issues. Couldn't be bothered tracing where to change the paths to allow this to be used in a website BENEATH wwwroot as opposed to in the root folder itself.
# Posted By Paul | 2/21/16 1:41 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.8.001.