Handle a quote request
A buyer sent a basket in from the shop, or a customer phoned and wants an offer. This is the path from that moment to a quote the buyer can accept: take it on, price it, send it. Or, if you will not quote, refuse it with a reason the buyer can read.
quotes.price.Find the request
- Open Order Management › Quotes. The list is sorted newest first.
- Set the Status filter to
requestedto see what nobody has picked up yet. The Origin filter separates From a cart from Opened by sales. - Open the quote. The header shows the status, the origin, the currency and the validity.
The Overview tab lists the positions: SKU, article, quantity, the List price, the Quoted price, the reason (Why), the line total and the buyer's Decision. The panel beside it shows the customer, the shipping and billing address, the offer totals and the notes, including Why a quote and From the buyer.
Take it on
- Select Take it on. The quote moves to
in_review, and you are its owner. The action is offered only on a new request.
Taking it on is what tells your colleagues somebody is working on it. A quote
your sales team opened with New quote skips this step: it starts in
in_review already.
Price it
The quote's price has three parts: the positions, the carriage and the validity.
Positions. Each position carries its list price from the cart. Where you
agree a different price, it is stored as the Quoted price beside the list
price, with a reason from a fixed list (volume, competition,
relationship, clearance, cost_change, other) and optionally a lead time
in days.
Position prices cannot be edited in the Cockpit. Send quote sets only the
carriage, the validity and your message. A quote you send from the Cockpit
therefore goes out at list price plus carriage. A negotiated position price is
set by a call to the quotes app's pricing step (/quotes/quotes/:id/price),
from your ERP, a CPQ system or an integration of your own. If your prices come
from there, that is where it takes over anyway.
Carriage and validity are set when you send:
- Select Send quote. Fill in:
- Carriage (net): what the freight to the shipping address costs.
Required. Enter
0if you deliver free. - Carriage tax rate (%): prefilled with 19.
- Valid until: leave it empty to use the default validity.
- Message to the buyer: what the buyer reads with the quote, for example delivery terms, lead time and a direct phone number.
- Carriage (net): what the freight to the shipping address costs.
Required. Enter
- Confirm. The quote moves to
quotedand waits on the buyer.
The panel now shows Goods (quoted), Carriage and Total incl. carriage (net). The total is goods plus carriage, so the list, the record and the shop show the same number.
Refuse to quote
Some requests you will not answer with a price: an article you no longer supply, a quantity you cannot deliver, a customer you do not serve.
- Select Refuse to quote. It is offered while the quote is
requestedorin_review; once a quote is sent, it can no longer be refused. - Enter a Reason. It is required, and the buyer reads it, so write it for them: "We no longer stock DN 12 hose; DN 16 is the successor."
- Confirm. The quote moves to
rejected, which is final.
A refusal without a reason is not possible. For the buyer, "rejected" alone is silence with a status attached.
What reaches the buyer
The quotes app sends no mail itself. It announces each step as an event, with
everything a mail needs already on it: quote.quoted carries the buyer's name
and email address, the total, the carriage, the validity and your message;
quote.rejected carries the reason. A workflow on those events sends the mail.
If your buyers say they never hear back, check that workflow first. See
Events and webhooks.
What to check
- The quote shows
quoted, a Valid until date and a Total incl. carriage that matches what you intended. - The Trail tab shows one entry per step: requested, taken on, quoted.
- The buyer received the mail your workflow sends.
Next
- Negotiate and revise: when the answer is "what about 600?".
- From an accepted quote to an order: when the answer is yes.