---
title: Add to cart from a sales order
order: 3
updated: 2026-07-12
---

# Add to cart from a sales order

You can build an RFQ cart starting from an open sales order. The flow mirrors the enquiry-side *Add to Cart* walk-through but reads its line items from the order instead — useful when a customer has already confirmed an order and you are now sourcing the materials to fulfil it. It walks you through the order product by product, seeds the sourcing form from each line, lets you tick the suppliers to invite, and drops everything into the same shared RFQ cart the enquiry flow feeds. See [Add to cart](/docs/procurement/add-to-cart) for the enquiry-side walk and [RFQ cart](/docs/procurement/rfq-cart) for what happens next.

## Open the screen

1. Open *Sales* → *Orders* in the sidebar and open the order you want to source for. The order's own detail page lives at `/enquiry/orders/…`.
2. Click the *Actions* menu — the three-dot (`⋮`) button in the top-right of the order.
3. Pick *Add To RFQ Cart* (labelled *Source items from suppliers*). When the order surfaces more than one procurement action, this sits inside a *Procurement* submenu (*RFQ, suppliers & POs*); when it is the only procurement action available to you, it appears directly in the menu.

The page heading reads *Add to Cart*. A subtitle just below shows the customer's name and *product N of M*, so you always know which order line you are on and how many remain.

### Who can open it

The *Add To RFQ Cart* action and the page itself both require the *Add to RFQ Cart* permission (`procurement.addToCart`). Without it the menu entry never appears, and if you reach the URL directly the page shows *You don't have permission to add to the RFQ cart.* This is checked again on the server for every supplier search and every line you add, so the permission cannot be bypassed by forging the request.

## What has to be true first

The screen refuses to open in two cases, each with a message and an automatic redirect:

- **The order has no products.** If the order carries no line items, you get *Order has no products to source* and are sent to the *RFQ Cart*.
- **The order has no source enquiry.** Every order in the system is created by converting an enquiry, so the originating enquiry is normally always on record. A handful of very old orders that pre-date this link are the only exception. On those you get *This order has no source enquiry — RFQ Cart from this order isn't supported.* and are returned to the order. To source for such a record, convert a fresh enquiry to an order and start from that. See [Orders](/docs/enquiry-bank/orders).

## How each line is pre-filled

As the walk lands on each order line, the form on the left is seeded from that line:

### Product head and product code

The *Product code* is taken straight from the order line. The *Product head* is not stored on the order line, so it is looked up from that product code's master record — this is the value the supplier list on the right filters on. Changing the *Product head* clears the *Product code* so you can re-pick a matching code. See [Product codes](/docs/records/product-codes).

### Quantity

Seeded from the order line's quantity (falling back to `1` if the line somehow has none). You can change it. Fractional quantities are allowed — the field accepts up to `4` decimal places. The value must be **greater than `0`**; the server rejects anything that is zero or negative.

### HSN Code

Read directly from the order line, exactly as it was saved on the order — the product master's HSN is **not** pulled in. On this screen the HSN field is **display-only (disabled)**: it shows the order's value and rides along unchanged when you add the line. If the order line had no numeric HSN, it shows blank and no HSN is sent. To correct an HSN, fix it on the order (or the product master) before sourcing.

### Makes

The manufacturers recorded on the order line. You can add or remove makes with the *Makes* picker; the list is filtered to makes allowed by the chosen *Product head*. Until a product head is set the picker is disabled and shows *Pick a product head first*. Widening the makes broadens the supplier shortlist on the right; changing the product head prunes any selected makes that the new head does not allow. See [Manufacturers](/docs/records/manufacturers).

### Description

The order line's description, loaded as-is into the rich-text editor. Unlike the enquiry-side *Add to Cart*, the product code's default description is **not** prepended — the order already represents the finalised line, so only what you saved on the order carries over. You can edit it freely; this text travels with the RFQ to every supplier you tick. The server caps the description at `20000` characters.

Every seeded value except the HSN is a starting point you can change before adding the line. Each time the walk moves to a new line, the previously ticked suppliers are cleared.

## Pick the suppliers

The right pane is a live-filtered supplier list. It stays empty (*Pick a product head to see suppliers.*) until a product head is chosen, then it refreshes whenever you change the head or the makes.

### How the list is filtered

The list shows suppliers that serve the chosen *Product head*. When you have selected one or more *Makes*, the list narrows further to suppliers that carry **at least one** of those makes; with no makes selected, every supplier in that head passes. The filter is applied on the server, sorted by supplier name, and capped at `200` results. When nothing matches you see either *No supplier registered for this head.* or, if makes are in play, *No supplier matches both this head and the selected makes.* If a supplier you expected is missing, add the relevant product head or make to that supplier's record first — see [Suppliers](/docs/records/suppliers).

### Ticking a supplier

Click a supplier's name or its checkbox to tick it. What happens next depends on how many contact persons the supplier has:

- **One contact person** — that contact is selected automatically. If the supplier has no contact person on record at all, ticking fails with *&lt;supplier&gt; has no contact person on record* and nothing is added. Add a contact first — see [Supplier contacts](/docs/records/supplier-contacts).
- **Multiple contact persons** — a *Pick contact persons* modal opens. Each supplier row that has more than one contact is also tagged with a *N contact persons* hint in the list.

Un-ticking a supplier removes every contact-person pairing you had chosen for it.

### The contact-person picker

When a supplier has several contacts, the *Pick contact persons* modal lets you choose one **or more**. Each shows the salutation, name, email, post, and phone. This is deliberately multi-select: you often mail two people at the same firm so whichever replies first wins. Every contact you pick becomes its **own** invitation for that supplier in the cart. Confirm with *Use N contacts*; *Cancel* (or closing without a pick) adds nothing. The picker lists up to `100` contacts for the supplier.

## Add or skip the line

The primary button on the left adds the current line. Its label reflects where you are in the walk: *Add (next product)* on every line except the last, and *Add And Go to Cart* on the final line.

Before it submits, the form checks that a product head and product code are set and that the quantity is above zero, warning you if not.

### Adding

With at least one supplier ticked, pressing the button adds the line to your cart and attaches it to every ticked supplier + contact pairing. A toast confirms *Added · N recipient(s)*. The walk then advances to the next line, or — on the last line — takes you to the *RFQ Cart*.

### Skipping

If a pre-filled line is not one you need to source, press the button **without ticking any supplier**. A *Skip product?* prompt appears (*No suppliers selected for this product. Skip it and continue to the next?*). Choose *Skip this product* to drop it and move on, or *Go back* to keep working on it. Skipping the last line takes you to the *RFQ Cart*.

### What the server records and re-checks

When you add a line, the app posts it to the cart, where the backend re-validates everything before it is stored — none of the frontend checks are trusted on their own:

- The **product code must exist** in your firm's records, or the add is rejected with *Product code not found*.
- Each ticked **supplier must exist**, and each chosen **contact person must actually belong to that supplier** — a mismatched pair is silently dropped as a cross-supplier smuggling defence. If no valid supplier + contact pair survives, the add is rejected with *No valid supplier+CP pairs in payload*.
- The **quantity must be positive** and the description must be within `20000` characters.
- A **unit** is resolved automatically from the product code's first allowed unit (this screen has no unit field). If the product code has no unit configured, the add is rejected with *Product code has no unit configured — add an allowedUnit first* — fix the product code, then retry. See [Product codes](/docs/records/product-codes).
- The line is stamped with the order's **source enquiry** so the cart can trace it back to the original demand. Because orders are always conversions of enquiries, this is the order's originating enquiry — order-sourced and enquiry-sourced lines therefore look identical in the cart.

The cart itself is a single per-user draft. Ticking the same supplier + contact across several lines merges the lines onto that supplier's one invitation rather than creating duplicates.

## Move on to the cart

After the last line is added or skipped, you land on the *RFQ Cart* — the same cart the enquiry-side walk feeds. Lines collected from orders and from enquiries coexist in one draft and ship together when you release the RFQ. From there you set the closing date, attach any drawings or datasheets, and send. See [RFQ cart](/docs/procurement/rfq-cart), and [Procurement enquiries](/docs/procurement/enquiries) for where the sent RFQs and their replies land.

## Common questions

### Why is the description different from the enquiry-side *Add to Cart*?

The enquiry flow prepends the product code's default description on top of the enquiry's custom text. The order flow keeps only the description you saved on the order — no merging — because the order already represents the finalised line. You can still edit it before adding.

### Why can't I edit the HSN Code here?

On the order-sourced screen the HSN field is read-only by design: it mirrors exactly what the order line carries and rides along unchanged. If the HSN is wrong, correct it on the order (or the product master) and re-open *Add To RFQ Cart*.

### Can I run the order flow and the enquiry flow at the same time?

Yes. The cart is a single draft per user, so lines added from any order or any enquiry land in the same cart until you release it. Flip freely between the enquiry-side *Add to Cart*, *Add To RFQ Cart* on an order, and the cart view.

### What if the order was created before source enquiries were tracked?

Those legacy orders can't be sourced through this screen — the cart line needs a source enquiry and there is nowhere to recover it from on an old order. The screen shows a notice and returns you to the order. Convert a new enquiry to an order and source from that instead. See [Orders](/docs/enquiry-bank/orders).

### A supplier I expected isn't in the list — why?

The list only shows suppliers that serve the chosen product head, and (when makes are selected) that carry at least one of those makes. Add the relevant product head or manufacturer to that supplier's record and the supplier will appear. See [Suppliers](/docs/records/suppliers).

### Can I mail more than one contact at the same supplier?

Yes. When a supplier has multiple contacts, tick it and pick as many as you like in the *Pick contact persons* modal. Each contact becomes its own invitation, so you can chase two people at one firm and treat whichever replies first as the winner.

### How do I set the closing date or attach a drawing?

Those live on the *RFQ Cart*, not here. Add all your lines first, then set the closing date and attachments before sending. See [RFQ cart](/docs/procurement/rfq-cart). The wording of the RFQ email and PDF, and the RFQ number format, are firm-wide settings — see [Document templates](/docs/settings/document-templates#rfq-personalisation).
