We’ve been working on an integration of the Magento e-commerce platform for opentaps Open Source ERP + CRM, and some of our long-time users have also talked about integrating opentaps with Spree. I took a quick look at both and make some notes about them. Since we’re not developers of or service providers for either one, and we plan to support integration with both in opentaps, I hope you’ll consider this an unbiased if somewhat “bird’s eye” comparison of Spree vs. Magento.
Spree is lightweight and easy to use, and the user interface for both the online store and the backend administrative module were quite intuitive. There is a good amount of documentation on the Spree website, and the authors of Spree seem really interested in helping you understand their system and work with it. Their BSD license is one of the least restrictive open source licenses. There is an active community around Spree, as evidenced by the Spree extensions available. Finally, Spree is written in Ruby on Rails, which is a very well-thought out web development frameworks.
Magento is a much bigger application than Spree. Its online store is also very intuitive and easy to use, but it’s altogether more polished and commercial-looking than Spree. The backend administrative applications are bit more complex, though. The free documentation available seems to be just the Magento wiki, which has a lot of content available but is not as consistent. There are also several books on Magento, ranging from to Magento: Beginner’s Guide to The Definitive Guide to Magento and php/Architect’s Guide to E-Commerce Programming with Magento. (Note: I haven’t read these books yet and can’t give them any recommendations.) Finally, Magento is written in PHP and the code seemed well-organized on first inspection, which means that a good developer should not take too long to get familiar with it.
Magento has a commercial/open-source licensing model, and the free version is licensed under the OSL 3.0 license. The OSL 3.0 is also a true open source license approved by the Open Source Initiative, but it is more restrictive than the BSD and the GPL license. (See the GNU Project’s comments about the OSL, for example.) Still, do not view this as purely negative. If the commercial/open source licensing model can support full-time professional developers to work on Magento’s open source version, then ultimately it would benefit most real end users of the open source Magento e-commerce platform.
The biggest advantage for Magento, though, seems to be its large number of third party modules available. There are over 1300 add-on modules available for Magento. (And the opentaps-Magento integration will soon be one of them!) Although most of these are commercial (as in “for pay”), and many of the free ones are in “beta” status, there still seems to be a lot of stable, free modules available.
How to Choose?
My personal opinion is that this comes down to a decision between Ruby on Rails and PHP. You should ask yourself which one you would prefer to work with and feel more comfortable with. However, keep in mind that while Ruby on Rails has been a very successful web development framework, PHP is simply the most dominant one today. (See for example O’Reilly’s State of the Computer Book Market and the TIOBE Software Index.) Therefore, there are many more developers, service providers, and add-on modules for PHP than Ruby. For example, Facebook’s developer API is mainly for PHP. Until Ruby on Rails comes up with a “killer app” that does something which PHP fundamentally is not well-suited for, I would not expect this to change.
Good article, I think you hit the nail on the head – working with open source tech is a double edged sword – you can do whatever you like to the code, but you _have_ to do whatever you like to the code too. So the fact that PHP developers are more plentiful, is a good reason to go PHP – that said (and I speak from experience) being able to hack some lines of PHP is quite different from being able to correctly write Magento extensions.
My other caution is (and I don’t know how well Spree compares) but Magento does not scale well, and requires considerable resources for reasonable speeds (<1s). The EAV object architecture gives great flexibility at the cost of speed – which is an entirely normal trade-off. But then, when cores are 10c per hour, why hire a developer to add an attribute to your product?
All that said – if there was a decent Java ecommerce platform available 18 months ago when we chose Magento, I’d have been on it.
Thanks for the article! I think it would be interesting to add ofbiz e-commerce component ( http://ofbiz.apache.org/ ) as Java representative to the quick comparison.
Thanks for looking at it, Ashley! I’ve seen a few comments about Magento being slower, but I’d agree with you that the better architecture and feature set are probably worth it.
I’ve actually worked with ofbiz since 2004, and opentaps actually includes all of ofbiz. In my opinion the ofbiz ecommerce store is good for a b2b website in conjunction with opentaps, whereas spree and magento are better for consumer-driven shopping sites.
I think you made a very good point about the two major issues in looking at integration and using the ecommerce software for projects comes down to the familiarity and ability to use and program in the two languages and frameworks. From a developer’s point of view that is a pretty important issue. Spree just barely hit it’s 1.0 status and is extremely young.
One thing though that worries me about magento is its slow drift from what I see away from open source and more into a commercial project. Including features slowly being added to the commercial version that are not present in the open source version. I see this drift increasing as time goes on as they try and make sure they make a very large return either by selling the company or adding more investment over time to get that expected high rate of return on that initial vc investment.
Either way, I think opentaps looks to be the foundation and infrastructure at the core of a lot of businesses with integration points into whatever ecommerce solution that a company decides to go with.
@sichen Thanks for the reply. I am currently evaluating these three platforms to get an idea of the pros and cons of each one. As Ofbiz is SO big, I am still stuck in Ofbiz and to date I am impressed with the number of features, architecture and flexibility it seems to provide.
This is why I don’t understand why you say it’s not so suitable for B2C stores. Is it due to the development complexity? or missing B2C features? and in the latter case which ones?
thanks in advance.
Thanks for posting your comments. You’ve actually brought up a lot of good points, and I’m glad they’re here for everybody to see.
First of all, I think spree is extremely impressive given how young of a project is, and if it continues at this pace, its future is certainly very promising.
As for Magento’s commercial leanings, I noticed it as well, and it seems to be part of a general trend in the “commercial open source” space. Here, though, the amount of community open source development around the Magento platform is very encouraging and may help offset that. For example, I was surprised by the third-party books that were available on Amazon, the number of add-on modules, and the size of the wiki, even if it’s not all well organized.
And yes, that is absolutely what we hope opentaps could become — the core engine of an enterprise, around which projects like Magento and Spree could be integrated.
FYI you might not consider us an unbiased observer on this one, because even though at opentaps we offer ofbiz out-of-the-box and integration with Magento (and maybe Spree later), we are in fact significant users and beneficiaries of the ofbiz framework, I don’t consider myself an unbiased observer here either, so please take it all with a grain of salt.
I certainly don’t want to discourage you from using ofbiz. What I would recommend that you do is take a look at the technical framework of ofbiz, then ask yourself if you like working with the XML-based technologies such as minilang, screen widget, form widget, entity engine and service engine. How does the out-of-the-box e-commerce store look versus your ultimate goal, and how much customizations would you need to do?
I am very happy to hear about your interest in integrating Magento with Opentaps. I just found Opentaps today and was very impressed with the breadth of features. I’m not too comfortable with Java, so for me this is the only sticking point. I’m not sure of the resources I will need to run this for my small business.
I look forward to hearing more about this integration effort.
Thanks for letting us know. Please go to http://sourceforge.net/projects/opentaps/ and we’ll try to post more information about the integration there.
@sichen I am not a big fan of XML neither and my first reaction with XMLs in Ofbiz was to look whether Ofbiz offered any other alternative such as using JVM-based scripting language (i.e. jRuby) to avoid using XMLs. However, I can understand the motivation of using XMLs in Ofbiz.
What I am not so convinced about Ofbiz is your last comment about customization. From my point of view, easy customization is one of the basic requirements when choosing an e-commerce platform.
Thanks again for your clarifications and I will look at the XMLs and how to customize Ofbiz!
Take a look here:http://www.opentaps.org/docs/index.php/Java_Wrapper_for_OFBiz_Services
This is why you should use Opentaps. We developed http://www.deadfish-audio.com with Ofbiz a few years ago, and I have to confess you that we spent too much time writing services in XML minilang. When things become more complex, you need the debugger: with Java wrappers this is easier.
More than that, using getter/setter methods when you write your services speed up the development at least two times.
Yes Spree look very promising, but his UI is still too poor to be compared with Magento\’s one. I think the next integrations should cover Zencart and OScommerce, that by the way were the most used e-commerce products out there (before Magento). Also integration with http://www.konakart.com should be considered (even if as far as i remember, the core is not open source).
What do you think, instead of doing all this integration, if we were to use GWT to create the checkout and customer service pages, which can be loaded by any shopping cart? The shopping cart could just put the contents of the cart in XML on an HTML page and then use a tag to reference our checkout pages. We would then display the standard stuff and then create an order directly in opentaps. We can also serve up all the my account/address/email/orders stuff using GWT.
That way, you can use whatever front end system you want and hook up opentaps without any integration 🙂
Yes, that is definitely a good idea. Is it related to this right? http://www.opentaps.org/docs/index.php/ERP_Modules_with_GWT_and_Domain_Driven_Architecture
GWT can give us a lot of flexibility in this area, and yes we must leverage on it 🙂