(Apologies for the long post. I'm really keen to get sound and balanced advise. The only way to do that is to provide you with a good overview of the situation.. :) ..)
I would like to say upfront that i am not a programmer. I'm 1 of 3 partners in a small start up. Two of us have a business and sales background, whilst the third guy is a very experienced Java Programmer/engineer (and a good friend).
As with most start ups we believe we'll be the next big website. We have found a opportunity that the "Long Tail" really describes well. By this i mean a product range that isn't currently being tapped into online. As with Amazon, our model is about offering every available product within the niche. Through the availability of everything outside the fast selling products, we hope to become best website for the niche.
We have placed a lot of focus on building the business/technology system that allows us to build our inventory information very quickly. This was because we knew that the size of our inventory would make or break our usefulness to end users.
So now i come to the problem that prompted me to seek your help.... (please help)... :)
In my (non-technical business) mind, we now have the ability to build our inventory quickly. This is just the start though, as a business we also need the following solutions before making money:
1) A shopping cart application to allow buyers to search our inventory, communicate with our business and make orders etc.
2) A CRM application that would then allow the effective management of customers and orders.
I found my way to Magento and SugarCRM both of which appear to be very impressive. The idea being to use Magento for the buyers (search,buy,interact etc) and Sugar for our staff (order processing, customer service etc).
In my mind the long term rewards of being able to update these core applications from the communities, would far outweigh the steep learning curve. Not to mention the time/money that would be required to even attempt to catch up with what already is stable and tested....
My friend and business partner is unwilling to consider anything in PHP and to a large degree opensource. He's of the belief it would be best to start from scratch. This feels painful as he currently has a full time job and as with most start ups, we're not cash rich. My second worry is how would we keep up with any competitor who may choose the Opensource route.
Here's further details about our operational requirements:
1) Our stock is currently held across 30+ different branches. Which means that we'd need a way for each branch to sign in and manage their own customers.
2) Our business has regions and each region has branches. In order for us to focus the various management levels of the business, it would be ideal if each management level could see the business relevant to them. For example National manager (can see everything), Regional manager (can see all branches in his region), Branch manager (can see everything for his branch with certain admin rights) and Customer service (can see everything in their branch with minimal rights). This is the only way we can have one umbrella site, which can be serviced by staff in branches nationally.
3) Over and above managing orders, it also makes sense that the messages are managed centrally through the application. This way any member of staff can easily see the past history with the customer and assist. I'm thinking that the questions would almost always come in through "Ask a question about this product" link, so incoming messages could be routed to the branch who has the part. If it's aftersales, then the branch who sold it. For general questions through contact us, we'll allocate a member of staff at head office.
4) I think it would be appropriate to show buyers upfront on the product page which branch has the part and the branch information.
5) Our inventory size is currently over 300,000 products. The business plan is to rapidly increase this to 10 times that figure.
6) The products are spare parts. Therefore the buyer would need to search by the original product that the parts fits... Each part can often be used on various products.
From a language agnostic business person (non-programmer) - any opinions or advise on our situation would be much appreciated...
I'm keen to find a way of us unlocking horns, either way... I just struggle to see any strong value in "re-inventing the wheel"....
Thanks in advance,
I have a number of (conflicting) thoughts on this:
You might need to consider if you need a partner with PHP experience.
My personal bias: I actually belong to the same category as your programmer - I am a strong Java developer and can tell you all the reasons why I think PHP is a bad idea. But Facebook using PHP in itself is an argument that it as a language can work in many situations. If Magneto meets most of what you want - then you should just start with that and spend your time on the remaining challenges of growing a business.
Some random thoughts
First things first: You can check the validity of your idea using open-source tools for say 6 months or so. During these 6 months, you'll learn a lot about e-commerce and customization etc.
In long term, you'll want to build your own e-commerce engine customized to your business needs and offers excellent experience to your users.
So yes, start with something that's already there, put things into action and side by side develop your own. Execution matters!
i would suggest trying magento and sugarcrm even if it is only to evaluate the two products to see if they work as you expect. it won't cost you much except for your time to evaluate them both and make a decision. writing a shopping cart and crm to handle the number of products you suggest is going to take quite a while (if you are only doing it in the weekends).
there are also a number of opensource java projects that cover some of the features you want, if that is preferable to your friend.
Also by taking the opensource solution (even if it is just for the short term), you can start selling in a much shorter timeframe. once your business idea is proven and develops, then you can look at customising the software or creating your own to give you a competitive advantage.
I am a php programmer (who used to and still sometimes writes Java code), so just a note of warning Magento is probably one of the most complex php apps i have looked at. If I was a beginner php programmer i would be reluctant to start learning with that application
First of all I would suggest you to search similar java open source solutions, there are also good projects in that field for sure. But if still they don't fit you I would suggest two business guys concentrate on ideas and requirements. Then hire 1-2 outsource programmers, it will cost 2-3k per months. And third (Tech) can concentrate on management of developers and during that time learn php and related tech things needed for you business.
I am a Java and PHP programmer. I am skilled with both languages as I have started with PHP in 1998 and with Java in 2001. Even when the most stuff I work on at daylight is in Java, I write PHP code weekly. Java is a very good language, and PHP has some flaws, that is true. But if you start with Java, you need simply more time for your project. Not every project has this budget. Later, after lets say 4 or 5 months, when the project has grown, you become quicker with Java than with PHP. PHP is very quick if you start from scratch, but due to the kind of its language (easy types for example) you might have problems to stick on clean code. Especially if you have young programmers in team, it is easier to oversee Java code than PHP.
That being said, if you have 2 or 3 dedicated PHP programmers who -want- to do quality work, they can do it, even with huge projects. I have seen PHP software with 100.000+ lines of code which was excellent. I have seen PHP software with 10.000 lines of code which was a mess.
But the same can become true with Java software. After all, you can have a mess or quality software in each language. It is just easier with Java in huge projects, because you have tons of analysis or refactoring tools.
That being said, what is your need? Do you need to get a quick start and do you think your product has limits in which you can see clearly the size of it? If the size is low, the budget is low and you need to go quickly, I would choose PHP.
If the size is huge, you cannot oversee the dimension of where the software can grow and probably need all of the cool refactoring/analyzing tools- go with Java.
Another point: is your software for the cloud? Then go with Java. more tools, better support.
Now to Open Source vs from Scratch. From scratch is almost idiotic in the most cases. Even when you do not choose a ready product, you should choose a framework were you can build your product upon. You cannot avoid to use Open Source. It is excellent software (in many cases) and gives a benefits in terms of competetion, speed etc.
If the question is, a Open Source Shop or not. How complicated are your needs? Once I wrote a pretty simple shop with a few articles and a basked in 1 months fulltime (PHP). This was pretty basic. I never could simply download any of the cool plugins like for example wordpress offers, I have to write it myself. I didn't want to do that, so my shop died.
But if you have lots of requirements, like multiple currencies, translations, different shop categories, sub shops, credit card transactions etc et al, then you are wasting some time with doing it from scratch.
There is one exception. I would never use xt:Commerce/os:Commerce. This shop system is open source, but it is pain to code. You have a pretty quick start with it, but if you need to modify something you loose time and time and time
Finally I would like to add:
I would learn any language, if the tool I can use with it would solve my problem the most pragmatic way.
I am going to leave my opinions of languages and frameworks to myself. I am a biz guy and there is a reason we hire CTOs.
BUT, I do have to say that most incredible software engineers (over 200 of them so far, most full-time working for cos I've been part of) I have worked with were all platform agnostic and could learn another language literally in under a month and master it in 3 months. Those who were too married to any platform usually did not last.
Best technology decision we have made were from building experiments and beating the heck out of them.