My Cart

User Manual - RMA

Magento 2 RMA completely arranges the return merchandise process in web stores. Customers can create return requests and monitor them from their accounts. Store admins can arrange requests from the backend by adding custom fields to an RMA request form, communicating with customers in the dedicated chat area, and sending email alerts and custom canned responses while requests are processed.

API documentation link



Installing M2 RMA

NOTE: To proceed with the installation of our additional modules, it is essential to first have the RMA module installed. Kindly refrain from installing additional modules if the RMA module is not yet installed.

NOTE: Please be very careful when uninstalling this module. This module uses a declarative DB scheme. Once the module is uninstalled the DB tables will be lost.

Step 1 (Magento 2 Community and Enterprise)

Command Line Installation

  1. Backup your web directory and store database
  2. Download the RMA installation package
  3. Upload contents of the RMA installation package to your store root directory
  4. In SSH console of your server navigate to your store root folder:
cd path_to_the_store_root_folder

run the following command: 

php bin/magento module:enable Aheadworks_Rma
php bin/magento module:enable Aheadworks_RmaReports (optional - more details in the Reporting section)


php bin/magento setup:upgrade


php bin/magento setup:static-content:deploy -f

     5. Flush store cache; log out from the backend and log in again

Make sure the installation is done from the FTP administrator account. Otherwise, set 775 permissions to the store root directory after the extension is deployed.

Composer Installation

If you are installing an extension from Aheadworks for the first time, you need to add our composer repository to your Magento store:

1. Login to your ssh console and navigate to your store folder:

cd path_to_the_store_root_folder

Run the following command:

composer config repositories.aheadworks composer

After the command was executed successfully, you can use the composer to install the products.

To install the extension:

2. Login to your ssh console and navigate to your store folder:

cd path_to_the_store_root_folder

 3. Run the following command to install the latest version of the extension:

composer require aheadworks/module-rma

if you need to install a specific version, run this command:

composer require aheadworks/module-rma:<version>


Specify the version of the extension in <version>

When prompted, enter Public Key (Username) and Private Key (Password):

Public Key (Username) and Private Key (Password) | RMA for Magento 2

Both Public Key (Username) and Private Key (Password) can be found in My Projects and Licenses in your personal account on our site:


4. Enable the extension:

php -f bin/magento module:enable <Module_Name>


Add the product name in <Module_Name>

Next, register the extension:

bin/magento setup:upgrade

Recompile your Magento store if you are in the Production mode:

bin/magento setup:di:compile

To verify that the extension is enabled, run this command:

bin/magento module:status

Clean store cache, by running the following command:

bin/magento cache:clean

Log out and Log in the backend again.

Want to use the Hyvä theme module?

To install the Hyvä theme module, you need to install the module via composer using command:

composer require hyva-themes/magento2-aheadworks-rma

To upgrade the extension:

5. To update or upgrade an extension:

Download the updated extension file. Take note of the module-name and version. Export the contents to your Magento root.

If a composer package exists for the extension, run one of the following.

Update per module name:

composer update aheadworks/module-rma

Updater per version:

composer require aheadworks/module-rma:<version>

Run the following commands to upgrade, deploy, and clean the cache.

php bin/magento setup:upgrade --keep-generated
php bin/magento setup:static-content:deploy
php bin/magento cache:clean

Step 2 - Disable native RMA

For seamless experience with the present RMA module and Magento 2.3 Enterprise Edition / Cloud Edition, make sure the native Magento 2 RMA is disabled. Refer to the following steps to do so:

  1. Navigate to Stores > Configuration > Sales> Sales;
  2. Set Enable RMA on Storefront and Enable RMA on Product Level to 'No'.

Get Data Migration Tool by clicking on the following links:




Uninstalling M2 RMA

Since Magento introduced declarative Database you need to be very carefull when uninstalling or disabling the module.

NOTE: Please be very careful when uninstalling/disabling this module. This module uses a declarative DB scheme. Once the module is uninstalled the DB tables will be lost.

Manual Removal

  1. Run command: 

bin/magento module:uninstall --non-composer Aheadworks_Rma

It will remove data patch wilth module sample data so you can install it again in future.

    2. Disable extension: 

bin/magento module:disable Aheadworks_Rma

    3. Run setup upgrade: 

php bin/magento setup:upgrade

It will remove module related tables from the system

    4. Remove module files manually:






Module Version 

Magento Version 


1.6.0  and earlier versions

2.3.Х - 2.3.6

2.4.0 - 2.4.3

7.4 and earlier versions

As of version 1.6.1


2.4.0 - 2.4.4

7.4, 8.1

As of version 1.6.2


2.4.0 - 2.4.5

7.4, 8.1

As of version 1.7.0

2.4.3 - 2.4.5

7.4, 8.1

As of version 1.7.1

2.4.4 - 2.4.6






Introducing M2 RMA

The Magento 2 RMA extension handles all the key aspects of return merchandise management:

  • RMA request creation & monitoring in both the frontend and backend;
  • Custom RMA fields for the RMA request form;
  • Per-item control (for multi-product returns);
  • Message thread with file attachments and admin notes;
  • Email alerts configured individually per RMA status;
  • Configurable canned responses.


Extension Logic

In the backend, the module generally consists of 4 grids and the configuration page. Store admins can create/monitor return requests, configure email alerts along with canned responses, exchange messages with customers in the dedicated thread (and optionally leave internal notes not visible to requesters and attach files to the thread), and add custom fields to the request form. On the storefront, customers can monitor their requests from a separate section, create new requests as well as use the same message thread functionality as in the admin area.



Getting Around

The Magento 2 RMA extension comes ready for work right after installation. Once installed, it introduces the 'My Returns' section to a customer account page and the 'Create New Return' link to the store footer. By following both of the links, you can create a new RMA request.

Now, let's request the return from the 'My Returns' section. To do this, click on the Create New Return button.

My Returns | RMA for Magento 2

Along with the 'My Returns' section and the 'Create New Return' link, customers can request a return from the order view page in the 'My Orders' account section. To do this, they should click on the 'Request Return' active link on the order details page.

Thanks to the RMA extension, you can allow your guest customers to ask for a return.

To create a return request, a guest customer should click on the 'Create New Return' active link in the store main page's footer.

Here the module adds the 'Guest Order' section where the guest should specify their email address used to place the order and the order number.

My Returns | RMA for Magento 2

Next, select the item(s) you want to return and specify the item quantity (if you need to return several items). Choose the Resolution for the return and Package Condition. Those are the custom fields that come with the RMA extension by default.

Message | RMA for Magento 2

You can add other custom fields or edit the existing ones in the corresponding backend section.

Once done, click on the Next button to proceed to the next step.

When the items are selected and custom fields are filled in, you can add a message to your request. The message will be emailed to an admin.

| RMA for Magento 2

Both customer and admin messages are combined in a thread that can be found under the corresponding RMA request.

Customer and admin messages | RMA for Magento 2

Once done, click on the Submit Request button. The request is submitted.

All the request-related information along with the message thread can be found in the 'My Returns' section.


Currently, products from canceled RMA requests are not available for a new RMA request.



Backend Configuration 

Manage RMA

Manage RMA is the main section of the extension.

Here you can manage all the RMA requests submitted by you and your customers. With the 'Actions' box above the grid, you can change the request status individually or massively to:

  • Approved;
  • Canceled;
  • Closed;
  • Issue refund;
  • Package received;
  • Package sent;
  • Pending approval.

Here, you can also export selected request or the whole list in CSV/Excel.

Currently, products from canceled RMA requests are not available for a new RMA request.

Creating RMA Requests from the Backend

To create a new return request, click on the New Request button above the grid.

The 'New Request' page consists of several sections:

  • General Information. With these options, you can select the order the request relates to. Next, you should select the Resolution you want to apply and Package condition reported by a customer if you use the above custom fields for your request forms.

Order Date - the column with order date. Admin can select/deselect the order date to show in the columns and filter by order date.

Order Date

Note: You can create RMA requests for completed orders only.

  • Products. Products included in the order. From the 'Products' grid, you can amend the number of returned items and the reason to send them back individually for each item. You can also remove certain products from the grid if you don't want them to be included in the request.

| RMA for Magento 2

  • Customer Information. The information about the customer is automatically taken from the order.

| RMA for Magento 2

  • RMA History. Here admin can exchange messages with the customer and attach files if necessary. 

Integration with Coupon Code Generator

Coupon Code Generator extension, when installed along with RMA by Aheadworks, allows admin to create a coupon right from an RMA request. Select the rule from the drop down list and click on the 'Generate Coupon' button.

| RMA for Magento 2

Messaging is possible in several ways.

  1. You can write an individual notification for the customer by specifying the message in the text area and clicking Reply above the area;
  2. You can leave an internal note for other admins. For this purpose, click Internal Note. The whole text area below will turn yellow to make you sure that the message is for internal use only;
  3. Finally, you can select a canned response to be sent to the customer in response to their particular actions.

Canned responses are customizable values. Configure them from the 'Canned Responses' page.

In addition to messages, you can also attach files to the newly created request.

In Magento 2.3.0 installed on PHP 7.2, the files can't be uploaded to the RMA request form in the admin area. The problem relates to the bug in the 2.3.0 version. To fix it, apply the following patch:

This problem will be fixed in Magento 2.3.1.

As soon as the new RMA request is created, you can manage it the same way as the requests created by customers.

Print Request History

Merchants can print RMA labels with RMA History included, so they could document what steps need to be taken to resolve the RMA issue.

To print RMA History go to Stores > Configuration > Aheadworks Extension > RMA > General and set Print Request History to ‘Yes’.

Print Request History - when the Print Request History setting is enabled, the history of messages in the request will be printed. If images are attached to messages, they will also be printed, all other file types will be ignored.

Creating RMA Requests without attaching it to an order from the Backend

As of 1.7.0 version, merchants are able to create requests from the backend without attaching it to an order, so they can handle requests purchased on a reseller website.


    1. To create a new return request, click on the ‘New Request’ button above the grid;

    2. Click on the ‘Select Products’ button;

    3. Choose products from the list using checkboxes and click on the ‘Add Selected Products’ button;

    4. Enter Products and Customer data: Product Price Per Item, Qty Of Items To Return, Reason, Customer Name and Customer Email.

Managing RMA Requests

Click the Request's id (all id's are presented as active links in the 'Request #' column) to proceed to the 'Manage Request' page. The page looks almost the same way as the 'New Request' page. The only difference is that the 'Status' and 'Last Update date' parameters are presented there.

On this page, you can close, cancel, and approve the requests pending approval.

With version 1.4.0, we've added the ability to arrange a non-linear workflow. Now you can change request statuses according to your business needs and increase the effectiveness of your specific RMA model.

Approving a Request

Approve the request by clicking Approve.

Now the email notifying the customer about the new reply and request status update will be sent.

Customers will now have the option to print shipping labels (to be included in the RMA package) and notify the admin (via chat message) that the package has been sent back to your store.

| RMA for Magento 2

Uploading label

Once the request is approved, the admin gets the "Upload Shipping Label' button available. Then the customer gets an additional 'Download Shipping Label' button on the frontend. The button is only available to the customer on 2 conditions:

  •    request is approved
  •    there is a file uploaded by admin

If any of the conditions is not met, the customer doesn’t see the download button.

Uploading label

Printing Label

Label printing is now available from the backend so that you can use the label for working with warehouses.

Manage RMA | RMA for Magento 2

Confirming Package Receiving

After the request has been approved, and the customer has confirmed that the package had been sent back to your store, you will need to confirm the receipt. Do this by clicking Confirm Package Receiving.

Creating a Replacement Order

As soon as the 'Package Received' status is applied, you can create a replacement order for the requests requiring a replacement.

Issuing a Refund

For the requests requiring a refund, you can create a credit memo right from the 'Manage Request' page.

Closing a Request

Finally, you can close the request as soon as the item is replaced or refunded.

That's it. The RMA request is successfully resolved. Let's proceed to the RMA extension's settings.

The Magento 2 RMA extension doesn't offer any refunding or postal services. Refunds are processed manually by any means necessary.

Tracking returns at customer page in the backend

The extension adds a corresponding tab to a customer page in the backend where you can refer to when it's needed to follow the RMA requests of a particular user.

Tracking returns at customer page | RMA for Magento 2

Statuses and Email Templates

As it was previously mentioned, the RMA extension comes set up and ready for work right after the installation. If required, you can always adjust RMA request statuses and edit the notification emails.

Custom Fields | RMA for Magento 2


There are 7 predefined RMA request statuses, each defining a particular stage of the RMA process.



Pending Approval

Assigned to the new return request automatically


Assigned upon the request's approval

Package Sent

Assigned by the customer confirming package sending

Package Received

Assigned upon package receipt confirmation

Issue Refund

Assigned upon issuing a refund


Assigned upon closing a request either by you or customer


Assigned upon the request's cancellation

If you need you can create a new unique status by clicking 'Add New Rule' at the Statuses an Email Templates page.  

After the Magento 2 RMA 1.4.0 release, you are able to assign priority to statuses in your store. You can sort statuses according to their priority and see the sequence of your RMA stages.


Depending on the request's type, it is also possible to send an email notification to the customer, store administrator, or both.

Along with defining templates for email notifications, you can edit the request thread's message to be displayed upon the request obtaining a particular status.

Custom Fields

As we already described in the Getting Around section, when submitting the request, you are suggested to fill in the 'Resolution', 'Package Condition', and 'Reason' sections to ask for the return.

All those are the predefined custom fields that come with the RMA extension by default. They can be edited in the 'Custom Fields' section.

To make sure that the customer sends an image of the product, there is a Custom Field that must be added per request. The Сustom Field allows clients to upload images on the frontend (multiple images) and admins to see and upload them in the backend. This option is only available per request (never per item).

Image Custom Field

Along with editing custom fields, you can also create additional ones depending on the products or services you are offering.

To create a new custom field, click Add Custom Field:

  • Define the name (for internal identification purposes) of the custom field and the field type: text field, text area, dropdown, multi-select;
  • Decide if the custom field should refer to the RMA request on the whole or to the item(s) previously ordered;
  • Set the return status upon which you and your customers can edit/view the field;
  • If necessary, make the field required (customers will not be able to submit the request without filling this field);
  • Add the custom field to the shipping label (this might help to identify the parcel);
  • Choose the website the custom field should be displayed at.
  • Adjust the field's frontend label (the title that will be displayed to customers).
  • Add options (attribute values available for the 'Dropdown' and 'Multiselect' field types) if you want the customer to select from the predefined set of attributes.

Actions Tied to Custom Fields

If the type of the field is 'Dropdown' or 'Multiselect', each option of the field can be configured as follows:

  • Is Default - the radio-box to identify the option to be shown in the field by default;
  • Enabled - the check-box to define is the option is enabled within the field;
  • Admin - the title of the option as it will appear on the Backend;
  • Action - one of the two actions can be assigned to an option of the field: Create a Replacement Order or Create a Credit Memo;
  • Statuses - the drop-box with order statuses;
  • Default Store View - the name of the option on the store-front (view-dependent).

Custom Field Specification Dependencies

Whenever admin is setting up an option and it’s values it will be able to manage dependencies. So no other option fields will be shown to the customer until the admin specified they should be visible whenever this value is selected. 

Custom Field Specification Dependencies

Custom Field Specification Dependencies

You can also decide when a custom field is mandatory to fill inWhenever the field becomes mandatory - it is mandatory to fill that in both from the frontend and from the backend.

Required Fields

Configuring custom fields in the above way means that when the order is in one of the specified for the option statuses the Manage Request [Order Number] page on the Backend will feature either (or both) the Create a Replacement Order or Create a Credit Memo button. These can be used by the Admin to either create a replacement order in response to the request or initiate a refund.

Canned Responses

From the 'Canned Responses' grid, you can create fast responses that can be used for status updates and other simple messages sent to customers. You can manage the existing responses either individually or massively and create new canned responses.

With the 'Select' box in the 'Action' column, you can edit or delete the selected responses, while the 'Actions' box above the grid makes it possible to change the status or delete the selected response(s).

| RMA for Magento 2

Creating a New Canned Response

To add a new canned response, click Add Canned Response above the grid. On the following page, you can enable the response, provide its title, select the appropriate store view and specify its content.

Note: Only enabled canned responses can be used for answers.

Automation Rule Management

Automation Rule Management are RMA rules which regulate the use of automatic actions against some pre-set conditions. Automations are meant to save time on routine RMA management operations, including those: New Task, Recurring Task, New Admin Reply and New Customer Reply.

Go to Sales → RMA → Automation Rule Management to browse, add, delete, and automations.

Automation Rule Grid

By default, the Automations grid lists two rules. These rules define automatic emailing of notifications upon reaching a certain event. 

The grid shows data within the following columns:

  • Name - the name of the automation

  • Status - the status of the automation (Enabled / Disabled)

  • Priority - the priority (0 is the highest one) of execution of automations in case of overlapping conditions thereof

  • Discard Subsequent - the setting that determines whether, in the case of overlapping conditions with other automations, this automation should take precedence and prevent subsequent automations with the same trigger event from executing

  • Event - the trigger event for the automation

  • Action -  an active link to select between actions: Edit, Delete

Delete or Edit the statuses of the automations individually or in bulk with the help of the Actions dropbox above the grid.


Automation rules work in compliance with the following pattern:

1) Cron prompts the event and launches the rules of automation;

2) The extension checks if any of the requests match the conditions of the event;

           a) If the conditions of the event are met, the extension launches the action of automation;

          b) If the conditions of the event are not met, the extension stops executing the automation and does not trigger it up until the next cron launch.

3) The extension stops executing the rule and does not trigger it up until the next cron launch

Create/Edit Automation

To edit automation, click on the name of thereof in the grid. To create an automation rule, click the Create New Automation button. You will be redirected to the Create/Edit Automation Rule page.

The Create New Automation page comes in three blocks as follows:

The General block of configuration options:

  • Status - set to Enabled to enable the automation for operation

  • Name - suggest the name of the operation

  • Priority - indicate a whole numeric value to tell the priority of the automation (for situations when conditions of multiple automations overlap)

  • Discard Subsequent Rules - set to Yes to discard the execution of any subsequent rules on execution of the present automation. Switcher discards rules only with the same ‘Event’

  • Event - select an event to trigger the automation. The following events are available for choice:

    • New Return - the Customer submits a new return;

    • Recurring Task - a recurring task that will be executed by the extension upon every cron launch;

    • New Customer Reply - the Customer replies to the return;

    • New Admin Reply - the Admin replies to the return;

The Conditions block prompts to specify the conditions for the event to call for the automation. A condition herein is the following pattern:


Each event comes with a specific set of variables, meaningful for the event. Various variables fetch various logical connectives and values, meaningful for the variable.

The connectives are: is / is one of / equals / is equal to / less than / greater than / equals or less than / equals or greater than etc.

To add a condition, click on the green plus icon (multiple conditions can be added). To complete the condition, refer to the dropbox on the left hand side and opt for a variable first. The dropboxes of connectives and values will get updated. Complete the condition by connecting the variable with its value.

To delete a condition, click on the red cross icon on the right to the value drop box. 

In the Actions section, specify which actions are to be taken upon meeting the specified condition(s).

Each event comes with a specific set of actions. Each action fetches a specific set of objects of action.

Actions include sending email notifications to both the Customer and Admin, Changing return status and Messaging to the Request Thread.

To activate an action, use a switcher to turn it on.

Once done, click Save in the top right or Save and Continue Edit to return to configuring the automation without page reload.

Automation Use Case


Resolution and Configuration

As an Admin, I want to set the Canceled status to the abandoned requests.

Request status is to get Canceled.

Automation configuration:

Event: Recurring Task;

Conditions: Last updated X days ago greater than 30  

Last Replied By equals Admin  

Request Status is not one of Canceled, Closed  

Action: Change Status To Canceled



Note: Please, make sure you also install and enable module-rma-reports, which will provide the integration between RMA and Advanced Reports modules.

Sales > RMA by Aheadworks > RMA Reports

Top 10 return items are shown at the top of the chart. Report is split into 2 tables. From a higher level report to a very detailed report per product. You can select the custom date range of the report. 

RMA Reports Magento 2

By pressing the hyperlink of the product it shows a detailed product report.

Products returned | RMA Reports Magento 2

RMA Detailed Report Magento 2

Order Statuses - allows to identify which orders will be considered to set up a report.

Order Statuses | RMA Reports Magento 2

RMA Custom Fields - allows to select the field on the basis of which the report will be generated. You can select multiple fields, the first field will be displayed in the first column, the second field in the second column.

RMA Custom Fields and Order Statuses | RMA Reports for Magento 2

Please note: Every return request has the date of creation and date of last modification. The report only includes requests on the date of completion. Subsequently if a request is canceled it does not appear in reports.



Order Page Improvements

Returns Section

If you want to see all return requests created for a particular order, you can do this right from the order view page. The 'Returns' section enumerates all the created requests in the dedicated grid. In order to manage a certain request, you need to click the active link with the ID of the request in the 'Request #' column.

With New Return above the grid, you can create return requests on the spot.

In order to see all the products in the list and indicate the reason for each product individually, the customer can add lines to the table. For each line customer is able to select an item for return, its quantity and the reason for return.

New return | RMA for Magento 2



Extension Settings


In the 'General' setting section, you can adjust the basic extension parameters:

  • Return Period - defines how many days after placing the order the customer can ask for the return;

  • Allow guests to request RMA - defines if guest customers can ask for the refund (email and order ID are required);

  • "Confirm Shipping" alert text - edits the 'Confirm Shipping' pop-up notification;

  • Approve New Requests Automatically - defines if the incoming return requests should be approved automatically.

| RMA for Magento 2

RMA Text Blocks and Policy

This setting section displays CMS blocks at the specific RMA request steps.

Every field represents the corresponding step with the box of all CMS blocks available in the store.

RMA text block and policy | RMA for Magento 2


This setting section defines your RMA department credentials such as the name displayed, email, and address.

File Attachments

This setting section makes it possible for customers to attach files to their return requests. Here you can also specify the maximum size of the uploaded files in megabytes and available file extensions.


Product Page

Write Your Own Review

Already used our product?

We would appreciate your feedback. Please, leave a review.

Only registered users can write reviews. Please Sign in or create an account
Report incorrect information

Still Have Questions?

Our customer care team is here for you!

Contact Us