RMA (Returned Merchandize Authorization)

Handling returns and return procedures natively in Dynamicweb

Sometimes a customer wants to return a product for various reasons – wrong color or size, malfunction, transit damage, etc.

Dynamicweb Ecommerce comes with a dedicated RMA system, allowing you to manage such returns with a minimum of hassle.

Working with returns in Dynamicweb Ecommerce consists of three things:

  • Creating RMAs
  • Viewing RMAs
  • Taking action on RMAs

You can also set up email notifications when an RMA reaches a particular state to staff and customers alike, and create your own custom RMA states.

Read more below!

RMAs can be created either manually or through the customer center app.

To create RMAs manually:

  • Locate the relevant order in your order list
  • Select the RMA tab in the ribbon bar (Figure 2.1) and click Register new RMA
Figure 2.1 The RMA tab on an order allows you to manualle create RMAs

This opens up the RMA creation window (Figure 2.2).

Figure 2.2 The RMA creation window

From here, you can:

  • View basic information about the order
  • Select a type of RMA – return, defective or exchange
  • Select which products in the order you wish to create an RMA on – and select the quantity. You can optionally enter a serial number for each of the products.
  • Add comments (and view previous comments) to the RMA

Once saved, an RMA per item will be created – and will be available from the RMA list view.

You can also set up the Customer Center app to allow your users create RMAs on their own. Read about the Customer Center app here.

All RMAs - whether created from backend or from frontend - can be found and acted upon under the RMA node.

To access the RMA list:

  • Go to the Ecommerce area
  • Click on the RMA node to fold it out (Figure 3.1)
  • Click a shop to open the RMA list for that shop only - or All RMAs to see all RMAa created on the solution
Figure 3.1 The RMA node in the Ecommerce tree

This opens the RMA List (Figure 3.2).

Figure 3.2 The RMA list view

From the RMA list, you can see the following for each RMA:

  • The unique RMA ID, the parent order number, and  the customer name
  • The type of RMA (return, defective or exchange)
  • The activity status (open/closed/deleted) and RMA state. An RMA state is a customizable step in an RMA flow, read more below.
  • The creation date and date of last change

From the list view, you can also click an RMA to view the RMA details.

You can use the RMA List toolbar (Figure 4.1) to filter or search the RMAs:

  • Select a statestatus or type of RMA to isolate, or type something in the search field
  • Click Apply in the toolbar (you can click reset to return to the default view from a filtered list)
Figure 4.1 Your filtering and searhing options allow you to filter and search the RMA list (surprise, huh?)

Clicking any RMA in the RMA list opens a details view (Figure 5.1).

Figure 5.1 You can view each RMA in detail

From the RMA details view, you can:

  • View the basic order information and the RMA type
  • See the product which the RMA concerns (possibly including a product ID and a serial number)
  • Enter a comment in the comment field
  • See the RMA history (event log)

You can translate the event messages which occur in the RMA history log.

To do so:

  • Go to Settings > Ecommerce > RMAs > Events
  • Switch to the language you want to translate your event messages into
  • Click the red X in the Translated column
  • Translate the name and description
  • Save

You can read more about internationalization in Dynamicweb here.

Click the user info button (Figure 6.1) in the toolbar to view and edit the extended information about the user who created the RMA.

Figure 6.1 The user info button

This opens the user information view (figureref}) - with details about the user who created the RMA at hand.

Figure 6.2 The detailed view of the user who created the RMA

RMAs need to be acted on - by either rejecting the RMA, or create a replacement order or refund.

To do so, use the tools located on the RMA details toolbar (Figure 7.1).

Figure 7.1 Taking action on an RMA

From the toolbar, you can:

  • Save, save and close or cancel your changes to the RMA
  • Finalize the RMA by Closing or Deleting it – a finalized RMA cannot be edited or reopened
  • Switch between the RMA view and the User info view
  • Select a state for the RMA
  • Create a replacement order

Replacement orders can be created directly from an RMA by clicking the Create order button from the toolbar. This opens a dialog (Figure 8.1) allowing you to create different kinds of replacement orders.

Figure 8.1 The Create replacement order window

You can:

  • Issue a refund - please note that you must refund the customer manually, as Dynamicweb does not support direct refunds through your payment provider
  • Replace the product with a different product
  • Replace the product with the same product

For all types of replacement orders, you can check the close RMA when replacement order is created checkbox if it fits your RMA flow.

When working with RMAs, it can be useful to inform customers and employees alike when an RMA is created or closed, or when it enters a new state. Happily, the Dynamicweb RMA management system comes with a built-in engine for handling email notifications to customers and employees.

To configure RMA email notifications, go to Settings > Ecommerce > RMAs > Email configuration and open the email notification view (Figure 9.1).

Figure 9.1 The RMA email notiication overview

From here, you can:

  • Create a new RMA email notification
  • Edit or translate a notification

To create a new notification click on any state in the RMA email notification view to open the view in Figure 10.1.

Figure 10.1 The email notification overview for a single RMA state

Next, click Add notification to open the edit email dialog (Figure 10.2).

Figure 10.2 Adding a new RMA notification entry

From here, you can:

  • Check the for customer checkbox to use the customer data OR specify a recipient email (to send notifications to both customer and staff, create separate notifications).
  • Specify an email subject
  • Select (or create/modify) an email template to use (The templates for RMA emails are located in the files/eCom/RMA/ folder)
  • Provide a sender name and sender email OR check the for customer checkbox to use the customer data.

Click OK and Save and close your email notification settings for the state, event or replacement order type.

Notifications are created in the current language context only, and must be created separately in each language context.

RMA states are custom states for controlling your RMA process. A Dynamicweb solution is born with a number of default states, such as ‘Waiting for product(s) from customer’, ‘Rejected’ and ‘Sent for repair’ – but you can easily create new RMA states

To create a new RMA state:

  • Go to Settings > Ecommerce > RMAs > States
  • Click New state in the toolbar (Figure 11.1)
Figure 11.1 The New State button

This opens the RMA state view (Figure 11.2).

Figure 11.2 The edit RMA state view

From here you can:

  • Name the state and optionally provide a description for it
  • Decide if this is the default state for new RMAs
  • Select which type of RMA is should be active for

In this manner, you can easily create custom RMA steps to suit your business needs.


These are the database tables associated with the RMA-tool:


Contains data for RMAs including which order it's for (RmaReplacementOrderId), current state (RmaStateId) and various customer data.

Field name Data type Length
RmaId nvarchar 50
RmaReplacementOrderId nvarchar 50
RmaEmailNotificationLanguage nvarchar 50
RmaStateId int 4
RmaClosed bit 1
RmaDeleted bit 1
RmaCustomerNumber nvarchar 255
RmaCustomerCompany nvarchar 255
RmaCustomerName nvarchar 255
RmaCustomerAddress nvarchar 255
RmaCustomerAddress2 nvarchar 255
RmaCustomerZip nvarchar 50
RmaCustomerCity nvarchar 255
RmaCustomerCountry nvarchar 50
RmaCustomerRegion nvarchar 50
RmaCustomerPhone nvarchar 50
RmaCustomerFax nvarchar 50
RmaCustomerEmail nvarchar 255
RmaCustomerCell nvarchar 50
RmaCustomerRefId nvarchar 255
RmaCustomerEAN nvarchar 255
RmaCustomerVatRegNumber nvarchar 255
RmaDeliveryCompany nvarchar 255
RmaDeliveryName nvarchar 255
RmaDeliveryAddress nvarchar 255
RmaDeliveryAddress2 nvarchar 255
RmaDeliveryZip nvarchar 50
RmaDeliveryCity nvarchar 255
RmaDeliveryCountry nvarchar 50
RmaDeliveryRegion nvarchar 50
RmaDeliveryPhone nvarchar 50
RmaDeliveryFax nvarchar 50
RmaDeliveryEmail nvarchar 255
RmaDeliveryCell nvarchar 50
RmaType int 4
RmaAutoId int 4
RmaCustomerCountryCode nvarchar 50
RmaDeliveryCountryCode nvarchar 50


Links order lines from orders (RmaOrderLineOrderLineId) to order lines in RMAs (RmaOrderLineRmaId).

Field name Data type Length
RmaOrderLineId int 4
RmaOrderLineRmaId nvarchar 50
RmaOrderLineOrderLineId nvarchar 50
RmaOrderLineSerialNumber nvarchar Max


Contains comment data for an RMA (RmaCommentRmaId) at a given event (RmaCommentEvent) connected to a state change (RmaCommentNewRmaState).

Field name Data type Length
RmaCommentId int 4
RmaCommentRmaId nvarchar 50
RmaCommentNewRmaState int 4
RmaCommentText nvarchar Max
RmaCommentCreated datetime 8
RmaCommentEvent nvarchar 255


Contains the path to images (RmaCommentImagePath) uploaded on an RMA comment (RmaCommentImageCommentId).

Field name Data type Length
RmaCommentImageId int 4
RmaCommentImageCommentId int 4
RmaCommentImagePath nvarchar 255


Contains setup data for RMA email configurations as defined in Settings -> Ecom -> RMAs -> Email configuration

Field name Data type Length
RmaEmailConfigurationId int 4
RmaEmailConfigurationLanguage nvarchar 50
RmaEmailConfigurationForCustomer bit 1
RmaEmailConfigurationRecipient nvarchar 255
RmaEmailConfigurationSubject nvarchar 255
RmaEmailConfigurationSenderName nvarchar 255
RmaEmailConfigurationSenderEmail nvarchar 255
RmaEmailConfigurationTemplate nvarchar Max
RmaEmailConfigurationSenderEmailForCustomer bit 1
RmaEmailConfigurationSenderNameForCustomer bit 1


Links RMA email configurations (RmaEmailConfigurationEventRelationEmailConfigurationId) to events (RmaEmailConfigurationEventRelationEventType).

Field name Data type Length
RmaEmailConfigurationEventRelationId int 4
RmaEmailConfigurationEventRelationEmailConfigurationId int 4
RmaEmailConfigurationEventRelationEventType nvarchar 255


Links RMA email configurations (RmaEmailConfigurationReplacementOrderProviderRelationEmailConfigurationId) to replacement order providers (RmaEmailConfigurationReplacementOrderProviderRelationReplacementOrderProviderClassName).

Field name Data type Length
RmaEmailConfigurationReplacementOrderProviderRelationId int 4
RmaEmailConfigurationReplacementOrderProviderRelationEmailConfigurationId int 4
RmaEmailConfigurationReplacementOrderProviderRelationReplacementOrderProviderClassName nvarchar 260


Links RMA email configuration (RmaEmailConfigurationStateRelationEmailConfigurationId) to RMA states (RmaEmailConfigurationStateRelationStateId).

Field name Data type Length
RmaEmailConfigurationStateRelationId int 4
RmaEmailConfigurationStateRelationEmailConfigurationId int 4
RmaEmailConfigurationStateRelationStateId int 4


System lookup table for RMA events.

Field name Data type Length
RmaEventId int 4
RmaEventType nvarchar 255
RmaEventDescription nvarchar Max


Contains translations of RMA events (RmaEventTranslationEventType) to different languages (RmaEventTranslationLanguageId).

Field name Data type Length
RmaEventTranslationEventType nvarchar 255
RmaEventTranslationLanguageId nvarchar 50
RmaEventTranslatedDescription nvarchar Max
RmaEventTranslationAutoId int 4


System lookup table for RMA states.

Field name Data type Length
RmaStateId int 4
RmaStateDefaultName nvarchar 255
RmaStateDefaultDescription nvarchar Max
RmaStateTypeRelation nvarchar Max
RmaStateIsDefaultStateForNewRma bit 1


Contains translations of RMA states (RmaStateName) to different languages (RmaStateLanguageId).

Field name Data type Length
RmaStateId int 4
RmaStateLanguageId nvarchar 50
RmaStateName nvarchar 255
RmaStateDescription nvarchar Max
RmaStateTranslationAutoId int 4