in Business, Development

The Problem With Ecommerce: Don’t Build Your Own Ecommerce Engine

I just had a meeting with two bright guys who have spent the last three months building an ecommerce system from scratch. Actually, they haven’t been the ones doing the coding, it has been a group of 4 students from Devry (a technical trade school in AZ). Talk about a school project.

During our meeting, they said that they had a cumulative effort of over 400 hours into building an ecommerce system, and the owners still have to make changes to products directly in the SQL database.

I can’t tell you how often I hear this. I’ve even done it myself! Years ago, I landed a big project to build an ecommerce site for a local company and by the time we had gotten some semblance of a site working, we were all de-motivated. The reality is that it would take several man-years to even come close to matching the features that a mature ecommerce application would have.

So what happened? We ended up scrapping all of our work (about 250 to 300 hours, all told) and installing an ecommerce system we had been keeping our eye on.

The end result was that in about a week, I had the web site done (and very little sleep, but it was done!). The client was more than satisfied, we had exceeded their objectives.

Back to the people I met with today — During our meeting I could see them addressing an internal struggle of whether they really wanted to throw out everything they had made. The facts are stunning: potentially invest hundreds of hours and continue as planned… or throw it out and start with a solid base.

In the end, when you add up the dollars, there are very few situations where it makes sense to build your own ecommerce engine. There’s just too much to think about. Security, payment gateways, discount codes, adding and removing products, order management, databases, affiliate systems, product categories, and more.

I have similar feelings about application development in general, but I’ll hold those for another day.

Continue Reading:

Write a Comment

Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

11 Comments

  1. weve done that and find that it helps modularize sales acting as a commodity. The basic “out of the box” system is quick to implement within a custom interface and because its out system we can cater to customization requests easily.

    What out of the box system does tornado use?

  2. I just got done building an ecommerce system from scratch, although I used libraries and experience I’ve been building up for over 10 years. It total, it took about six weeks from creating the subversion repository to getting the clients approval.

    I really didn’t want to do it from scratch, especially since two other developers had already contributed a bunch of hours into the project. But it came down to a really simple fact: the client needed to display products that are sold during windows of dates and time. I didn’t see anything out there that fit the bill or was within their project budget.

    I’ll share the client/url when the client opens to the public.

  3. We use a custom ecommerce system at work, all written by me. We went that way as most of the off the shelf systems were very expensive or the open source ones (oscommerce and the like) didn’t provide the functionality we required.

    In total I’ve spent over 3 years developing it, it currently stands at about 50,000 lines of php/html.

  4. I have learned to stop rolling my own software for everything too. I am currently in the process of transferring my website http://www.search-this.com from a CMS that I wrote to WordPress. My own CMS has gotten dated and just can’t do the things WordPress can.

  5. I’ll have to disagree Chris. While the engine for Fugitive Toys isn’t as full featured as say…Amazon.com…it’s got everything we need to manage the entire site from coupons, to featured products, to “similar” product, and everything in between.

    It’s extremely lightweight and took about 100 hours of coding.

    I think the problem is when the scope gets out of hand. We built what WE needed. We didn’t build something that some huge store with 500,000 products would need.

    We initially tried out of the box solutions (CubeCart, OSCommerce) and they are so bulky, buggy, and full of security holes that they just aren’t worth the “convenience” that is perceived by using them.

  6. Hey Josh, yeah, I’ll have to agree with you. You are the only person I know to successfully pull off something like that.

  7. I guess the moral of the story is this: if you choose to roll your own shopping cart, you have to fully understand the implications. It can give you a solution that is specifically geared towards your product and store, but also will take 100 hours, just like Josh said.

  8. we are going through this process right now with building a CMS. Especially since there is so much open source stuff out there

  9. If all you need is a basic cart system that processes credit card payments, then yeah, you can most likely make it happen in less than 100 hours.

    However, most clients end up wanting a bunch of fancy things like user accounts and administration, coupon codes, shipping based on weight (for multiple carriers), sales reports, multi-level categories, product options, new products, featured products, similar products, and the list goes on and on…

    The problem is that a lot of the pre-built shopping cart systems like CubeCart and OsCommerce are, like Josh said, bulky and buggy.

    Our favorite online storefront system that we’ve found and use here at Tornado is called ProductCart. So far from what we’ve seen, it’s been rock solid. They have good support and the system has all those features you might need (like the ones I mentioned above).

    It’s coded in ASP, which might be a turn-off for some of you, but it’s surprisingly fast and stable. Not only that, but I’ve been able to do some pretty extensive modifications (fairly easily) to some of the stores we’ve rolled out. You get all the source code and it’s hosted on your server so you can do whatever you want with it.

    Jason, you said that you had needed a system that would display products that were within a certain date range. From what I’ve seen of ProductCart, it might have actually been easier just to modify ProductCart to have those features than it would have been to create a whole new ecommerce system. For example, you could add in two additional form fields for each product: Display Start Date, and Display End Date. Then, all you’d have to do is edit the product fetching query to ignore products that had a Display Start Date that was more than the current date and a Display End Date that was less than the current date. If you wanted to get fancier than than (have multiple date ranges per product, etc.), then yeah, it might get a little more complicated. But still, I would think it would be less complicated to figure out than building a whole new ecommerce system from scratch.

    Anyways, just my two cents, for what it’s worth. 🙂

    P.S. I’d really like to see the system you built. It sounds really cool. Send us the link when it goes live!

    Here’s a couple of the sites that we’ve used ProductCart with:
    http://www.chocolatestarbakery.com
    http://www.workshopplus.com
    http://www.purbebe.com
    http://shop.wigwamresort.com