For more details see how the RMA extension works.
Manage product returns and exchanges effectively with the powerful RMA for Magento 2 module. Make these processes simple and enhance your customer service.
Customers can create requests right from their accounts in 2 ways.
It can be done right in the My Orders tab.
Also, they can view and manage all requests in the My Returns tab and select the order they want to return.
After choosing the order to return, a customer needs to specify the most important info about the request.
By the way, it is possible to open the 'My Returns' tab directly from the header block.
For customers, it is allowed to create requests according to return reasons store admins create in the backend settings.
To view and edit all reasons, please go to Admin Panel → Sales → RMA Settings → Return Reasons.
On a handy grid, you can see reasons’ Titles, Positions, Statuses and also check who is supposed to pay for shipping: a customer or the store owner.
To create a new one, hit the Add New Reason button.
Enabled - set to Yes to activate the reason.
Title - specify the title that will be displayed on the grid to your store admins.
Position - set the position of a new reason among the other reasons displayed on the frontend.
Who Pays for Shipping - specify who is supposed to pay for shipping according to the reason for return request. The information will be displayed to a customer while creating a request.
Label - customize the title of the reason that will be displayed to your customers.
You may adjust the Label for each particular Store and Store View.
To submit the request, a customer also needs to choose the condition of the product.
To adjust this step, go to Admin Panel → Sales → RMA Settings → Item Conditions.
Conditions’ Titles, Positions and Statuses are displayed on the grid. Easily edit any of them via Action column or delete them in bulk using Actions dropdown menu.
To create a new one, click Add New Condition.
Here you also need to Enable the condition, specify its Title, Position and Labels.
The next step for a customer is to choose one of the resolutions available in your store.
To configure the resolutions, navigate to Admin Panel → Sales → RMA Settings → Return Resolutions.
Click the Add New Resolution button.
Enable the resolution, specify its Title, Position and Labels.
With the extension, you can set various return rules for all the products in your store. Customers will see it on product pages in the More Information tab and in their shopping carts (if these options are enabled in the general setting).
If some products are non-refundable in your store, customers will not be able to create return requests. Thus, you won’t have to handle these requests manually.
To view or edit all existing rules, go to Admin Panel → Sales → RMA Settings → Return Rules.
On a handy grid, you can see Rules’ Names, active Statuses, Priority and Resolution Periods.
Hit Add New Rule button to create a new return rule.
Expand the General Settings tab.
Enabled - set to Yes to activate the rule.
Return Rule Name - specify the name that will be displayed in the backend.
Priority - set the priority of the rule. It is useful in a situation when one particular product fits the conditions of several return rules. In such a case the rule with the highest priority will be applied to the product.
Websites - assign the rule to particular websites if needed.
Customer Groups - select customer groups to which the rule will be applied.
In the next tab specify the period for each resolution you’ve created. The default resolution period is applied to all resolutions inside the rule unless the admin sets the values for each resolution individually.
Choose the products to which the rule will be applied using flexible conditions.
You can also create rules according to which the particular items will be non-returnable. For example, you want to forbid returning products that were on sale. In this case, set the resolution periods to 0 and choose the appropriate condition.
When a return request is created, a customer can easily track the state of the request in his account.
There are 5 possible states: Processing, Approved, Delivered, Completed (these states are displayed in a customer’s progress bar) and Canceled.
Every RMA request usually passes 4 basic statuses:
In some cases, a request can be Rejected - an admin rejects the request or a customer cancel it if no longer needed.
We display the current state of the request to the customer on the progress bar of the request page. But before the request reaches each particular state, it can have several statuses, e.g. ‘Need Details’. With the extension, you can create as many statuses as you need and customize the conditions according to which the request will get to the next state.
To manage all the statuses, please go to Admin Panel → Sales → RMA Settings → RMA Statuses.
On the grid, all the statuses and their states are displayed. In the Admin Grid column, you can see the grid to which the requests will be moved if they reach the specified status.
Click Add New Status.
Enable the status.
Title - specify the title of the status that will be displayed in the backend settings.
Request State - assign the necessary request state to the status. An appropriate request state will be displayed on the progress bar on the frontend when the status is set for the request.
Is Initial Status - activate this option if you want to automatically assign all new requests to this status. Please mind that there can be only one initial status.
Automatically Set Status on Event - when a customer performs the selected action in his RMA request, the status of the request is automatically updated to the current one.
Move Request to Grid - when a request switches to the current status, it is moved to the grid selected in this option. Thus, an admin can create a comfortable for him workspace by removing all unnecessary requests from the particular grid or placing requests that need admin actions to the separate ‘Manage Requests’ grid. This kind of workflow allows to save admins’ time and effort since they can see all the requests they need to approve on a separate grid.
Label Color - choose the color for the state to simplify its processing. Click the field to use a handy color-picker tool.
Position - set the position of the status among the other statuses.
Label - customize the title of the status that will be shown to a customer in his account.
Description - in the description field you can specify the instructions for customers concerning the current state. These instructions will make each step of the RMA process extremely clear.
Send Email to Customer - enable this option if you want the notification to be sent to the customer when status value changes to the current one.
Send Email to Admin - activate this option if you want the notification to be sent to the admin when the status value changes to the current one.
Send Text to Chat - set to Yes if you want the notification to be sent to the chat when status value changes to the current one.
Chat Text - if enabled, fill in the text that will be sent.
Save the status.
Let’s see how statuses are changing during processing. According to our default settings, all new requests are displayed on the Manage Requests grid with a New Request status.
An admin clicks this new request to approve it.
Here we see that a customer didn’t attach any files and did not specify the request details. So an admin changes the status to ‘Need Details’ and sends the message to a customer.
According to the settings, the ‘Need Details’ status still remains in the Pending state, but the request is to be moved to the ‘Customers’ Pending Requests’ grid.
Thus, the request is moved to another grid with the specified status.
A customer sees that he needs to provide the details and updates the info using the chat.
The request automatically moves to the ‘Manage Requests’ grid with an updated status.
The status changes according to the action performed by a customer. In our case, if a customer adds a comment, the status is changed to ‘Updated by Customer’.
An admin again opens the request, sees the details and decides what to do further: approve it, reject or ask for other details.
Here an admin approves the request. If the store is supposed to pay for shipping, an admin adds tracking information and attaches the shipping label. The state is changed in the progress bar and a customer can see further instructions.
The instructions are added during a new status creation with the WYSIWYG editor.
In addition to this, you can add special widgets that are necessary for advanced RMA process: Shipping Label Button and Packing Slip Button.
Shipping Label allows improving the customers shopping experience in cases when a store is supposed to pay for shipping. A user just needs to press the button and download a shipping label. Packing Slip is also generated automatically to make the shipping process even easier for a customer.
When a product is shipped, an admin sees the Received state and resolve the request according to return rules and chosen resolution.
A customer checks the state in the account and rates the work of a manager so that an admin could analyze and improve RMA processing.
All completed requests are moved to the Archive Requests grid where you can see their Dates, Managers, Rating, and Statuses.
You can create a new order based on a return request right from the View Return Request page.
Just click the New Order button.
You will be redirected to the order creation page. All data provided in the return request will remain. Change the required parameters and hit the Submit Order button.
A new order is created. You can go back to return management from this page.
To adjust the basic RMA setting, go to Admin Panel → Stores → Configuration → RMA.
Expand the General tab.
Module Enabled - select Yes to enable the extension.
URL Prefix - specify the prefix that will be used for a route name.
{base_store_url}/{URL prefix}/account/view/request/
For guests:
{base_store_url}/{URL prefix}/guest/login/
Allow Guest RMA - choose Yes if you want to allow your guest visitors to submit return requests as well.
Confine Guest RMA to the Current Store View - when enabled, guests are only allowed to create RMA requests for orders made from the current store view. RMA for orders from other store views will not be available.
Hide Billing Last Name from Guest RMA Form – set to Yes if you want to hide the Billing Last Name field on the RMA form, allowing guests to submit RMA requests using only the order ID and customer email or zip code.
Allowed Order Statuses for RMA - select order statuses for which RMA will be allowed.
This is how RMA looks like for a guest visitor (with the Hide Billing Last Name from Guest RMA Form enabled):
Display Return Information on Product Page - if Yes, resolution periods (in days) will be displayed on product details pages in the ‘More Information’ tab.
Display Return Information on Shopping Cart Page - if Yes, resolution periods (in days) will be displayed for each product in the shopping cart.
Ask Customers to Leave Feedback - set Yes to provide your customers with the ability to leave feedback, or just set No to disable 'How do you rate the work of a manager' pop-up.
Max Message Attachment File Size (KB) - limit the size of allowed attachments if needed.
With the extension, you can create your own return policy and display it to customers to make your RMA maximally clear.
Enable Return Policy - if Yes, a customer will have to accept the Return Policy before submitting a Return Request.
Return Policy CMS Page - select the CMS magento orders and returns page to redirect your customers to.
The example of RMA Policy on the frontend:
In the RMA Custom ID Number tab, you can customize the display of RMA request numbers.
Enable - set to Yes to customize the RMA request numbers.
If enabled, the customized RMA request numbers will be displayed on the Manage Requests grid, Customers' Pending Requests grid, Archived Requests grid, in the customer account (My Returns tab), and in emails.
Number Format - specify the RMA number format to replace the default format.
To ensure the uniqueness of the RMA request numbers, consider using various variables. Please refer to this list to find the necessary ones:
For instance, if RMA-{yy}-{mm}-{dd}-{rma_id} is specified in the Number Format field, you will have RMA numbers of the kind: RMA-13-08-15-1.
RMA ID Padding - specify the total number of digits in the RMA ID number. If you want all RMA ID numbers to have 6 digits, set the padding to 6. For example, if the RMA ID is 24 and the padding is 6, the result will be '000024.' Leave it as '0' (zero) to avoid adding leading zeros.
Expand this tab to adjust the carriers that will be available for a customer to be selected while attaching a Tracking Number to the RMA Request.
Specify a Carrier Code and a Carrier Label.
Using this tab, you can notify both customers and your RMA managers about new requests. In addition to this, you may enable notifications for customers in cases when a manager created a new message without changing the status.
Specify Email Senders, and Receivers (for managers) and choose Email Templates according to which the emails will be generated.
When the Notify Admin About New Customer Messages setting is enabled, administrators will receive notifications if a new chat message is sent by a customer. Additionally, it is possible to specify a specific time period (in min.) after which a notification for a received new chat message will be sent.
You can use this tab to display administrator contacts in case an item couldn’t be returned according to the return rules.
A customer will see the following message:
It is also possible to create additional fields that a customer will have to fill in while creating a new request.
The Block Title field is responsible for the name of the block with the custom text fields. Also, specify fields’ codes and labels.
In this field, you can prepare quick replies and use them while managing return requests. It allows to save managers’ time and automate RMA processing even more.
Enable Chat on the Frontend - choose whether you want to enable or disable chat on the frontend.
Hit the Save Config button.
The extension includes a part of Export Orders solution. It means that you can export any RMA requests using the simplified export UI.
Navigate to System → Amasty Export → Export.
Choose the required entity and configure export settings.
Main features you can use:
Check the details of each tab configuration in this guide.
It is also possible to import any RMA entities using the convenient import UI.
Go to System → Amasty Import → Import
Select the required entity and configure import settings (import behavior, import file type, import source, etc.).
Check the details of each tab configuration in this in this guide.
The Pro and Premium extension versions include API support. Store admins may use the following methods:
The extension is compatible with GraphQL (read + write). Here is an example of the implementation via Graphql. Follow the steps below:
1. Create return request
mutation { placeAmRmaCustomerReturnRequest( input: { order_id: “Your order ID” comment: "Rour return comment" policy_allowed: 1 return_items: [ { order_item_id:”Order item ID for return” return: 1 qty: "Return qty" reason:"Return reason ID" condition:"Return condition ID" resolution: "Return resolution ID" } ] } ) { request_id } }
2. See all return requests for customer
{ customer { amrma_returns { items { request_id url_hash order_id store_id created_at modified_at status customer_id customer_name manager_id custom_fields rating rating_comment note tracking_numbers shipping_label status { color label } request_items { request_item_id request_id reason_id condition_id resolution_id order_item_id qty item_status request_qty } } page_info { page_size current_page total_pages } total_count } } }
3. See all reasons/conditions/resolutions
{ getAmRmaSettings { isEnabled isChatEnabled, isReturnPolicyEnabled isShowRmaInfoProductPage isShowAdministratorContact administratorPhoneNumber administratorEmail policyUrl urlPrefix allReasons { reason_id label payer position } allConditions { condition_id label payer position } allResolutions { resolution_id label status position } } }
4. Displaying the return status of the product on the product page
{ products(filter: {url_key: {eq: "fusion-backpack"}}) { items { uid amrma_resolutions { label, status, position } } } }
If a store is supposed to cover shipping costs, an admin needs to pay for shipments beforehand. To simplify this process, you may generate shipping labels automatically and improve customer shopping experience with fast shipment processing.
First of all, you need to set the address according to which shipping cost will be calculated by a carrier.
Navigate to Stores → Configuration → Amasty Extensions → RMA Automatic Shipping Label.
Here you can choose between:
If you choose Custom Address, specify the address details in the appropriate fields.
On the next step, you need to enable labels generation for particular carriers.
Go to Stores → Configuration → Sales → Shipping Methods.
Expand the necessary carrier.
Use for Amasty RMA - if enabled, the current shipping method will be used for shipping label generation.
To create a shipping label, navigate to a particular return request page. Scroll down to the Tracking Information section.
Also, you can generate a label only for the Approved items as well:
If an item is in a Rejected or Procesing status, you are not able to add this item to the package.
Click the Generate button.
In the appeared popup select the necessary shipping carrier and its option. Click Apply and generate package.
Here specify package options that are obligatory for a particular carrier and method.
Next, add the products that will be sent in the package by clicking Add Products to Package and ticking the necessary ones.
Click Add Selected Product(s) to Package and hit the Done button.
The add-on also supports a validation feature. Thus, if the package options are incorrect, you will be notified.
If everything is correct, the generated label and a tracking code will be added to the return request.
It is possible to View or Delete the package if it is incorrect.
Save the return request updates. After that, a webstore user will be able to download the generated label right in the customer account.
With the extension it is possible to process RMA requests automatically, without manager involvement.
To configure the add-on general settings, navigate to Stores → Configuration → Amasty Extensions → RMA Automation Rules.
Enabled - set to Yes to activate the add-on.
RMA Automation Rules Apply Schedule - enter cron expression to apply rules by schedule.
To view and manage all automatic rules, please go to Sales → RMA Automation Rules.
All the info about rule processing is displayed on a handy grid.
To manage a rule, click Edit in the Action column.
To delete rules in bulk, tick the necessary rules and select Delete in the Actions dropdown menu.
To create an automation rule, click the Add New Rule button.
For example, you want to create a rule according to which all requests with the “Damage During Shipping” return reason will be automatically approved.
Return Rule Name - specify the name for internal rule usage. It will be displayed on the grid.
Priority - prioritize the rule, where 0 is the highest priority.
Enable - set to Yes to activate the rule.
Stop Further Rules Processing - enable this option if you do not want other rules to be applied to the same requests.
Apply Rule for New RMA - if Yes, the rule will be applied only for newly created RMA requests while the existing ones will be ignored.
Apply Rule for Existing RMA - if Yes, the rule will be applied only for existing RMA requests while the new ones will be ignored. The triggering events are requests amendments by a manager, automatic RMA status changes and the daily Cron job.
In this tab you may specify the conditions according to which the rule will be applied. Here we set the particular return reason.
In this tab choose the actions that will be taken if a request falls under the specified conditions.
Set Status - select the status that will be assigned to the request.
Set Owner - choose a manager for further request processing.
Send Email to Customer - enable this option to notify a customer about the event.
You should also choose an Email Sender and Email Template.
Send Email to Admin - set to Yes to notify your admin as well.
Automated Rules allow admins to minimize the time spent on request processing. For example, you may automatically reject the requests which have the particular reason or condition.
Also it is possible to change request status based on the total request amount and return reasons. Thus, you can automatically approve the requests with items from particular category with particular return reasons in case the total order amount is less than 100$.
The extension is extremely useful if you assign requests to managers according to request status. In our case we assign all requests with “Shipped by Customer” status to a particular manager.
You may use automation rules to notify customers or admins in particular cases. For example, if a request has an Approved status, but a customer has not updated it for a long time (30 days in our case), you can send him a notification.
Or you may just send notifications and close the request automatically if a customer hasn't updated the request for more than 45 days.
Thus, you can create an unlimited number of flexible rules to speed up and simplify return requests processing.
It is possible to track and analyze the completed requests statistics in a separate dashboard.
To view the analytical charts, please go to Admin Panel → Amasty → RMA Reports → Reports.
Set the period according to which the data will be displayed (7 Days, 30 Days, Last year or Custom Date) and view all the information in one place.
On the Statistics chart you may see the overall data based on the specified period. It is possible to check the average indicator of:
Track the most frequent return reasons in a separate chart. The diagram shows the percentage of each return reason you've created.
In the Items chart you may see the return requests products according to their return reasons. For example, you can easily check what products are “defective” or which items have the “wrong description”.
With the add-on, it is possible to check the customers who are returning more often and what profit do you get from them. Thus, you may easily see problematic customers and adjust you policy regarding them if you do not have enough profit from resolving their requests.
To get more specific info, switch to the Reports in Details tab.
The dynamics is displayed on the chart, while the particular requests and their details are shown on the grid below.
Here you may apply various filters to see the statistics of particular cases based on:
Thus, you may easily analyze the tendencies of your RMA system, find out the most problematic issues and find the resolutions.
The PWA add-on helps your customers manage their return requests from mobile devices.
This is how a customer account looks:
A sample of a new request:
Customers can use all features of the original extension while managing RMA from mobiles, including chat:
* How to create an RMA request from the admin panel?
* How do I adjust the sum of money that should be refunded to a customer?
* How to export refund requests to a CSV file?
* What features are included in each tariff plan of RMA?
* How to allow guest customers to submit an RMA request?
* Can I refund orders with store credits?