---
title: RFQ cart
order: 3
updated: 2026-07-12
---

# RFQ cart

The *RFQ Cart* is the last stop before a request-for-quotation goes out. It gathers everything you collected on the [Add to cart](/docs/procurement/add-to-cart) screen — grouped one row per supplier — and lets you fine-tune each supplier's contact person, line items, attachments, and extra recipients, set a closing deadline, pick the sending mailbox, and release the whole batch in one click. Releasing locks the cart, mints the RFQ number, builds a per-supplier PDF, and queues the emails; the suppliers then appear under [Procurement enquiries](/docs/procurement/enquiries).

Everything on this page is re-checked on the server. A forged supplier or contact-person ID, a closing date in the past, a bad email address, or an attachment packet that would bounce the mail is all rejected server-side even if the screen let it through — so the cart can't be tricked into releasing something broken.

## Who can use it

Three permissions gate this page:

- *View RFQ cart* (`procurement.viewCart`) — needed to open the page at all. Without it you get a "You don't have permission to view the RFQ cart" message.
- *Add to cart* (`procurement.addToCart`) — needed for the *Options* dropdown, the per-supplier *Edit* actions (removing lines, attachments, recipients), and setting the closing date. The *Options* button only renders when you hold this permission **and** the cart has at least one supplier.
- *Send enquiry to supplier* (`procurement.sendEnquiryToSupplier`) — needed to release. Without it the *Send Enquiry* button is disabled and a note reads "You don't have permission to send enquiries — ask an admin."

The recipient picker's supplier-contact search additionally needs *View supplier list* (`database.viewSupplierList`); without it the picker still works but only through the custom-email field.

## Open the cart

1. Open *Procurement* in the sidebar.
2. Click *RFQ Cart*. The page heading reads *RFQ Cart*.

The cart is a single running draft per user — it is the same draft you were filling on *Add to Cart*, so items you ticked there are already here. There is no "create cart" step.

## Read the supplier table

Each row is one supplier with the lines you assigned to them. The same supplier can appear on **more than one row** if you invited two different contact persons at that firm — each contact person is its own invitation and gets its own RFQ letter. Columns:

- *Supplier* — the supplier's name.
- *Contact Person* — the chosen contact person's name, with their email underneath. A dash (`—`) means no contact person is resolved.
- *Product Codes* — every product code assigned to this supplier, one per line.
- *Qty* — the quantity and unit for each line.
- *Make* — the manufacturer(s) requested for each line, comma-joined, or `—` if none.
- *Edit* — opens the per-supplier panel (see below).

Near the heading, a chip counts the cart, e.g. `3 items · 2 suppliers`. *Add more* (top-left) jumps back to [Add to cart](/docs/procurement/add-to-cart). When the cart is empty you get a "Your RFQ cart is empty" placeholder with a shortcut to *Add to Cart*, and the *Options* and send controls are hidden.

If a closing date is set, a small "Closes …" link appears centred under the heading — click it to jump straight to the closing-date editor.

## Edit a supplier

Click *Edit* on a row to open the *Edit RFQ* panel. It shows a *Supplier* card (name + item count), a *Contact Person* card (name + email), and a table of that supplier's line items.

### Line items table

Each line shows *Product*, *Qty* (quantity + unit), and *Make*. Expand a row to read its *Description* (rich text carried from the source enquiry; shows "— no description —" when empty).

### Remove a product

*Remove* on a line asks for confirmation, then pulls that product from this supplier only.

- If it is **not** the supplier's last line, the product just leaves this supplier's invitation.
- If it **is** the last line, the confirmation warns in red that "the supplier will be dropped from the cart" — removing it deletes the whole invitation and closes the panel.
- Server-side, once no supplier references a product anymore, that line is also dropped from the underlying draft so the cart shows no orphans. Removal is only permitted while the event is still a draft (i.e. not yet released).

### Attachments (per supplier)

The three-dot (kebab) menu in the panel's top-right corner holds *Attachments*. These are files that ride on **only this supplier's** RFQ — a drawing or quote sheet specific to them. The shared packet set at cart level (see [Common attachments](#common-attachments)) still travels to every supplier on top of these.

- Drag-and-drop or browse to upload; each file is capped at `50 MB`.
- The supplier's mail carries the shared packet + this supplier's own files + the generated `Enquiry.pdf`. The server caps that **combined** total at `20 MB` (Gmail and most providers bounce past ~25 MB, so this leaves headroom). Going over is rejected with an "exceeds the 20 MB limit" message and the upload is rolled back.
- Per-supplier attachments can only be changed while the invitation is still in the cart — once the RFQ is dispatched they are locked (they are part of what was mailed).

### Recipients (per supplier)

The kebab's *Recipients* item opens the *Manage Recipients* picker to add extra CC or BCC addresses **for this supplier only**, on top of the firm-wide defaults. A `+N` badge on the menu item and a *Recipients for this RFQ* summary card (with an *Edit* shortcut) appear once you have added any.

Inside the picker:

- **Search this supplier's contacts** — type to fuzzy-search the supplier's contact persons; each result has *CC* and *BCC* toggle buttons. A contact with no email on file is shown but not selectable. This search needs *View supplier list*; without it the list is replaced by a note pointing you to the custom-email field.
- **Add a custom email** — for an address not on record (a partner, a one-off colleague). Type it and press *CC*, *BCC*, or Enter (Enter adds to CC). It must be a valid email; invalid text is rejected inline.
- **Selected summary** — the CC and BCC chips you have added for this send, each removable with its `×`.
- **Always included (firm defaults)** — read-only chips showing the firm-wide RFQ CC/BCC lists. These are always applied automatically and can't be toggled here (trying to re-add one tells you it's already a firm default). To change them, an admin edits *Settings → Firm Customisation → Procurement → RFQ Personalisation* — see the [CC & BCC](/docs/settings/document-templates#cc--bcc) and [RFQ personalisation](/docs/settings/document-templates#rfq-personalisation) sections.

Limits and gotchas:

- The picker blocks you at `30` custom addresses per list; the server accepts up to `50` per list and silently drops any entry that isn't a valid email, then hands back the exact list it saved so the screen reconciles.
- Recipients can only be edited while the event is still in the cart (a draft). After release the recipient list is frozen into what was actually mailed.
- The firm defaults you see here are the RFQ defaults, not the sending mode. The RFQ *recipient mode* (contact-person / fixed mailbox / hybrid) — which decides the primary *To* and whether a review mailbox is silently CC'd — is also set under RFQ personalisation and applied at release.

## Cart-level options

The *Options* dropdown (next to the chip) holds two firm-neutral, whole-cart settings.

### Common attachments

*Options → Attachments* manages the shared packet — spec sheets, standard terms, datasheets — that goes to **every** supplier on the RFQ, merged ahead of each supplier's own files.

- Same `50 MB`-per-file rule, and the same `20 MB` server cap on the eventual per-supplier mail (shared packet + that supplier's files + the PDF).
- The shared packet is editable only while the cart is a draft. Once the RFQ is released it is locked — the message tells you to "cancel and recreate to change the global packet."

### Closing date

*Options → Closing date* opens the *Set Closing Date* editor. The closing date is the deadline after which **suppliers can no longer submit a quotation via the emailed self-fill link**. Your own staff can still record a bid on the supplier's behalf inside the app after the deadline — the cutoff only affects the public link.

- The picker uses minute granularity (firms usually mean "until 5 pm Friday", not just a day).
- The date must be **in the future**; a past or present time is rejected both on screen and on the server.
- Once set, the date shows above the table as a "Closes …" link, and a *Clear* button appears in the editor to remove it again.
- The closing date is the one field you can change **after** release — firms routinely extend a live deadline. It can be edited in any non-terminal state but **not** on a closed enquiry. (Reopening a closed enquiry is a separate action that requires a fresh future closing date.)

The cart never sets a closing date on its own. If you release without one, see the send-time prompt below.

### Default closing window (optional shortcut)

If you often forget to set a closing date, set a *Default Closing Date* in days under *Settings → Personalisation → RFQ Cart* (range `0`–`3650`; `0` disables the auto-fill; it saves automatically as you type). See [Personalisation](/docs/settings/personalisation).

When a default of at least `1` day is configured **and** the cart has no closing date yet, pressing *Send Enquiry* first pops a *Set a Closing Date* modal pre-filled with `now + N days`. The window is measured from the **moment you click send**, not from when you opened the cart — so adding items across several days never freezes a stale deadline. Adjust it if you like and confirm; confirming saves the date and then releases. Cancel and nothing is sent. If a closing date is already set (or you have no default), sending skips straight to the plain confirmation.

## Send the RFQ

1. **Pick the sending mailbox in *Send via*.** The dropdown lists the accounts your firm's policy allows for quotation-type sends (the same policy that governs quotation emails); the placeholder reads *Select email account…*. If exactly one account is allowed it is pre-selected. This is the from-address suppliers see. Managing accounts and this policy lives under [Email accounts and sending policy](/docs/settings/document-templates#email-accounts-and-sending-policy).
2. **Click *Send Enquiry*.** The button is disabled without the send permission, and sending is blocked if the cart is empty or no mailbox is chosen.
3. **Confirm.** Either the closing-date prompt above (when applicable) or the plain *Send RFQ?* modal appears, naming how many suppliers will be mailed. Confirm with *Send RFQ* / *Send Enquiry*.

### What release does

On confirm the server, in one pass:

- Verifies the chosen mailbox belongs to the firm and is currently valid.
- Mints the RFQ number: a firm-wide **base** counter (e.g. `2026-00123`) is consumed once for the whole cart, and each supplier invitation is assigned a trailing **letter** in cart order (`-A`, `-B`, … rolling `Z → AA → BB`). Re-releasing an event reuses the same base. The number format and counter are configured under [RFQ number format](/docs/settings/document-templates#rfq-number-format).
- For each supplier: issues a signed self-fill token (valid for the firm's configured window), builds that supplier's `Enquiry.pdf`, renders the subject/body from the firm's [RFQ personalisation](/docs/settings/document-templates#rfq-personalisation) template (optionally appending the items table and the self-fill link), resolves recipients (contact-person / fixed / hybrid mode plus firm CC/BCC and your per-supplier additions, deduped), and queues the mail.
- Flips the event to *released*, records who released it and when, and navigates you to [Procurement enquiries](/docs/procurement/enquiries).

A toast reports the outcome, e.g. `Sent — 2 queued, 1 skipped`. A supplier is **skipped** (not mailed, the rest still go) when its contact person has no email on file, or its PDF failed to build. If **every** supplier would be skipped, the release fails and the cart stays open so you can fix the problem.

Once released the cart is locked and cleared, and the suppliers show up under *Procurement enquiries*, each with its full RFQ number (e.g. `2026-00123-A`).

## Common questions

### A supplier I expected isn't in the list — where is it?

Suppliers are chosen on the *Add to Cart* screen, where candidates are narrowed to those that serve the product head and carry a selected make. If one is missing there, add the relevant manufacturer or product head to that supplier's record first — see [Suppliers](/docs/records/suppliers). This page can only edit or drop suppliers already in the cart, not add new ones.

### Why is the same supplier on two rows?

Because you invited two different contact persons at that firm. Each contact person is a separate invitation with its own RFQ letter and its own reply, so both can be chased and whichever answers first can win. Remove one row's last line to drop that particular invitation.

### I set extra CC/BCC but they didn't save — why?

Per-supplier recipients (and attachments) can only be changed while the event is still in the cart. If the RFQ has already been released the list is frozen to what was mailed. Also note the picker caps custom addresses at `30` per list and the server drops anything that isn't a valid email.

### The closing date passed — can I still collect quotes?

Your staff can always record a bid on the supplier's behalf inside the app; only the supplier's public self-fill link stops working past the deadline. To reopen the link, extend the closing date (editable any time before the enquiry is closed) or, if the enquiry is already closed, reopen it with a fresh future deadline.

### Which email accounts appear in "Send via"?

Whatever your firm's sending policy allows for quotation-type sends — that may be a fixed firm account, a choice of firm accounts, your own personal account, or a mix. Configure it under [Email accounts and sending policy](/docs/settings/document-templates#email-accounts-and-sending-policy).

### How do I change the RFQ number, wording, or attached PDF?

Those are firm-wide templates, not cart settings. The number format and counter are under [RFQ number format](/docs/settings/document-templates#rfq-number-format); the subject, body, items-table toggle, self-fill-link toggle, recipient mode, and firm CC/BCC are under [RFQ personalisation](/docs/settings/document-templates#rfq-personalisation). Template changes apply only to sends made after you save them.

### Where do the suppliers' replies show up?

Each supplier's quote appears against its entry under the RFQ in *Procurement enquiries*. Open the RFQ, then open the supplier — see [Vendor responses](/docs/procurement/vendor-responses).
