> For the complete documentation index, see [llms.txt](https://developer.emporix.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.emporix.io/frontend/commerce-examples/quote-process.md).

# Quotes

Very often customers want to negotiate the price regarding the products they want to buy. For such a process, it is important that an e-commerce platform supports a more sophisticated process. Requesting a quote is a common use case especially for B2B business model, but within the Emporix platform, the quotes for B2C customers are also supported.

Below you can see the general, simplified flow:

```mermaid
---
config:
  layout: fixed
  theme: neutral
  look: classic
---
flowchart LR
  A["`**Customer**<br><br>Browses products<br>and adds to cart`"]
  B["`**Customer**<br><br>Requests quote<br>from cart`"]
  C["`**Quote Created**<br><br>Status:<br>Creating`"]
  D["`**Employee**<br><br>Reviews and<br>approves quote`"]
  E["`**Quote Open**<br><br>Status:<br>Open`"]
  F["`**Customer**<br><br>Accepts<br>the quote`"]
  G["`**Order Created**<br><br>From the<br>accepted quote`"]

  A:::Class_04
  B:::Class_04
  C:::Class_05
  D:::Class_04
  E:::Class_05
  F:::Class_04
  G:::Class_05

  A --> B
  B --> C
  C --> D
  D --> E
  E --> F
  F --> G

  classDef Class_04 fill:#F2F6FA, stroke:#E86C07, rx:10px, ry:10px, stroke-width: 2px, height: 150px
  classDef Class_05 fill:#E8F4FD, stroke:#0066CC, rx:10px, ry:10px, stroke-width: 2px, height: 150px
```

Not only the customer is able to request quotes, but also the merchant's employee or a sales manager can generate a quote on behalf of the customer. This is described step by step in the 2nd demo scenario - [Employee creates quote on behalf of a customer](#employee-creates-quote-on-behalf-of-a-customer).

Roles included:

* B2B or B2C customer
* Merchant employee who needs to accept or decline a quote request

### A customer (B2B or B2C) requests a quote

This is a step-by-step description of the quoting process within the B2B Commerce Frontend and what to look for in detail.

{% stepper %}
{% step %}

#### Viewing and selecting products

The customer browses products by categories or use the search bar to find the product which they want to add to the cart.
{% endstep %}

{% step %}

#### Adding the product to cart

The customer chooses the product they want to order and adds it to cart.

The customer can change the quantity, for example to 3 before adding the product to cart.

**Result**: The summary screen is displayed:

<figure><img src="/files/tj5PsiXaniTDCgCSq4b8" alt=""><figcaption><p>Shopping cart with quote request option</p></figcaption></figure>
{% endstep %}

{% step %}

#### Deciding on the quantity

Within the cart the customer can still change the quantity of the items. If they change it, the recalculation of the cart takes place.
{% endstep %}

{% step %}

#### Creating the quote

The customer chooses the **Request quote** button.

<figure><img src="/files/CJzst5yWJ2VOt5aeF0EV" alt=""><figcaption><p>Quote request form</p></figcaption></figure>

**Result**: The customer gets notification about a submitted request and the quote is already visible in their account.

To see the quote overview, the customer can go to the **Quotes** view and choose the quote they want to check.

<figure><img src="/files/jkIIr8IJJNmzWkaRP54j" alt=""><figcaption><p>Quote details page</p></figcaption></figure>
{% endstep %}

{% step %}

#### Reviewing by employee

As an employee, open the Management Dashboard and go to **Quotes**, the quotes overview page is displayed.

* The created quote is displayed with the **Awaiting** status.
* The merchant employee is informed by email that a customer created a quote request. The corresponding sales representative or a customer service employee can then work on the quote request quickly.
  {% endstep %}

{% step %}

#### Opening the quote

Check the quote details, prices and discounts. Go to the **Approval** tab and choose **Approve quote** to accept the quote. You can add a comment from a merchant perspective if needed.

**Result**: The quote request from customer is accepted by the merchant and the quote status changes from **Creating** to **Open**.

<figure><img src="/files/eUlcIMRcGcNrrDDX1P0J" alt=""><figcaption><p>Quote view in Management Dashboard with open status</p></figcaption></figure>

{% hint style="success" %}
It is possible to work on quotes in Management Dashboard and to update them anytime needed. For details on how to work with quotes in MD, see [Quotes](/ce/management-dashboard/quotes/quotes-view.md) documentation.
{% endhint %}
{% endstep %}

{% step %}

#### Accepting the quote by a customer

The customer goes to the **Quotes** view. The requested quote has the **Open** status as well.

The customer opens the details of the quote and can decide if they want to accept or decline the quote.

<figure><img src="/files/XTH1P0Stvie6005q1BHV" alt=""><figcaption><p>Quote details page in customer account</p></figcaption></figure>

In case they request a change or decline the quote, they have to select a change or decline reason with an additional explanation.

In case the customer accepts the quote the status of the quote is updated within the frontend and also in the Management Dashboard.

* Frontend - customer account

  <figure><img src="/files/ZE8VHur7NpjroQye2wUQ" alt=""><figcaption><p>Accepted quote view in customer account</p></figcaption></figure>
* Backend status - Management Dashboard

  <figure><img src="/files/MNOSD6fVn1q1NT9wXHt0" alt=""><figcaption><p>Accepted quote view in Management Dashboard</p></figcaption></figure>

**Result** The accepted quote creates an order within CE - the order link is visible in the details.

<figure><img src="/files/7JqQjqIx0mBg4Hcx3jBh" alt=""><figcaption><p>Order created from accepted quote</p></figcaption></figure>
{% endstep %}
{% endstepper %}

### Employee creates quote on behalf of a customer

It is possible for you as an employee to create a quote on behalf of the customer in the Management Dashboard. For example, a customer calls a customer service department and asks for a specific quote.\
To create the quote on their behalf, you need to be logged in to the Management Dashboard as an employee and follow the steps described in the [Quotes - Creating a quote](/ce/management-dashboard/quotes/quotes-view.md#creating-a-quote) guide.

**Result**: After you follow the steps and click the **Create Quote** button at the end, the quote is created with the **Open** status and a notification is sent to the customer by email, including the PDF with quote details. The customer can accept or decline the quote as described under Customer requests.

{% hint style="info" %}
To learn more about API used in this use case see the [Quote Service](/api-references/api-guides/quotes.md) and for user guides check the [Quotes](/ce/management-dashboard/quotes.md) and the [Quote Management](/ce/core-commerce/quote-management.md) documentation.
{% endhint %}

### Quote Approval Process

For B2B scenarios, you can enable the internal approval process for accepting quotes on the customer's side. When the quote approval flow is applied, then only authorized customers can accept open quotes. The approval flow is based on customer group assignment.

* **Requester** – Cannot accept quotes independently. Always needs approval. If the quote total is within the company purchasing limit, a **Buyer** or **Admin** can approve; if it exceeds the limit, only an **Admin** can approve.
* **Buyer** – Can accept quotes within the company purchasing limit. If the quote exceeds the limit, approval from an **Admin** is required.
* **Admin** – Can accept any quote without additional approval.

#### Prerequisites

* Make sure the customers have the right permissions level:
  * Assign customers to the correct groups (*Admin*, *Buyer*, *Requester*).
  * Configure company **purchasing limits** under **Customer Management** → **Companies** → **Policies**.
* Enable the quote approval process requires turning on the **Enable quote approval process** setting (`approval.enableQuoteApprovalProcess`) under **Settings** -> **System Preferences** in the Management Dashboard.

{% hint style="info" %}
Changes may take up to 30 minutes to apply because of system caching.
{% endhint %}

#### Approval flow

When quote approval is enabled, the flow for accepting quotes is as follows:

{% stepper %}
{% step %}

#### Quote generation

The customer or employee creates a quote request.
{% endstep %}

{% step %}

#### Setting price by an employee

The merchant employee establishes the pricing for the quote in the Management Dashboard.
{% endstep %}

{% step %}

#### Quote negotiations

The customer and employee engage in iterative negotiations until the quote reaches **Open** status.
{% endstep %}

{% step %}

#### Accepting the quote by the customer

The customer opens the quote and chooses to accept it.
{% endstep %}

{% step %}

#### Approval verification

The Approval Service checks whether the customer is authorized to accept the quote. If the customer lacks permission (based on their customer group and the company purchasing limit), an approval request is created for a company approver.
{% endstep %}

{% step %}

#### Order creation

The order is created only after the customer is authorized or the approver completes the acceptance.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
For more details, see [Approvals](/ce/core-commerce/customer-management/approvals.md).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/quote-process.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.
