Child pages
  • RMA - Magento 2
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 54 Next »

RMA - Magento 2

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.

Compatibility: Magento Open Source 2.1.X - 2.3.0, Magento Commerce 2.1.X - 2.3.0

Product Page

Thank you for choosing Aheadworks!

Installing RMA

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 the contents of the RMA installation package to your store root directory

 4. In the SSH console of your server, navigate to your store root folder:

cd path_to_the_store_root_folder

run the following command:

php -f bin/magento module:enable Aheadworks_Rma

and then:

php -f bin/magento setup:upgrade


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

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


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

Composer Installation

1. Log in to your customer account at and navigate to Account -> Composer access;

2. Configure your store to work with the Aheadworks composer repository:

Add composer repository to composer.json by running:

composer config repositories.aheadworkscomposer in the Magento installation root.

Use the provided key pair as a login and pass. You can optionally save them in the global composer auth file.

 3. You can start using AW composer now.

 For extension names, navigate to Account -> Composer access.

 4. Open the root Magento directory on your server and send Composer the following command:

composer require <component-name>:<version>

Note: Use the previously copied component's name and version.

 5. Make sure that Composer finished the installation without errors. Flush the store cache, log out and log into the backend again.

Step 2 (Magento 2 Enterprise only)

Disable the native Magento 2 RMA functionality to avoid any conflicts:

  1. Navigate to Stores > Configuration > Advanced > Advanced;
  2. Disable Magento_Rma.

Migrating RMA from Magento 1 to Magento 2

What should I know before migrating the Aheadworks RMA for M1 to RMA for M2?


Consider the following information as a top priority, othertwise the migration might result in an accidental data loss.

  1. The Magento Data Migration Tool is required to be installed prior to starting the migration.
    The migration script relies heavily on the Magento Data Migration tool. Understanding how it works will be useful during the migration process.
  2. Backup the Magento 2 databases before performing the migration. This way, you will be able to revert any changes.
    RMA migration might involve rewriting database tables, backup is advised.
  3. All files attached to RMA requests should be migrated manually
    More information on manual migration can be found in the Magento instructions on manual migration.

Video Guide

A similar migration process is described in the educational Video Guide on the Aheadworks Youtube channel. Don't forget to enable subtitles for the video to follow the data migration process.

Migration Process

Below you can see the migration guide with more detailed step-by-step description.

 1. Log into your Magento server as a file owner and navigate to the directory where you have your Magento 2 store installed

 Click to view details

For example:

cd /var/www/my_magento2_store/

2. Install the Magento Data Migration Tool

 Click to view details

The installation instructions for the Magento Data Migration Tool along with the basic information can be found here:

Magento provides the two ways of installing the Data Migration Tool:

To make sure that the Migration Tool was installed successfully, navigate to vendor/magento/.

 3. Download the RMA migration distributive and unpack it to the desired location

 Click to view details

The RMA migration distributive can be downloaded from here:

Unpack the contents of the distributive and find the /etc and /scr folders inside.

 4. Copy the contents of the RMA migration distributive to the Magento Data Migration Tool's main folder

 Click to view details
Copy the /etc and /scr folders included in the RMA migration package to vendor/magento/data-migration-tool/.

Rewrite on prompt.

 5. Edit the config.xml file in the Magento Data Migration Tool

 Click to view details
Navigate to vendor/magento/data-migration-tool/etc/aw_rma/ and open config.xml for edit.
For more information about tag values, read the Magento Data Migration Tool configuration instructions.



Pay a close attention to the <aw_rma_remove_requests_before_migration> tag value you are entering if you already have RMA requests in your Magento 2 store and want to keep them intact.
The '1' value set by default will remove all the existing Magento 2 RMA requests. The '0' value will add new RMA requests to the already existing ones.

 6. Run the migration script in the console

 Click to view details

To start the migration process, run the following command considering the path to config.xml :

bin/magento migrate:data [-r|--reset] {<path to config.xml>}

You can also use the following command considering the path to config.xml:

bin/magento migrate:data -r vendor/magento/data-migration-tool/etc/aw_rma/config.xml

 7. Data migration is complete. Make sure to manually migrate the attached files and images.

  • Copy all files to the m1store_root/media/aw_rma folder;

  • Move the copied files to the m2store_root/pub/media/aw_rma/media folder.

Describing the Migration Process

The migration process consists of the two stages.

Stage 1. Synchronization

First, ‘Fields’ (RMA request options) in the Magento 1 RMA extension (hereinafter M1 RMA) and ‘Custom Fields’ in the Magento 2 RMA extension (hereinafter M2 RMA) are synchronized.

Field conformance looks in the following way:

  • Request type -> Resolution;

  • Package Opened -> Package Condition;

  • Reason -> Reason.

Conformance Logic

The M1 RMA ‘Fields’ values are compared by their names with the corresponding M2 RMA ‘Custom Fields’ values. In case of an exact match, the value is transferred directly to Magento 2. If the names do not match, the tool adds a new option to M2 RMA.



For example, if one of the names of the M1 RMA 'Request type' values does not match any title of the M2 RMA 'Resolution' custom fields, a new option will be added to the M2 RMA ‘Resolution’ custom field.

The same procedure is applied to all field values of M1 RMA. To avoid additional negative effects, we recommend you to migrate to a ‘clean’, non-customized RMA extension for Magento 2 in order to minimize the number of mismatches.

Stage 2. Migration

Request data is transferred with the preservation of the order_id, customer_id, product_id, and store_id fields. Therefore, it is important for all orders, products, customers, and stores to match each other.



For example, if the M1 product with ID 5 has product_name1, and the same product with ID 5 on M2 has other product_name2, then after the migration, you will see data discrepancy (the same applies to customers and stores).



Note: Ideally, you should migrate all your data to Magento 2 first and only then migrate the RMA requests.

When you transfer request statuses, the following conformance pattern is used:

  • M1 Pending Approval -> M2 Pending Approval

  • M1 Approved -> M2 Approved

  • M1 Package sent -> M2 Package sent

  • M1 Resolved (canceled) -> M2 Canceled

  • M1 Resolved (refunded) -> M2 Issue Refund

  • M1 (any other status) -> M2 Closed




Note: The migration configuration file data-migration-tool/etc/aw_rma/config.xml contains the aw_rma_remove_requests_before_migration option, which is enabled by default. This option clears all Magento 2 RMA requests created before the migration procedure itself. If necessary, you can disable the option and add the new migration data to the existing Magento 2 RMA requests.


Introducing 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 the 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.

My Returns Tab in a Customer Account

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 the 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.

Guest RMA Request

Now, let's request the return from the 'My Returns' section. To do this, click .

On the 'Select order to create RMA' screen, choose the order that you want to return.

Selecting an Order for Return

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.

Selecting Products to Return



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

Once done, click 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.

Message Area in a Customer Account



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

Message Thread in a Customer Account

Once done, click . The request is submitted.

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


Backend Configuration 

Manage RMA

'Manage RMA' is the main section of the extension.

Manage RMA Grid

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.

Creating RMA Requests from the Backend

To create a new return request, click above the grid.

New RMA Request

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.

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.
  • Customer Information. The information about the customer is automatically taken from the order.
  • RMA History. Here you can exchange messages with the customer and attach files if necessary.

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 above the area;
  2. You can leave an internal note for other admins. For this purpose, click . 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.

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 an approval.

Approving a Request

Approve the request by clicking .

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 confirm that the package has been sent back to your store.

RMA Shipping Label Example

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 .

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.

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.

Statuses and Email Templates Grid


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

Pending ApprovalAssigned to the new return request automatically
ApprovedAssigned upon the request's approval
Package SentAssigned by the customer confirming package sending
Package ReceivedAssigned upon package receipt confirmation
Issue RefundAssigned upon issuing a refund
ClosedAssigned upon closing a request either by you or customer
CanceledAssigned upon the request's cancellation

Email Templates

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.

Custom Fields Grid

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

To create a new custom field, click :

  • 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.

Once done with the new field, click .

The custom field is created. It can be found in the previously set area of the RMA request page.

Canned Responses

Canned Responses Grid

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).

Creating a New Canned Response

To add a new canned response, click 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.


Order Page Improvements

Returns Section

Returns Section on the Order Page

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 above the grid, you can create return requests on the spot.

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.

Extension Settings - 1

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.

 Product selection page block position...

Creating a New Return - 1

 Reasons and details page block position...

Creating a New Return - 2

 Policy block position...

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

Accepting Return Policy Regulations

Extension Settings - 2


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

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).

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.


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

Uninstalling RMA

Manual Removal

1. Disable the module by executing the following commands:

php bin/magento module:disable Aheadworks_Rma
php bin/magento setup:upgrade

2. Remove the extension files from the following folder:


Automatic Removal (via Composer)

1. Disable the module by executing the following commands:

php bin/magento module:uninstall Aheadworks_Rma

Product Page

Need Customization?

Magento 2 Custom Development Services by Aheadworks

You can always find the latest version of the software, full documentation, demos, screenshots, and reviews on
License agreement:
Contact Us:
Copyright © 2019 Aheadworks Co.

  • No labels