This document is a high-level working draft. Where and how this documentation will exist is still up for discussion.
Note that list items that are crossed out mean that essential documentation
for that topic has been merged.
TBD. This documentation will likely re-present content from the developer documentation in a simplified way. This would be specifically concerning the admin panel UI, ecommerce concepts that are integral to Solidus, and doing business day-by-day with it.
It goes without saying: this whole guide should be clearly marked as a guide for developers.
Guides appropriate for developers who haven't used Solidus before. This section acts as an introduction and bridge into the other sections.
- Introduction to Solidus
- How is Solidus different from Spree?
First-time installationDeveloping SolidusInstallation options- Before you start development
- Spree and Solidus data models
- Overview of Solidus gems
- Common development patterns and best practices
- Links to other useful Solidus documentation for new Solidus developers
- Contributing to Solidus
Details core Solidus functionality, concepts, and extending their functionality. This section would cover the store elements that most developers would need to change in some way for a store.
For example, "As a developer, I need to change the customer signup form so that it includes custom fields."
- Cart
- Checkout
- Standard checkout behavior
- Optional registration step
- Address information
- Delivery options
- Payment step
- Order confirmation
- Optional registration step
- Customizing the checkout flow
- Checkout domain-specific language (DSL)
- Add or remove steps from the checkout flow
- Checkout breadcrumbs
- Payment profiles
- Coupon codes
- Standard checkout behavior
- Users (Accounts)
Addresses- Authentication
solidus_auth_devise
- Custom authentication setup
- The user model
- Add custom fields for user accounts
- Logged in customer areas
- Guest accounts
- Inventory
- Stock management from the admin panel
- Return authorizations
- Inventory tracking
- Stock management from the admin panel
- Locations
OverviewCountries and statesZones
- Mail
- Mailers
- Orders
- Overview of the order flow
- The address model
- The order model
- Order adjustments
- Order states
- Line items
- Order updates
- Cancellations
- Payments
- Payment states
- Payment methods
- Bogus payment methods
- Payment processing
- Store credit (Wallet)
- Auto-capturing payments
- Logs
- Custom gateways
Products and variantsOverviewMulti-currency supportVariantsMaster variantsOption types and valuesProduct propertiesProduct imagesPaperclipTaxonomies and taxons
- Promotions
- Overview
- Promotion handlers
- Promotion actions
- Promotion rules
- Create custom promotion actions
- Create custom promotion rules
- Shipments
OverviewCartons(stub)Custom shipping calculators
Shipment setup examplesSimple exampleComplex exampleShipping method filterssolidus_active_shipping
extension
Split shipmentsShipments user interface
- Taxation
OverviewCustom tax calculatorsDisplaying pricesDefault tax calculator- Dealing with multiple tax jurisdictions
- Example tax setups
Simple sales tax exampleSimple VAT exampleComplex sales tax example- Complex VAT example
Value-added tax (VAT)
Details store functionality that would not require changes for typical stores. This functionality would likely be changed only in the context of larger projects where Solidus's built-in functionality would need to be extended or changed more dramatically.
For example, "As a developer, I need to create a custom frontend for Solidus." Or, "As a developer, I need to create custom calculators for a subscription product, where shipping charges change overtime as customers remain loyal."
These topics would be inherently more customization-heavy.
- Assets
solidus_frontend
solidus_backend
Overriding Solidus assetsAsset management (Rails assets pipeline)
- Calculators
- Overview of typical calculators
- Create a custom calculator
- Calculated adjustments
- Configuration and Preferences
- Main configuration object (Spree initializer)
- Model preferences
- Defining preferences
- Accessing preferences
- Site-wide preferences
- Databases
- Extensions
- Installing extensions
- Extension development
- Common problems and troubleshooting
- Internationalization (i18n)
- Localization
- Multi-language stores
- Multi-country stores
- Permissions (Roles, Access Controls)
- Testing
- Solidus test suite
- Extension testing
- Writing Solidus tests
- Views, models, and controllers
- Class extension points
- Decorators
- Override controller action responses
This section discusses hygiene and configuration for deploying and administrating a server that runs Solidus.
- Deployment
- Cloud deployments
- AWS
- Heroku
- Recommended deployment configurations
- SSL
- Cloud deployments
- Content delivery networks (CDNs)
- Image storage with Amazon S3
- Migration
- Security
- Upgrades
- Safe upgrade checklist
- Common upgrade problems