How To - RMA

How can I prevent product from being returned?

Sometimes you need to write your own observer for our events, to connect our extension with third-party extension, or just for custom notifications to some external software (ERP, for example).

Our extension fires special event for that - mst_rma_changed. It has one parameter - current RMA, which you can analyze, and even perform actions on it.

Warning: If you need to make changes in RMA in your custom observer, please note, that it also will trigger mst_rma_changed event, and this can cause infinite loop.
To avoid it, surround your actions with proper condition branch, so action will be performed only once.

You can take as an example our own observer of that event, located in module app/code/local/Mirasvit/Rma/Model/Observer/RmaChange.php.

How can I prevent product from being returned?

  • Go to Catalog -> Manage Products, and edit appropriate product.
  • On General tab set option Allow RMA to No.

Note: for Bundled, Grouped and Configurable products, you need not only disable return for 'parent' product, but for associated simple products as well.

How can I limit RMA for only one order

Make sure, that RMA -> Settings -> RMA Policy -> Allow RMA for multiple orders is set to No.

How can I use Exchange order and Replacement Order, and what's the difference between them

Both of these functions work, when items in RMA have Exchange resolution, or custom one, set at RMA -> Settings -> RMA Policy -> Allow to create Replacement Order, when item has resolution.

Their uses are dictated by one of the following scenarios:

  • If product, requested for return, should be replaced with the same one (usually, due to malfunctioning, or defect), then staff should use Replacement Order. By pressing corresponding button, shown above, new order will be automatically created and set to a Penging state. It will have zero total, therefore, staff just need to send replacement products to the customer, and then complete the order and RMA;
  • If product, requested for return, should be replaced by other product, staff should use Exchange Order. There can be the following subscenarios:
    • Product have the same price, as original:
      1. Press Exchange Order button, and proceed to new Order creation;
      2. Using Add Product add to the order that product, that should be sent to customer as a exchange. This should be only simple products;
      3. Check Custom Price checkbox at the order items grid, and enter to text field price of 0.00. Then press Update Items and Qty's button. This will recalculate totals and you can submit the order;
      4. Complete order
    • Product, requested for return, should be replaced by other product, which have larger price, as original. Repeat actions above, but change step (3) as noted below:
      1. Check Custom Price checkbox and enter to text field price a difference between prices. E. q. original product was worth $100, and the replacement product was worth $20, then in this field should be $80. Then press Update Items and Qty's button;
    • Product, requested for return, should be replaced by other product, which have the lesser price, as original. Repeat actions from first subscenario, except of step (4):
      1. Calculate difference between total of newly created Exchange Order and original Order (unfortunately, you need to do it manually), and refund that difference with manual Credit Memo, that can be submitted from order's Edit page. Note that manual credit memo can be created only after you will invoice it.

How do I control, which refund should be made to Store Credit, and which - should be made as regular Credit Memo?

You need to have different resolutions for both actions, and for each action have separate RMA.

  • if you need to refund to the bank via Credit Memo, create an RMA with Refund resolution for each item to refund. If you need to use custom resolution for this scenario, create it at RMA -> Dictionaries -> Resolutions, and set in RMA -> Settings -> RMA Policy -> Allow to create Credit Memo, when item has resolution;
  • if you need to quick refund to the Store Credit, create an RMA with Store Credit resolution for each item to refund. Make sure, that Mirasvit Store Credit is installed and RMA -> Settings -> RMA Policy -> Allow return to Store Credit is set to Yes.

How do I create staff members for RMA

  • Go to System -> Permissions -> Users and create backend users. If need, create for them custom access rights in System -> Permissions -> Roles.
  • Make sure, that assigned roles have rights to RMA section (in ACL tree).

How do I change the path for the RMA page at customer's account'?

Go to Catalog -> URL Rewrite Management, and create a new Rewrite of Custom type, where Target Path will be RMA default URL, and Request Path - is your desired URL. Redirect field should be equal to Permanent (301).

Note that URL Rewrites are store-dependent, so if you have more than one storeview, you need to create such rewrite for each storeview separately.

How do I enable WYSIWYG mode for RMA messaging?

To enable WYSIWYG, you need to set to Yes option RMA -> Settings -> General Settings -> Use WYSIWYG editor in backend. Then WYSIWYG editor will replace standard comment widget.

How do I change packing slip template?

You need to modify this template: app/design/frontend/base/default/template/mst_rma/rma/print.phtml

How can I change or adjust logo at the Packing Slip template?

We do not display logo at the Packing Slip page, instead of this we use for that standard print header of current theme.

Typically it is located here (for custom themes this location can differ): app/design/frontend/base/default/template/page/print.phtml

There you will find <div class="print-head"> section, which contains code of logo displaying. It is regular IMG tag, and it can be adjusted using regular style or attributes.

How can I add RMA link to the Magento's top menu

You need to customize customer layout, and add there to the "top.links" section link to our extension. Default customer layout file is located here: app/design/frontend/base/default/layout/customer.xml

If you use custom theme, location can differ and depends only from theme implementation.

How do I create Workflow Rule, which triggers on X status, and when items has condition (reason, resolution) Y.

  • Create a new Workflow Rule at RMA -> Workflow Rules, and add to the Conditions tab the following conditions:
    • Status (before change) is not X;
    • Status is X;
    • Items have condition is Y;

If you need to trigger only when all items have the same condition, include a set of conditions Items have condition is not Z, where Z - is all other possible conditions;

The same way Reasons and Resolutions can be checked.

This option is available in RMA version above 2.3.7.

How do I create custom email notifications

They can be created in two ways. First way is to customize our default notifications:

  • Go to System -> Transaction Emails. Press Add New Template button. There you will have an option to load our base templates - they are selected in Template fields, and begin from RMA prefix. There's three of them:
    • Notification Email for Customer (this template is used for all messages, sent to customers)
    • Notification Email for RMA Owner (this template is used, when message is sent to staff)
    • Notification Email for Template of Rule Notification (this template is used for Workflow Rule-based notifications);
  • Press then Load Template button, and edit desired template. Then save it under name, for example, "My Notification";
  • Go to RMA -> Settings -> Email Notifications Settings, and set your newly created template in appropriate field.

The second requires Workflow Rule:

  • Create a Workflow Rule at RMA -> Workflow Rules and pick up appropriate event and condition at Conditions tab (if required).
  • Jump to Notifications tab. Set there either Send email to customer or Send email to RMA owner option to Yes, and then put appropriate content to Subject and Body fields. You can use email variables there.
  • Note 1: Body shall contain only message text and layout. Rules use as container default template RMA -> Template of Rule Notifications, set in RMA -> Settings -> Email Notification Settings.
  • Note 2: On RMA creation stage events fired in this order:
    • New RMA has been created, fired on RMA creation. Notification on this event shall use only base email variables, original order or items properties are inaccessible on this stage. If you need them, refer to Known issues for an workaround.
    • RMA has been changed, fired on items attaching to the RMA. Only on this stage all email variables should be used.
    • New reply from customer or New reply from staff, depending on which message is attached to RMA on creation stage.

How do I create notification, which will be sent only once, when specific status is set.

It can be done in two ways:

  • Go to RMA -> Dictionaries -> Statuses, pick up appropriate status, and set desired notification content in Email Notification for customer field. It will be sent to customer, only when RMA receives that Status.
  • Create a new Workflow Rule at RMA -> Workflow Rules, and add to the Conditions tab two additional conditions to make rule trigger only on status change (let's get Approved status as an example'):
    • Status (before change) is not Approved;
    • Status is Approved.

In both cases notification will be sent only when desired status is assigned to RMA.

How do I stop default email from sending when my Workflow Rules are applied?

  • Disable all notifications at RMA -> Settings -> Email Notification Settings -> Template of Notification Email for Customer;
  • Create a Workflow Rule, that will send notification to customer on event "New reply from staff", and give it lowest priority (say, 100). This will be your new notification for customer, instead of default one;
  • Give all other rules higher priority, and have option Stop Further Rules Processing (located at General Information tab of the rule Edit page) set to Yes.

This will create a workflow, where your special rules will be checked first, and if one of them applies (and its notification sent) - rules with lower priority will be skipped. So, your custom default notification will be sent only when no other rule was triggered.