Pipeline and troubleshooting
Common quote problems
Refused acceptances, expired quotes, freight charged twice or not at all, an order that does not match the offer.
Most quote problems come back to four things: the date, the settings, what was priced, and what happened after acceptance. Start with the symptom.
Symptom, cause, fix
| Symptom | Likely cause | Fix |
|---|---|---|
| The buyer cannot accept: "this quote expired on …" | Valid until has passed, plus any grace period | Price it again with a new date while it is still quoted; once expired, it needs a new quote |
| The buyer accepted an hour after the date, and it worked | A grace period is set | Intended. Check Grace period after expiry in hours if you did not expect it |
An expired quote still shows quoted in the list | Expire quotes automatically is off, or the hourly sweep has not run yet | Nothing is at risk: acceptance is refused after the date regardless of the status |
| The buyer cannot accept single positions | Allow partial acceptance is off | Intended if the price was calculated over the whole basket. Otherwise switch it on |
| A colleague of the requester cannot accept | Who may accept a quote is set to Only the requester | Switch to Anyone in the organization, or let the requester accept |
| The buyer does not see the quote at all | They belong to another organisation than the quote, or lack quotes.read | Check Company on the quote and the buyer's role |
| Send quote is greyed out | The quote is decided or expired | It can no longer be priced. Open a new quote |
| Refuse to quote is greyed out | The quote was already sent | A sent quote cannot be refused; let it expire or wait for the buyer |
| A position is in the order at €0.00 | It had no list price and no quoted price when the buyer accepted | Before sending, check every position has a price in the Quoted column |
| The second order has no freight | Intended: carriage goes with the first order out of a quote only | Nothing to fix |
| The order has no freight at all | The quote was priced without carriage | The order flow decides what unpriced freight means; enter carriage, or 0, when sending |
| The buyer never got a mail | The app sends no mail itself; no workflow listens to quote.quoted | Set up the workflow; see Events and webhooks |
| The next order is at list price, not the quoted price | A quote covers one deal; it does not create a contract price | Put the agreed price on a customer price list; see Quotes and contract prices |
"This quote expired", and the buyer insists it did not
The date is checked at the moment of acceptance, against Valid until plus the grace period in hours. Two things cause arguments:
- The buyer read the date in the mail, not on the quote. If the quote was priced again with a new date, the mail from the first round shows the old one. Every round is announced, so the newest mail is right.
- "Valid until 30 April" and an acceptance on 1 May at 00:30. The date is hard. If you want to be generous by a few hours as policy, set a grace period rather than handling it case by case.
Once the sweep has moved the quote to expired, it is final. If you still want
the deal, open a new quote.
The order does not match the quote
Compare three places: the quote's Overview tab (positions, Quoted, Decision), the Trail tab (which round was accepted, which order was written back) and the order itself.
- Different unit prices. The order should carry the quoted price per position. If it carries list prices, the order was placed from the cart rather than from the accepted quote. Check the Trail tab: an accepted quote with no ordered entry was never ordered through the quote.
- Positions missing. The buyer accepted only part of the quote. The rest is
still open on a
partially_acceptedquote, or declined. - Positions twice. Not from the quote: each acceptance hands over only the positions accepted in that step. Look for a second order placed by hand.
A quote nobody owns
A request sitting in requested for days has no owner. Take it on sets
one. Make it a habit to filter Status = requested every morning; see
Reading your quotes.
Next
- Reading your quotes: the numbers behind the symptoms.
- Quote settings: most of the "intended" rows above are a setting.