Note: This article was written in June of 2010. Since then, there have been several updates to Spree. Check out the current Official Spree Extensions or review a list of all the Spree Extensions.
This week, a client asked me for a list of Spree features both in the core and in available extensions. I decided that this might be a good time to look through Spree and provide a comprehensive look at features included in Spree core and extensions and use Magento as a basis for comparison. I’ve divided these features into meaningful broader groups that will hopefully ease the pain of comprehending an extremely long list :) Note that the Magento feature list is based on their documentation. Also note that the Spree features listed here are based on recent 0.10.* releases of Spree.
Features on a Single Product or Group of Product
Feature
Spree
Magento
Product reviews and/or ratings
Y, extension
Y
Product qna
N
N
Product seo (url, title, meta data control)
N
Y
Advanced/flexible taxonomy
Y, core
Y
Seo for taxonomy pages
N
Y
Configurable product search
Y, core
Y
Bundled products for discount
Y, extension
Y
Recently viewed products
Y, extension
Y
Soft product support/downloads
Y, extension
Y, I think so
Product comparison
Y, extension
Y
Upsell
N
Y
Cross sell
N
Y
Related items
Y, extension
Y
RSS feed of products
N
Y
Multiple images per product
Y, core
Y
Product option selection (variants)
Y, core
Y
Wishlist
Y, extension
Y
Send product email to friend
Y, extension
Y
Product tagging / search by tagging
N
Y
Breadcrumbs
Y, core
Y
CMS Features
Features
Spree
Magento
Blogging functionality
Y, extension
Y *extension
Static page management
Y, extension
Y
Media management
N
Y
Contact us form
Y, extension
Y
Polls
Y, extension
Y
Checkout Support
Feature
Spree
Magento
One page checkout
N
Y
Guest checkout
Y, core
Y
SSL Support
Y, core
Y
Discounts
Y, core
Y
Gift Certificates
N
Y
Saved Shopping Cart
N
Y
Saved Addresses
Y, extension
Y
Shipping Support
Feature
Spree
Magento
Real time rate lookup (UPS, USPS, Fedex)
Y, extension
Y
Order tracking
N
Y
Multiple shipments per order
Y, core
Y
Complex rate lookup
Y, extension
Y
Free shipping
Y, extension
Y
Payment Support
Feature
Spree
Magento
Multiple Payment Gateways
Y, core
Y
Authorize.net
Y, core
Y
Authorize and capture versus authorize only
Y, core
Y
Google Checkout
Y, extension
Y
Paypal Express
Y, extension
Y
Admin Features
Feature
Spree
Magento
Sales reporting
Y, core
Y
Sales Management Tools
N
Y
Inventory management
Y, core
Y
Purchase order management
N
Y
Multi-tier pricing for quantity discounts
N
Y
Landing page tool
Y, extension
Y
Batch import and export of products
Y, extension
Y
Multiple Sales reports
Y, core
Y
Order fulfillment
Y, core
Y
Tax Rate Management
Y, core
Y
User Account Features
Feature
Spree
Magento
User addresses
Y, extension
Y
Feature rich user preferences
N
Y
Order tracking history
Y, core
Y
System Wide Features
Feature
Spree
Magento
Extensibility
Y, core
Y
Appearance Theming
Y, core
Y
Ability to customize appearance at category or browsing level
N
Y
Localization
Y, core
Y
Multi-store, single admin support
Y, extension
Y
Support for multiple currencies
N
Y
Web Service API
Y, core
Y
SEO System wide: sitemap, google base, etc
Y, extension
Y
Google Analytics
Y, core
Y
Active community
Y, N/A
Y
The configurability and complexity of each feature listed above varies. Just because a feature is provided within a platform does not guarantee that it will meet the desired business needs. Magento serves as a more comprehensive ecommerce platform out of the box, but the disadvantage may be that adding custom functionality may require more resources (read: more expensive). Spree serves as a simpler base that may encourage quicker (read: cheaper) customization development simply because it’s in Rails and because the dynamic nature of Ruby allows for elegant extensibility in Spree, but a disadvantage to Spree could be that a site with a large amount of customization may not be able to take advantage of community-available extensions because they may not all play nice together.
Rather than focus on the platform features, the success of the development depends on the developer and his/her skillset. Most developers will say that any of the features listed above are doable in Magento, Spree, or Interchange (a Perl-based ecommerce platform that End Point supports) with an unlimited budget, but a developer needs to have an understanding of the platform to design a solution that is easily understood and well organized (to encourage readability and understandability by other developers), develop with standard principles like DRY and MVC-style separation of concerns, and elegantly abstract from the ecommerce core to encourage maintainability. And of course, be able to understand the business needs and priorities to guide a project to success within the given budget. Inevitably, another developer will come along and need to understand the code and inevitably, the business will often use an ecommerce platform longer than planned so maintainability is important.
Please feel free to comment on any errors in the feature list. I’ll be happy to correct any mistakes. Now, off to rest before RailsConf!
Comments