Open Source multi-language/multi-currency/multi-store E-commerce platform for Ruby on Rails with a modern UX, PWA frontend, REST API, GraphQL, several official extensions, and 3rd party integrations.
Last updated on: July 12 at 09:29 PM
source code bug trackerSpree is a complete open source e-commerce solution for global brands. It was started by Sean Schofield and is now developed by Spark Solutions. We're open to contributions.
See Spree in action: demo.spreecommerce.org
Or fire up your own demo on Heroku:
Admin panel credentials for your own Heroku demo:
spree@example.com
spree123
bin/setup
in spree_starter-main
directoryExtensions provide additional features and integrations for your Spree store
Spree is an open source project and we love contributions in any form - pull requests, issues, feature ideas!
Please review the Contributing Guide
Spree is released under the New BSD License.
Spark Solutions is a full stack eCommerce agency specialed in Spree Commerce, Ruby on Rails and JavaScript. We’ve been leading Spree open-source efforts since 2016 as its core team. We also do client work. Our project teams consist of Designers, Software Engineers, Testers and Project Managers practicing agile project delivery. We’ll integrate our team with yours to jointly architect, deliver, maintain and scale the software products you need. You drive the project with requirements and acceptance testing and we help you deliver faster using industry-standard project management and comms best practices.
We are passionate about open source software. We are available for hire.
tags | spree versions |
---|---|
master | s.version |
v0.2.0 | |
v0.4.0 | |
v0.4.1 | |
v0.5.0 | |
v0.5.1 | |
v0.6.0 | |
v0.7.0 | |
v0.7.1 | |
v0.8.0 | |
v0.8.1 | |
v0.8.2 | |
v0.8.3 | |
v0.8.4 | |
v0.8.5 | |
v0.9.0 | |
v0.9.1 | |
v0.9.2 | |
v0.9.3 | |
v0.9.4 | |
v0.10.0.beta | |
v0.10.0 | |
v0.10.1 | |
v0.10.2 | |
v0.11.0 | |
v0.11.1 | |
v0.11.2 | |
v0.11.3 | |
v0.11.4 | |
v0.11.99 | |
v0.30.0.beta1 | version |
v0.30.0 | version |
v0.30.1 | version |
v0.30.2 | version |
v0.40.0 | version |
v0.40.1 | version |
v0.40.2 | version |
v0.40.3 | version |
v0.40.4 | version |
v0.50.0 | version |
v0.50.1 | version |
v0.50.2 | version |
v0.50.3 | version |
v0.50.4 | version |
v0.60.0.RC1 | version |
v0.60.0 | version |
v0.60.1 | version |
v0.60.2 | version |
v0.60.3 | version |
v0.60.4 | version |
v0.60.5 | version |
v0.60.6 | version |
v0.70.0.rc2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.0 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.3 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.4 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.5 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.6 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v0.70.7 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.0.rc1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.0.rc2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.0.rc3 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.0.rc4 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.0 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.3 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.4 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.5 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.6 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.0.7 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.0.rc1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.0.rc2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.0 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.2.rc1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.3 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.4 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.5 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.1.6 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.0.rc1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.0.rc2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.0 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.3 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.4 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.2.5 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.0.rc1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.0.rc2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.0 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.1 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.2 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.3 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.4 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v1.3.5 | File.read(File.expand_path("../SPREE_VERSION", __FILE__)).strip |
v2.0.0.rc1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.0 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.4 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.5 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.6 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.7 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.8 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.9 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.10 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.11 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.0.12 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.0 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.4 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.5 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.6 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.7 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.8 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.9 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.10 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.11 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.1.12 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.0 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.4 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.5 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.6 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.7 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v.2.2.8 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.8 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.9 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.10 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.11 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.12 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.13 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.2.14 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.0 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.4 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.5 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.6 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.7 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.8 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.9 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.10 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.11 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.12 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.3.13 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.0.rc1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.0.rc2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.0.rc3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.4 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.5 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.6 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.7 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.8 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.9 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v2.4.10 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.0.rc1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.0.rc2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.0.rc3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.0.rc4 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.0 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.2 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.3 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.4 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.5 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.6 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.6.1 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.7 | File.read(File.expand_path('../SPREE_VERSION', __FILE__)).strip |
v3.0.8 | s.version |
v3.0.9 | s.version |
v3.0.10 | s.version |
v3.1.0.rc1 | s.version |
v3.1.0.rc2 | s.version |
v3.1.0.rc3 | s.version |
v3.1.0.rc4 | s.version |
v3.1.0 | s.version |
v3.1.1 | s.version |
v3.1.2 | s.version |
v3.1.3 | s.version |
v3.1.4 | s.version |
v3.1.5 | s.version |
v3.1.6 | s.version |
v3.1.7 | s.version |
v3.1.8 | s.version |
v3.1.10 | s.version |
v3.1.11 | s.version |
v3.1.12 | s.version |
v3.1.13 | s.version |
v3.1.14 | s.version |
v3.2.0.rc1 | s.version |
v3.2.0.rc2 | s.version |
v3.2.0.rc3 | s.version |
v3.2.0 | s.version |
v3.2.1 | s.version |
v3.2.2 | s.version |
v3.2.3 | s.version |
v3.2.4 | s.version |
v3.2.6 | s.version |
v3.2.7 | s.version |
v3.2.8 | s.version |
v3.2.9 | s.version |
v3.3.0.rc1 | s.version |
v3.3.0.rc2 | s.version |
v3.3.0.rc3 | s.version |
v3.3.0.rc4 | s.version |
v3.3.0 | s.version |
v3.3.1 | s.version |
v3.3.3 | s.version |
v3.3.4 | s.version |
v3.3.5 | s.version |
v3.3.6 | s.version |
v3.4.0.rc1 | s.version |
v3.4.0.rc2 | s.version |
v3.4.0 | s.version |
v3.4.1 | s.version |
v3.4.2 | s.version |
v3.4.3 | s.version |
v3.4.4 | s.version |
v3.4.5 | s.version |
v3.4.6 | s.version |
v3.5.0.rc1 | s.version |
v3.5.0.rc2 | s.version |
v3.5.0 | s.version |
v3.6.0.rc1 | s.version |
v3.6.0 | s.version |
v3.6.1 | s.version |
v3.6.2 | s.version |
v3.6.3 | s.version |
v3.6.4 | s.version |
v3.6.5 | s.version |
v3.6.6 | s.version |
v3.7.0.beta | s.version |
v3.7.0.rc1 | s.version |
v3.7.0.rc2 | s.version |
v3.7.0.rc3 | s.version |
v3.7.0 | s.version |
v3.7.1 | s.version |
v3.7.2 | s.version |
v3.7.3 | s.version |
v3.7.4 | s.version |
v3.7.5 | s.version |
v3.7.6 | s.version |
v3.7.8 | s.version |
v3.7.9 | s.version |
v3.7.10 | s.version |
v4.0.0.beta | s.version |
v4.0.0.rc1 | s.version |
v4.0.0.rc2 | s.version |
v4.0.0.rc3 | s.version |
v4.0.0 | s.version |
v4.0.1 | s.version |
v4.0.2 | s.version |
v4.0.3 | s.version |
v4.1.0.rc1 | s.version |
v4.1.0.rc2 | s.version |
v4.1.0.rc3 | s.version |
v4.1.0 | s.version |
v4.1.1 | s.version |
v4.1.2 | s.version |
v4.1.3 | s.version |
v4.1.4 | s.version |
v4.1.5 | s.version |
v4.1.6 | s.version |
v4.1.7 | s.version |
v4.1.8 | s.version |
v4.1.9 | s.version |
v4.2.0.beta | s.version |
v4.1.10 | s.version |
v3.7.11 | s.version |
v4.0.4 | s.version |
v4.1.11 | s.version |
v4.2.0.rc1 | s.version |
v3.7.12 | s.version |
v3.7.13 | s.version |
v4.0.5 | s.version |
v4.1.12 | s.version |
v4.2.0.rc2 | s.version |
v4.2.0.rc3 | s.version |
v4.2.0.rc4 | s.version |
v4.2.0.rc5 | s.version |
v4.2.0 | s.version |
v3.7.14 | s.version |
v4.0.7 | s.version |
v4.2.1 | s.version |
v4.2.2 | s.version |
v3.7.14.1 | s.version |
v4.0.7.1 | s.version |
v4.1.13.1 | s.version |
v4.2.3 | s.version |
v4.2.3.1 | s.version |
v4.0.8 | s.version |
v4.1.14 | s.version |
v4.2.5 | s.version |