The Official Spree FAQ
Can I Use Spree in my Project?
Of course. Spree is built on the popular Ruby on Rails framework and should run fine in any environment that typically supports Ruby on Rails applications. Spree is distributed as a Ruby gem and is used to “jumpstart” your application.
Instead of creating your app with the familiar:
rails <app-name>
You create your new commerce project using the following:
spree <app-name>
When used in this way Spree will create a brand new rails application for you and automatically provides the customized tweaks (such and environment.rb and boot.rb) necessary to run Spree.
Where is the app directory?
If you create a spree application you will notice that there is no app directory. All of the models, views, etc. that you would normally find in this directory do in fact exist, they’re just located inside of the Spree gem. While this may seem to strange to you at first, it actually makes it easier for you to customize Spree for your specific needs.
How do I create custom migrations, views, etc?
You can customize Spree as much as you wish through extensions. The idea is that you build a single custom extension that would contain all of the things that would normally be contained in your app directory. Spree will load these models, views and controllers in preference over the ones that normally ship with Spree. So its easy to add your own custom logic, etc. once you have a basic understanding of this process.
Which databases does Spree support?
Spree should run on any database supported by Rails. So far it has been tested on MySQL, PostgreSql and Sqlite3.
What is the difference between SPREE_ROOT and RAILS_ROOT?
SPREE_ROOT is the location where Spree is being loaded from. Usually this is a location within your local gem repository. RAILS_ROOT is the location of the application that is using Spree. Remember, Spree is used to build your commerce application, its not really meant to be used by itself as a commerce application. If you are running from the source, then SPREE_ROOT is the same as RAILS_ROOT.
How do gateways work in Spree?
By default you will be using the Bogus Gateway when running Spree in development mode. This is regardless of whether you have a real gateway configured in your admin settings. In test mode, you will use whatever gateway you have configured in your admin settings but you will be transmitting to your gateways test server (Active Merchant handles the gateway specific details on how this is done.) When Spree is started in production mode you will be using the live production gateway.