Solidus Core provides the essential ecommerce data models upon which the Solidus system depends.

Core models

Solidus implements over 200 models, and thus a deep inspection of each in this README would be overkill. Instead, let's take a quick look at the fundamental models upon which all else depend. Currently, these models remain in the Spree namespace as part of the legacy of forking Spree.

NOTE: Documentation is a work in progress

The documentation of Solidus Core is still in progress. Contributions following this form are welcome and encouraged!

Order sub-system

  • Spree::Store - Records store specific configuration such as store name and URL.
  • Spree::Order - The customers cart until completed, then acts as permanent record of the transaction.
  • Spree::LineItem - Variants placed in the order at a particular price.

User sub-system

  • Spree::LegacyUser - Default implementation of User.
  • Spree::UserClassHandle - Configuration point for User model implementation.
  • solidus_auth_devise - An official, more robust implementation of a User class with Devise integration.

Payment sub-system

  • Spree::Payment - Manage and process a payment for an order, from a specific source (e.g. Spree::CreditCard) using a specific payment method (e.g Solidus::Gateway::Braintree).
  • Spree::PaymentMethod - A base class which is used for implementing payment methods.
  • Spree::PaymentMethod::CreditCard - An implementation of a Spree::PaymentMethod for credit card payments.
  • Spree::CreditCard - The source of a Spree::Payment using Spree::PaymentMethod::CreditCard as payment method.

Inventory sub-system

  • Spree::ReturnAuthorization - Models the return of Inventory Units to a Stock Location for an Order.
  • Spree::StockLocation - Records the name and addresses from which stock items are fulfilled in cartons.
  • Spree::InventoryUnit - Tracks the state of line items' fulfillment.
  • Spree::ShippingRate - Records the costs of different shipping methods for a shipment and which method has been selected to deliver the shipment.
  • Spree::ShippingMethod - Represents a means of having a shipment delivered, such as FedEx or UPS.

Shipments sub-system

  • Spree::Shipment - An order's planned shipments including tracking and cost. Shipments are fulfilled from Stock Locations.

Developer notes


Run the tests:

bundle exec rspec