Solidus includes a comprehensive returns system. This system includes logic for
customer returns, refunds, and exchanges. The
solidus_backend gem includes an
admin interface for managing returns and exchanges.
The returns system is built with an automated returns process in mind, and it can be extended to take advantage of the way that your store manages shipments, return shipments, or a third-party warehouse.
We recommend that you create a sandbox store to get familiar with the returns system. Create multiple return authorizations (RMAs), customer returns, and experiment with various reimbursement types, return reasons, and so on.
The following sections summarize the core models that make up Solidus's returns system.
The central model in Solidus's returns system is the
Many of the other models in the returns system require one or many return items.
Spree::ReturnItem tracks a lot of information about the return, and the
objects have many attributes. For example, it tracks whether the item is
resellable, whether the returned item has been received, and the total amount
that should be refunded or applied to the customer's store credit.
For more information about return items, see the Return items article.
A customer return starts with a return authorization. A store administrator
Spree::ReturnAuthorization (also called an RMA) for an order or part
of an order.
The RMA can authorize the return of one item or many items on the order. Once
the RMA is created, the
Spree::ReturnItems on it can be included in a new
See the Return authorizations article for more information.
Spree::CustomerReturn represents an item or a group of items that the
customer is going to return to you.
Similar to a return authorization, a
Spree::CustomerReturn can be associated
with one or many
Spree::ReturnItems from a single order.
Spree::Reimbursement represents your store's compensation to the customer
who is returning items. Since each
Spree::ReturnItem can be returned for a
different reason, you may have multiple reimbursements for a single
See the Reimbursements article for more information.
Spree::ReturnItem is associated with a
allows you to offer many kinds of reimbursements, like store credit, refunds,
Solidus is an open source platform supported by the community. We encourage everyone using Solidus to contribute back to the documentation and the code.