Stall

Build Status Code Climate

Stall is a flexible e-commerce framework for Rails with some specific concerns in mind :

  • Product models and categorization handling is flexible and done in the app
  • The checkout process is easily configurable, overridable but has a standard working default
  • The whole system is modular and extensible
  • The core should stay small and vendor-specific code (payment gateways, shipping carriers) is done in separate gems
  • Authentication and admin is better handled by existing gems

Note : This gem is under active development, and is a complete rewrite of the glysellin gem, but with a more flexible structure, and with a complete test coverage

Installation

Add to your Gemfile and bundle install :

gem 'stall'

Then run the install generator :

rails generate stall:install

This will generate :

  • The stall models migrations
  • A default initializer file to configure the system
  • A default checkout wizard class making it easy to configure your checkout process

Usage

Making a model sellable

Stall allows you to make any model sellable by including the Stall::Sellable mixin into your model :

class Book < ActiveRecord::Base
  include Stall::Sellable
end

You can now add the "Add to cart" button to your templates :

= add_to_cart_form_for(@book)

For more informations see the Wiki page : Allowing customers to add products to cart

Configuring the checkout flow

The checkout process is completely flexible and can be overriden easily.

Please see the Wiki page : The checkout process

Licence

This project rocks and uses MIT-LICENSE.