Free, open source

Returns

Returns and RMA straight from My Account

Returns adds a self-service return (RMA) flow to WooCommerce. From My Account, a customer opens a return on an eligible order, picks items, sets quantities, chooses a reason and adds a note. You manage every request in wp-admin through a clear status workflow, and the customer always sees the current state.

Open source GPLv2
Open source, GPL licensed No account, no card Order ownership checks

Works with

WooCommerceGutenbergStorefrontAstraGeneratePressKadence

See it in action

The customer picks which order items to return, with a reason and details
The same return form on mobile
Which orders qualify, the return window and the reasons in the dashboard

Returns scattered across email

Without a simple process, returns arrive by email, phone or a contact form. They are hard to track, the customer does not know where their request stands, and you lose time handling each one by hand.

  • No self-service way to request a return
  • Requests scattered across your inbox
  • Customers do not know where their return stands
  • No single place for request history and status

Returns brings returns into one place

  • Customers request a return straight from an eligible order
  • An item picker with quantity, a reason and an optional note
  • An admin status workflow: requested, approved, rejected, completed
  • The customer sees the current status in My Account at every step

What you get in the free version

Everything you need to accept and run returns.

Request a return

A "Request a return" action on eligible orders, orders list and single order view.

Item picker

An item picker with per-item quantity, a reason dropdown and an optional note.

Ownership checks

Only the logged-in owner of an order can request a return for it.

Configurable eligibility

Choose eligible order statuses and a return window in days; 0 removes the time limit.

Private record + email

Each request is saved as a private custom post type and emailed to the merchant.

Status workflow

An admin management screen: requested, approved, rejected, completed.

Customer status list

A status list in My Account so shoppers can track their returns.

Accessible and mobile

Accessible, mobile-friendly, dark-mode-aware markup with inline help on every setting.

Up and running in three steps

Set eligibility and test the first request.

01

Install

Activate Returns alongside WooCommerce.

02

Set eligibility

In WooCommerce → Returns, choose the eligible order statuses and the return window in days.

03

Test a return

As a customer, request a return from My Account and move it through the statuses in wp-admin.

Who it is for

When you need an orderly returns process without a heavy system.

Retail stores

Customers request returns themselves; you move them through statuses.

  • Self-service
  • Status workflow
  • Merchant email

High-return stores

Every request in one place instead of your inbox.

  • Private record
  • Item picker
  • Reason and note

Stores that value order

Customers always see the status; you keep the history in wp-admin.

  • Customer statuses
  • Eligibility and window
  • Ownership checks

What PRO adds, and why it matters

Status-change emails

Notify the customer when a return is approved, rejected or completed (shipped).

Refund amount line

Include the refund amount in the completed-status email (shipped).

Store credit line

Include store-credit code and amount in the completed email (shipped).

Return shipping labels

Generate return shipping labels for approved requests (ShippingLabels, shipped).

Automatic store credit

Issue store credit automatically when a return is completed (AutoStoreCredit, shipped).

Return-reason analytics

A dashboard of return reasons, rates and trends to spot the products and causes driving returns (ReturnReasonAnalytics, shipped).

Refund actions

Process WooCommerce refunds from the return request screen (RefundActions, shipped in 0.6.0).

What you get: FREE vs PRO

PRO keeps everything in the free plugin and adds the modules below.

Feature FREE PRO
Self-service return request
Item picker with quantity and reason
Order ownership checks
Eligibility: statuses and return window
Admin status workflow
Status list in My Account
Admin email on new request
Customer email on status change ×
Per-status opt-in notifications ×
Custom footer on status emails ×

Returns vs WooCommerce Returns & Warranty vs Return Refund & Exchange

How Returns compares to the popular WooCommerce returns/RMA plugins.

ReturnsWooCommerce Returns & WarrantyReturn Refund & Exchange
Free version YesNo (paid only)Yes
Customer self-service return requests YesYesYes
Item-level selection YesYesYes
Eligibility / ownership checks YesYes
Admin status workflow YesYesYes
Customer-facing status updates YesYes
Open source (GPLv2) YesGPL (paid only)Core GPL
Paid plan price from €29/yrPaid (no free)Free + Pro

Competitor data and pricing as of June 2026; check the vendors' sites for current pricing.

Need more? Returns PRO

FREE covers the full request-and-status flow. Returns Pro adds status emails, return labels, automatic store credit, analytics and WooCommerce refund actions from the RMA screen.

  • Status-change emails (shipped)
  • Refund actions from the RMA screen (shipped)
  • Return shipping labels and store credit (shipped)

Support and resources

Every plugin has its own documentation with setup walkthroughs. Bugs and questions go to the public GitHub repository for that plugin, we answer in the open.

Frequently asked questions

Does it require WooCommerce?

Yes, Returns requires WooCommerce to be installed and active. The plugin declares WooCommerce as a required plugin (Requires Plugins) and does nothing without it. The return-request action appears in the My Account → Orders view that WooCommerce provides.

Which orders can be returned?

Returns can be requested for orders in the statuses you choose under WooCommerce → Returns; the defaults are Completed and Processing. The order must also fall within the return window counted from the order date (30 days by default). Set the window to 0 to accept returns with no time limit. Orders outside the chosen statuses never show the return link.

Does it issue refunds automatically?

No. Returns records the return request and tracks its status, but it does not move money. You process any refund on the standard WooCommerce order screen. The return record keeps the request and the status you set by hand in one place.

Where do return requests go?

Each submission is emailed to the store admin (the site admin_email address) and saved as a private "Return Request" record under the WooCommerce menu in wp-admin.

Can a customer return the same order twice?

No. Once a return request exists for an order, the "Request a return" action is hidden. Instead of the form, the customer sees a notice that a return has already been submitted for that order. A repeat submission is also blocked on save.

Do the settings have help?

Yes. The settings page under WooCommerce → Returns shows a description under each field explaining what the option does, including a worked example of the return-window deadline. The admin styles are accessible, responsive and dark-mode-aware via prefers-color-scheme.

How does Returns compare to WooCommerce Returns & Warranty and Return Refund & Exchange?

All handle customer returns and RMA. Returns offers self-service requests, item selection and a status workflow free and open source (PRO from €29/yr), while the official WooCommerce Returns & Warranty is paid-only. Pricing as of June 2026.

Add self-service returns to your store

A request from My Account, a status workflow and a customer-facing view. The full FREE edition under GPL.

Read the docs

FREE is the full request-and-status flow, PRO adds status emails, shipping labels, store credit, analytics and refund actions.