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: 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:

Access Key Management | RMA for Magento 2


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.

Shipping label | RMA for Magento 2

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.


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. 

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

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

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.

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 for Magento 2

| RMA for Magento 2

This is not actually a block position, rather, this is a link available for the customer when accepting the Return Policy regulations.

New return | RMA for Magento 2

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.

RMA | RMA for Magento 2

Email Notifications

This setting section defines email notification templates about the new reply by the store administrator to the customer's request (Reply by Admin) and the new reply by the customer to the request (Reply by Customer).

| RMA for Magento 2

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