public
Description: Spree is a complete open source commerce solution for Ruby on Rails.
Homepage: http://spreehq.org
Clone URL: git://github.com/schof/spree.git
spree /
name age message
file .gitignore Thu Sep 11 13:03:29 -0700 2008 Merge branch 'master' of git://github.com/sonny... [schof]
file CHANGELOG Wed Oct 01 09:53:27 -0700 2008 Fixed an issue with frozen rails + frozen spree... [schof]
file CONTRIBUTORS Fri Sep 26 13:31:25 -0700 2008 Preparing for upcoming 0.4.0 release. [schof]
file INSTALL Mon Apr 21 18:17:33 -0700 2008 updated documentation [schof]
file LICENSE Tue Apr 15 19:58:05 -0700 2008 more fixes for the spree project generation [schof]
file README.markdown Wed Aug 13 04:56:20 -0700 2008 Renamed public/.htaccess to allow spree working... [calas]
file Rakefile Wed Apr 16 11:49:32 -0700 2008 improved bootstrap process [schof]
directory app/ Thu Oct 09 16:24:07 -0700 2008 Merge branch 'calam/master' [schof]
directory bin/ Fri Jun 20 11:37:36 -0700 2008 Fixed a bug with the 'spree' command introduced... [schof]
directory config/ Thu Oct 09 16:24:07 -0700 2008 Merge branch 'calam/master' [schof]
directory db/ Tue Sep 30 08:44:47 -0700 2008 Fixed a few minor issues with sample taxon data. [schof]
directory lang/ Thu Oct 09 16:24:07 -0700 2008 Merge branch 'calam/master' [schof]
directory lib/ Wed Oct 08 08:04:49 -0700 2008 Fixed a problem with the gateway routing. #88 [schof]
directory log/ Wed Apr 30 19:01:05 -0700 2008 Updated ignore file to reflect new directory st... [schof]
directory public/ Tue Sep 30 12:53:17 -0700 2008 Refactored taxonomy browsing to be more restful. [schof]
directory script/ Tue Jul 08 18:29:24 -0700 2008 New extension script for installing extensions ... [schof]
directory spec/ Thu Oct 09 16:39:59 -0700 2008 Stubbed the breadcrumbs helper method. [schof]
directory stories/ Tue Apr 08 13:03:01 -0700 2008 additional refactoring related to engines move [schof]
directory test/ Fri Sep 26 12:22:31 -0700 2008 Removed empty unit and functional tests. [schof]
directory vendor/ Tue Sep 23 12:14:38 -0700 2008 Merge branch 'master' into taxonomy [schof]
README.markdown

SUMMARY

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.

QUICK START

Running from sources (latest and greatest features)

  1. Clone the git repo

    git clone git://github.com/schof/spree.git spree
    
  2. Install the gem dependencies

    rake gems:install
    
  3. Bootstrap the database (run the migrations, create admin account, optionally load sample data.)

    rake db:bootstrap
    
  4. Start the server

    script/server
    

Running the Gem

  1. 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

  2. Create Spree Application

    spree <app_name>
    
  3. Create your database and edit the config/database.yml to taste.

    rake db:create
    

    You can skip this step if using sqlite3 as your database.

  4. Bootstrap

    cd <app-name>
    rake db:bootstrap
    
  5. Launch Application

    script/server
    

Browse Store

http://localhost:xxxx/store

Browse Admin Interface

http://localhost:xxxx/admin

Deploying

Deploy spree as a normal rails application. If you use apache+cgi/fastcgi take a look at the example .htaccess located in

public/.htaccess.example

i18n/l10n Support?

Basic localization and internationalization support is now added using the Globalite Plugin from Matt Aimonetti.

Working features:

  • Rails Localization
  • UI Localization

In the near future:

  • Content Localization

Please read this, this and this to understand how the plugin works.

Please, please, please ask Sean how you can help, lot of work is still to be done.

UPDATE: Take a look at i18n page on Spree wiki

Is Spree Ready for Production?

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.

  1. Write your own
  2. Use Spree as your starting point and do lots of custom coding
  3. 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.