# Returns

Customers can create and manage returns for products from their orders directly on the B2B Commerce Frontend. They can return complete or partial orders without contacting the support team. A return can be created in two ways: from **Order History** or with the **Emporix Frontend Agent** (AI).

## Overview

When a customer is not satisfied with a product or needs to return items for any reason, they can create a return request directly from their account. The return process is integrated with the order history, making it easy to select items to return and track the status of return requests.

## Creating a return from order history

The customer must be logged in to create a return. The steps below describe how the customer creates a return request from order history in the B2B Commerce Frontend.

{% hint style="warning" %}
If a purchase was made as a guest and the customer wants to return items, they need to register with the email address provided at checkout and create a customer account. After logging in, they can view the order history associated with that email address.
{% endhint %}

{% stepper %}
{% step %}

#### Starting the return

The customer goes to the **Order Management** → **Order History** in the storefront, selects the order that contains the items to return, then chooses **Return**. The **Return** button is available only for completed orders.

<figure><img src="/files/0dol850oLWDHvZDbGa1A" alt=""><figcaption><p>Creating a return in the storefront</p></figcaption></figure>
{% endstep %}

{% step %}

#### Selecting items to return

In the return form, the customer selects the products to return and adjusts the quantity for each item.

<figure><img src="/files/0s4CsQJzCe2brNxu3Y3j" alt=""><figcaption><p>Setting up the return details in the storefront</p></figcaption></figure>
{% endstep %}

{% step %}

#### Providing a return reason

For each return, the customer provides the **Return reason** - it is mandatory and helps categorize why the item(s) is being returned. Additionally, it's also possible to provide different return reasons for separate items. To do that, the customer has to select **Provide additional details per return item** and can then add the return reason and description.

<figure><img src="/files/IGkuGax15FhMYsWnqNX7" alt=""><figcaption><p>Return reasons for separate items</p></figcaption></figure>
{% endstep %}

{% step %}

#### Submitting the return

The customer chooses the **Submit return** option to create the return request. After submission, the return appears in the customer account and in the merchant's Management Dashboard.
{% endstep %}
{% endstepper %}

## Creating a return with the Frontend Agent

The customer can also create a return using the [Emporix Frontend Agent](/agentic-commerce-intelligence/agentic-intelligence/agent-library/frontend-agent.md). The agent guides the customer through the return process in a conversational interface.

The customer prompts the agent to create a return and provides the order number. After the customer confirms the quantity and reason for the return, the agent creates the return request. The return then appears in the customer account and in the merchant's Management Dashboard.

<figure><img src="/files/GRPXRSyGRalor8zlUwjb" alt=""><figcaption><p>Create a return with Frontend Agent in the storefront</p></figcaption></figure>

## Monitoring the created returns

After the customer submits a return, it is created with **Pending** status. The customer and the merchant both see the return, but in different places:

| Who          | Where they see it                                                   | What they can do                                                        |
| ------------ | ------------------------------------------------------------------- | ----------------------------------------------------------------------- |
| The customer | B2B Commerce Frontend — **Order Management** → **Returns & Claims** | Track status, view items and quantities, see current status             |
| The merchant | Management Dashboard — **Orders** → **Returns**                     | Review the return, approve or reject it, update status, close when done |

<figure><img src="/files/UyYloBbCe0HSpw00U7ym" alt=""><figcaption><p>Pending return as the customer sees it in the storefront</p></figcaption></figure>

<figure><img src="/files/WZ0jFwLq6AW6EV5Voc35" alt=""><figcaption><p>Pending return as the merchant sees it in the Management Dashboard</p></figcaption></figure>

The customer can track the return status in their account and view details such as items, quantities, and current status. When the merchant reviews the return in the Management Dashboard and updates its status (for example, to **Approved**), the change is reflected automatically in the customer account.

<figure><img src="/files/NtN7xPuDY0EA1t7FM2TG" alt=""><figcaption><p>Approved return in frontend</p></figcaption></figure>

The merchant reviews incoming returns in the Management Dashboard, approves or rejects them, and updates status - each status change is reflected on the customer side.

### Return statuses

Returns move through the following statuses as they are processed. The merchant updates status in the Management Dashboard; the customer sees the same status in the storefront.

* **Pending** — The customer has submitted the return; the merchant has not yet reviewed it.
* **Approved** — The merchant has approved the return in the Management Dashboard.
* **Rejected** — The merchant has declined the return in the Management Dashboard.
* **Closed** — The merchant has marked the return process as completed.

{% hint style="info" %}
With every status change, email notifications are sent to the customer about their return request - for example, when it is approved, rejected, or when additional action is required.
{% endhint %}

## Return validity

By default, returns are valid for 30 days from the date of creation. The customer must submit the return request within the allowed timeframe.

{% hint style="info" %}
For more information on the API used in this use case, see the [Returns Service](/api-references/api-guides/orders/returns.md) documentation. For user guides, see the [Returns](/ce/management-dashboard/orders-module/returns.md) documentation.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.emporix.io/frontend/commerce-examples/returns.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
