Skip to content
Amanda Healey edited this page Oct 26, 2016 · 17 revisions

What is the best way to begin learning Solidus?

Start by learning Ruby and Rails. Once you understand Rails, we suggest reading the core test suite. It will give you a great idea what’s going on. Start with models, work to controller tests, etc. You could also make a few notes yourself on the associations between models so that you understand how products, variants, options, properties, and taxons are related in the code before you start trying to model any real data.

How do I submit an extension to the Solidus Contrib GitHub?

Generally we add stuff to soludusio-contrib if we can find someone to volunteer to maintain it for whatever release is out, as we collate them all here: http://extensions.solidus.io/. You'll also want to make sure that it has good test coverage so that we know when it breaks.

Can I use the spree_* extension with Solidus?

Maybe.

Spree extensions can't be used directly with solidus, because they will have spree as a dependency. Since Solidus is based off of Spree 2.4, extensions can usually be updated.

  1. You need to fork the spree extension.
  2. You need to update all dependencies from spree_* to solidus_* in the .gemspec file. So spree_backend becomes solidus_backend, spree_api becomes solidus_api and so on
  3. Make adjustments to changes between spree 2.4 and and the current version of solidus

What kind of changes depends on what the extension extends. The process will involve some trial and error.

Please have a look at https://github.com/solidusio and https://github.com/solidusio-contrib to see if someone has already done the work.

How do I upgrade from Spree-x.y

See Upgrading from Spree

Why is it called "Solidus"?

Solidus is the name of an old Roman coin and is also the name for a forward slash. We also like the the connotation of "solid" being in the name.

Why is the namespace Spree::

The Spree:: namespace is a little confusing, but it's well worth keeping as we have good compatibility with most spree 2-4-ish extensions and with existing stores, all of which will be referencing models in the Spree namespace.

The namespace is also used for table names, and used for STI (ex. in PaymentMethods, where the class name is stored in the DB).

This also happens in other successful forks, for example Jenkins still has a lot of classes namespaced under Hudson's namespace.

How do I customize the front-end?

Typically, people override the partials from Solidus' frontend gem. There's also the possibility of using the Deface gem to do "magic overrides", but it's usually simpler to just override whole files. If you're just starting out, this video series seems to have helped people.