e-commerce software
open-source
rails/ruby based
For programmers
Current version 1.2 (young and usable)
-
spree-core
MVC for [Product, Variant, Order, Payment, Shipment, Inventory, Adjustments, Taxonomy ...] -
spree-api
Api backend for the resources -
promos Promotion related functionality
11 official, >7000 total
Official:
- store_credits
- affiliate
- related_products
- social
- comments
- paypal_express
- recently_viewed
- active_shipping
- wishlist
- simple_dash
- skrill
- depoyment service : puppet scripts
- deface : Template customization
Forks: 1192 Rails-4271, Bootstrap-10201, 34th (via github)
Watchers: 3478
Development activity: very active (via rubygems.org)
Within rails community: mixed
311 contributors,
SpreeCommerce Inc,
Ryan Bigg.
Magento (php)
OpenCart (php)
Prestashop (php)
Zencart (php)
Shopify (hosted)
Install ruby
apt-get install ruby
Install rubgems
curl http://production.cf.rubygems.org/rubygems/rubygems-1.8.24.tgz -o rubygems; tar -xvf rubygems; cd rubygems; ruby setup.rb
Install spree
gem install spree
rails new mystore
spree install
Start
rails s
ruby's open class and decorator loading
Order.class_eval
def price
lineitems_total - discounts if user.has_discounts?
end
end
Order.state_machines[:state] = StateMachine::Machine.new(Order, :initial => 'cart') do
event :next do
transition :from => 'cart', :to => 'address'
transition :from => 'address', :to => 'payment' , :if => :payment_required?
transition :from => 'confirm', :to => 'complete'
transition :from => 'payment', :to => 'confirm'
transition :from => 'payment', :to => 'complete'
end
end
checkout_flow do
go_to_state :address
go_to_state :delivery
go_to_state :payment, :if => lambda { |order| order.payment_required? }
go_to_state :confirm, :if => lambda { |order| order.confirmation_required? }
go_to_state :complete
remove_transition :from => :delivery, :to => :confirm
end