Custom Code or Existing Platform?
It should go without saying that before starting any new software development project, it's essential to think carefully about the requirements and plan the best way to design the application. This is true whether your web app will be an ecommerce platform, a CMS or a company Intranet.
Often the question is raised, "should we go for an off-the-shelf solution or should we develop our own software". As with most questions like this, there's a case to be made for either option but I'm going to argue that for the majority of small to medium projects, starting with an existing platform is the way to go.
While that's a sweeping statement and a generalisation, it's usually the case that there's some existing software out there, probably free and open source (FOSS) that will be pretty close to what you need. It's quite rare that your web app is so different from anything that has ever been written that it wouldn't benefit from the man-hours that have already gone in to the project.
It's interesting that I often see the question asked in forums about relatively small ecommerce websites. There are many platforms (yes, like OpenCart) that have had thousands, perhaps tens of thousands of hours put in to them. All of the common problems have been solved. Code has been written to do all the important jobs. The design decisions for how users interact and go through the cart process have all been carefully refined over years of development based on user feedback. The system is incredibly polished and works fantastically.
But still, people ask the question, "should we start from scratch". Well the answer is no unless you really require a very different way of buying online and have a budget which can afford the very large amount of man-hours it takes to develop good software from scratch.
Trying to develop software like this from scratch on a similar sort of budget would be a bit like trying to build your own car, including the engine, without ready made parts. It would cost more and the quality just wouldn't be comparible. You'd end up with something that resembled a go-kart and compared to even the cheapest production car it would be terrible in terms of speed, reliability, looks... everything!
However, you do need to choose your platform carefully. We're very lucky to live at a time where the Internet has given anyone with a connection access to hundreds of thousands of open source software applications. But not all are created equal. You need to make sure that the platform you choose not only does what you need it to do but you need to make sure that the code is well-written and flexible so that you can modify it in future and also that it will be supported well by the community. Unless you're a developer, checking the code quality won't be an option but looking on community forums should give you an idea of the size and friendliness of the community. You can also check out OpenSourceCMS.com to see ratings and reviews of open source applications.
Usually you don't need to reinvent the wheel. Time spent looking at the existing open source projects will be time well spent. If there really isn't anything close to what you need, consider going down the custom route but make sure you have a very good budget and that you've looked high and low for an existing platform first.