Spree is a complete open source commerce solution for Ruby on Rails. It was developed by Sean Schofield under the original name of Rails Cart before changing its name to Spree.
Install spree Gem
$ sudo gem install spree
NOTE: This may take a while. The gem currently includes a frozen version of Rails 2.0.2
Create Spree Application
$ spree <app_name>
Create your database and edit the config/database.yml to taste. You can skip this step if using sqlite3 as your database.
$ cd <app-name> $ rake db:bootstrap
I have been asked by several people about the status of the Spree project. I thought I would take a moment to address the current state of the codebase and whether or not its “production ready.”
In my opinion, you can use Spree in a real world commerce application right now. This is especially true if you are already committed to using Ruby on Rails. What are the drawbacks to doing this? The major drawback is that Spree is still “rough around the edges” so you will be doing a lot of the polishing yourself. For instance, if you want to have FedEx shipping calculations you will need to write/port your own. On the other hand, the basic admin functionality is working and the ActiveMerchant plugin support means you don’t have to worry about credit cards. In fact, I have already built two production sites with this software (under the old RailsCart name).
The only other Rails commerce application I am aware of is Substruct. The last I looked at this project it was fairly basic as well. So if you are going to start building your Rails project today, you have three choices.
- Write your own
- Use Spree as your starting point and do lots of custom coding
- Use Substruct as your starting point and do lots of custom coding
If you are uncomfortable with these three options then you should consider another application framework.
The good news is that Spree is rapidly improving with each passing day. The major effort right now is to rejigger the data model so that it is rock solid. There is nothing “wrong” with the current data model which is why it is ok to build a production Spree app with the existing software. We’re just trying to make the data model as “future proof” as possible. The more we improve the data model now, the less disruptive it will be for users to upgrade to subsequent versions of the software.
When will this refactoring be done? Our goal is to have our first beta release in time for RailsConf (May 29). This means we will pushing hard for another 6-8 weeks on all things data model. Once we go “beta” we be on the next level of stability. There will be a lot less coding needed to use Spree for your production site and we also hope to have a standardized approach for the custom code you do need to write.