Boomerang for Craft CMS

Installation

Two commands. The install seeds a working state machine and eight return reasons, so the plugin does something on the first screen you open rather than after an afternoon of configuration.

Requirements

  • Craft CMS 5.3+
  • Craft Commerce 5.0+
  • PHP 8.2+

No other dependencies, no build step and no external service. The store-credit gateway and the manual label provider both run entirely inside your own install.

Install

composer require justinholtweb/craft-boomerang
php craft plugin/install boomerang

What the install seeds

Seven states:

StateKindOn arrival
Requestedrequestedemails the customer
Approvedapprovedemails the customer, offers a label
In transitawaitingoffers a label
Receivedreceivedemails the customer, restocks
Resolvedresolvedemails the customer, carries out the resolution
Rejectedrejectedemails the customer
Cancelledcancelled—

And eight reasons — doesn't fit, not as described, changed my mind, arrived damaged, faulty, wrong item sent, arrived too late, something else — each carrying what it implies for restocking, fees and analytics.

All of it is yours to rename, reorder, delete or replace. See The state machine and Configuration.

Editions

Lite (free)Pro ($129)
Customer returns portal●●
RMA state machine and history●●
Reasons, eligibility, the window●●
Refunds through Commerce●●
Restocking fees●●
Notifications●●
Store-credit wallet + gateway●
Exchange and replacement orders●
Restock into inventory locations●
Carrier return labels●
Return analytics●

Pro settings that survive a downgrade are ignored, not obeyed, and the control panel says which ones. Nothing is lost by upgrading later: a store that ran on Pro, lapsed, and upgraded again finds its credit lots and its label history exactly where it left them.

Permissions

Boomerang adds its own permissions, and separates two levels of trust:

  • Manage returns — see RMAs, move them along, edit items and notes.
  • Issue refunds and credit — pay a customer.

They are separate because moving an RMA along and taking money out of the store are different amounts of trust, and a returns desk usually wants the first for everybody and the second for two people.

Turning the portal off

The portal is enabled at /returns by default. Clear the Mounted at setting to unmount it — the action endpoints keep working, so you can route it yourself. See The customer portal.

More in Orders & Fulfillment

Pairs well with Boomerang

Everything that happens after somebody clicks Buy. Order numbers, invoices and packing slips, shipping rates, tracking, returns and downloads.