tags:

views:

51

answers:

2

My company and I are building a new system for a relatively large client. We are going to be replacing their entire system, which includes some eCommerce aspects to it among many other things. It is not a typical public shopping site, and there are many things about the system (both back end and front end) that are quite different.

Some of the people I work for are convinced that we should be using a third party product to implement the eCommerce pieces (shopping cart, catalog management). Their opinion is that it is a solved problem, and we shouldn't have to reinvent it. Given that direction, I have reviewed around ten different .NET based eCommerce platforms, and I struggle to imagine how we will be able to smoothly integrate any of them without a lot of friction. They are so all-encompassing that I feel like they are probably better suited for implementing simple shopping sites rather than larger systems that happen to have some eCommerce aspects to them.

We have a really nice architecture planned for everything else (Entity Framework, ASP.NET MVC, etc.), and my gut is telling me that trying to introduce a third party platform will cause unnecessary fragmentation and difficulty.

I would love to hear some opinions from people who have been there. Have you used a third party platform for eCommerce? Was it a typical shopping site or something different? Did you feel it was a help or a hinderance? Thanks.

+1  A: 

You aren't reinventing the wheel if you require yours to be square. This is why I curse the day I used Drupal as the basis for a project. The scope outgrew it then it ended up being a curse. If you can smell disease already, why continue thinking about it?

You could pull apart an existing one, but what would you be left with? Could you implement that yourself without much fuss? Also, what are the licensing restrictions? Would you have to redistribute your derivative work.

Common sense really, just because it is software doesn't alter the logical approach to reuse.

Go make your square wheel. You might learn some things/create a more abstract developer-orientated API for eCommerce that other developers can use as a library rather than a platform to avoid the problems you encountered implementing the "me too" stuff.

If you do, open source it. I'd use it if it had an independent database schema and API for catalogue and stock management; But I recon for anything outside the norm, the business logic you need varies to much to use an existing platform.

But, isn't that why your project is so unique and awesome?

"not reinventing the wheel" seems to be one of those things that is overused. Like Helvetica. It makes sense, but not for everything ever.

Aiden Bell
+2  A: 

eCommerce solutions are akin to encryption routines: you should avoid writing one unless you have experience building one and really know what you are doing. Especially in today's environment, there are many legal problems that have to be addressed in building your eCommerce solution that will protect your client from lawsuit. PCI and PII come to mind. It is easy to do shopping carts wrong and cause a serious amount of grief for your clients. By using a third party you, in effect, greatly expand your development team. You now have a whole company working on additions and updates to the shopping cart for you. A good shopping cart suite is extensible and allows for replacing components in the purchase pipeline with your own. So, in short, I would agree that you should seek a third party solution to manage the shopping cart unless you have plenty of experience on your team building them.

Thomas
"It is easy to do shopping carts wrong and cause a serious amount of grief for your clients" ... isn't that just ... "don't write bad software"?
Aiden Bell
@Aiden Bell - Not every developer understands the difference between say an authorization and a charge. Not everyone understands the impact of the difference. No. It is easy for smart developers to overlook some aspect to the whole process that can cause serious problems.
Thomas
@Thomas - But software isn't just code, it's code that meets a spec and does a job right. What it does is part of the software, and the developer's/managers job to understand. I agree with your point, but only partly ;)
Aiden Bell
@Aiden Bell - I also understand where you are coming from, but catch is that unless you have people on your team with experience building a shopping cart or plenty of patience on the part of the client, no will know entire spec. Even worse is that it is easy to think you have the whole spec. There are plenty of legal and customer service pitfalls that have to be considered.
Thomas
@Thomas, I agree with that and perhaps "Shopping stuff is more complex than it seems ... so be careful" is a good summary, which could be said for many business too :)
Aiden Bell
I agree with the sentiment that using components is a good thing, especially when the problem you're trying to solve is tricky. I do it all the time, and encryption is a great example. The problem is that eCommerce "platforms" are not just components. They generally want to own everything, including the UI, which makes it much more difficult to integrate into an existing architecture.
jeremcc
@Aiden Bell - Heh. Certainly any business in which money is changing hands.
Thomas