Statuses are one of basic blocks of RMA Workflow. Each stage of RMA processing should be represented as Status, which provide not only anchors for Workflow Rules but also automated email notifications.

By default RMA has following statuses:

  • Pending approval - RMA request isn`t reviewed yet. This status is assigned to RMA on creation stage.
  • Approved - RMA request is approved. Customer can print RMA Packing Slip and Confirm Shipment (if required).
  • Package Sent - customer has confirmed sending of RMA items to the store.
  • Rejected - RMA request is rejected.
  • –°losed - RMA request is closed.

If your workflow require more processing stages, you can create any set of additional statuses. You can also create special conditional auto-replies, which will be sent depending on returned items conditionals.


How to create a new Status

All statuses are located at RMA > Dictionaries > Statuses. Press the button Add New to add a new one, and you will be brought to Status Creation page, divided into two sections:

  • General information - contains basic properties of the status.

    • Title - title of the new status.
      Unlike other strings, Status titles can not be translated using locale CSV.
      Instead of this, use Store Chooser above Status Edit form, to switch to the proper storeview, and enter to Title field proper translation.
    • Code - unique internal code for statuses.
    • Sort Order - sort order, the lesser - the higher.
    • Is Active - whether status is active and available for RMA assignment.
  • Notifications - here is defined automatic messages, which are sent to customer (and/or) added to RMA History on status assignment. If you do not need them, just leave empty appropriate field.
    • Email Notification for customer - defines a sub-template with a message, which will sent to the customer by email. This sub-template will be enclosed in Template of Notification Email for Customer at Settings.
    • Message for RMA history - defines a message, which will be added to RMA History.
    • Email Notification for administrator - defines a sub-template with a message, which will be sent to administration staff (typical owner of RMA). This field is extremely useful, if current status is automatically assigned by a Workflow Rule.
      Automatic messages in Statuses fully support our additional Transactional Email Variables, so you can also use them to enhance your email flow.

Conditional automatic messages in Statuses

- Dependable sections

In some cases you may need to create different auto-reply for different RMA items conditionals, such as namely Reasons, Conditions and Resolutions.

For example, when customer selects Exchange as desired resolution, he should receive a warehouse address, where product should be delivered. Or, if item has Damaged condition, customer should receive recommendations, how to use repair service.

This task can be achieved using special statuses with conditional automatic messages.

Recommendations, given below, are applied only to statuses, which do not assigned to ticket on creation stage, e. q. do not set as Default status for new RMA in General Settings section of Settings.

Our extension provides three special variables, that allows you to check RMA items conditionals. Corresponding variables are:

  • rma.getHasItemsWithReason(reason_id) - checks, whether at least one of RMA items has Reason with specified ID.
  • rma.getHasItemsWithCondition(condition_id) - checks, whether at least one of RMA items has Condition with specified ID.
  • rma.getHasItemsWithResolution(resolution_id) - checks, whether at least one of RMA items has desired Resolution with specified ID.

Since these variables return boolean value, they can be used in transaction email conditional operators such as {{depend}} and {{if}}.

The best way to add to your message dependable content is to insert it as {{depend}} section, as shown on example.

Example 1: Simple Dependable Section for Refund resolution (ID = 2) request.

{{depend rma.getHasItemsWithResolution(2)}}
    You choose to receive your money back, so refund procedure will require some additional request, sent to this address:
    7292 Dictum Av.
    San Antonio MI 47096
    (492) 709-6392

This block will be added to message only if customer have chosen Refund (ID = 2) resolution for at least for one of returned item. Otherwise, content of this block won't be sent.

This allows to have in the same status several dependable blocks, which will be added to the actual notification only on matching items presence.

- Dependable item lists

Typically customers select the same desired resolutions for all items, but they rarely select the same reason or conditions. In this case you will need to show items, which match your dependable section.

Our extension provide for that special block rma/rma_view_items, which can be displayed with {{block}} keyword inside email template.

Basic format for displaying our special item list block is {{block type="rma/rma_view_items" rma=$rma}}. It will display all items in current RMA. You can add up to three additional parameters-filters of conditionals:

  • reason_id - ID of reason, that can be used as filter.
  • condition_id - ID of condition, that can be used as filter.
  • resolution_id - ID of resolution, that can be used as filter.

Example 2: Dependable section with Damaged condition (ID = 3) items list

{{depend rma.getHasItemsWithCondition(3)}}
    You had chosen the following items for Repair Service:
    {{block type="rma/rma_view_items" rma=$rma condition_id=3}}<br><br>
    Send them to our repairing facility at:
    928-3313 Vel Av.
    Idaho Falls Rhode Island 37232

These additional parameters also can be used simultaneously, allowing you to create almost any item list.

Combining dependable block with our dependable item list block can result in flexible template like on example below:

Example 3: Flexible Status Email Template with dependable blocks and item lists.

Dear {{var}},<br><br>

Your Return request has been approved.

{{depend rma.getHasItemsWithResolution(1)}}
You choose to receive your money back, so we will refund the following items:<br><br>
{{block type="rma/rma_view_items" rma=$rma resolution_id=1}}<br><br>

{{depend rma.getHasItemsWithResolution(2)}}
You choose to exchange your product, we will contact you about the following items:<br><br>
{{block type="rma/rma_view_items" rma=$rma resolution_id=2}}<br><br>

Please, print <a href='{{var rma.guest_print_url}}'>RMA Packing Slip</a>.

- Enhancing with Workflow Rules

However, when store uses wide system of item conditionals, such templates tend to be very large and complex. This complexity can be resolved by adding new supporting Statuses and using Workflow Rules.

Let the store has three large traits for returns: Repair Service, Exchange Service and Refund Service. Create three different statuses for each of them:

  • Repair Approved - status for repair services, contains conditional template depending on item conditions.
  • Exchange Approved - status for exchanging service, contains conditional template depending on return reasons.
  • Refund Approved - status for refund services, deals with all other cases.

Remove all notifications from standard Approved - it will act as a trigger for a Workflow Rules, which will direct RMA to one of statuses above. Now let's create three rules, for each of supporing statuses:

  • Rule for Repair Service

    • Event: RMA has been changed
    • Conditions:
      • Status is Approved
      • Status (before change) is Pending Approval
      • Items have reason is Out of Service
    • Actions:
      • Set Status: Repair Approved

    Note: two status checks in Conditions section required for detecting only transition between Pending and Approval statuses, otherwise subsequent communication will also trigger this rule.

  • Rule for Exchange Service

    • Event: RMA has been changed
    • Conditions:
      • Status is Approved
      • Status (before change) is Pending Approval
      • If ANY of these conditions are TRUE
        • Items have reason is Wrong color
        • Items have reason is Wrong size
    • Actions:
      • Set Status: Exchange Approved


  • Rule for Refund Service

    • Event: RMA has been changed
    • Conditions:
      • Status is Approved
      • Status (before change) is Pending Approval
      • Items have reason is Other
    • Actions:
      • Set Status: Refund Approved


Activate all three rules. From that moment whenever staff approves RMA, customers will be automatically provided with appropriate notifications, and RMA will be directed to the proper service.

Of course, it is merely a simple example. There can be far more complex solutions, allowing you to enhance nearly any return policy.