On a B2B store, the quote is not a decorative document: it is the object the whole commercial relationship revolves around. Turning it into an order is the moment where everything can be lost, because the price has moved, because the stock was not reserved, or because nobody knows which version of the quote the customer accepted.
PrestaShop only knows about orders. Here is the workflow to build around that.
The six states of a quote
A quote is not a two-position object. Six states cover every real situation.
- Draft: built on the merchant side, not visible to the customer. This is where the salesperson adjusts the discounts.
- Sent: passed to the customer, it becomes a firm offer and commits your prices for the validity period.
- Accepted: the customer has approved it. The document freezes, no further modification is possible.
- Declined: keep it, with the reason when you have it. It is your best source of information on your pricing position.
- Expired: the validity date has passed with no answer. The state has to switch automatically.
- Converted: an order has been created from the quote, with a permanent link between the two.
The classic mistake is merging “accepted” and “converted”. Several days can pass between the two, waiting for a customer purchase order or a deposit transfer, and you need to know how many quotes sit in that gap.
The validity period is not a formality
A quote with no deadline is an offer of indefinite duration. Three concrete risks follow.
Your purchase prices move, but you stay committed to the price shown. The stock you had at the time of the quote has been sold to other customers. And on imported products, the exchange rate has shifted.
Thirty days is the usual period. What matters more than the number is that the deadline appears on the document, that the switch to the expired state is automatic, and that a reminder goes out a few days before. A quote chased three days before expiry converts markedly more often than a forgotten one.
DataFirefly B2B Quote RequestSell B2B: from quote to order, without leaving PrestaShop€79.00
The deposit
On significant amounts or made-to-order products, the deposit protects your cash flow and commits the customer. Three points to frame.
- The amount: percentage or flat sum, to be defined per range rather than case by case.
- The invoicing: a deposit collected gives rise to a deposit invoice, which will be deducted from the final invoice. It is not a simple payment line.
- What happens on cancellation: to be written into the quote’s terms, not improvised at the moment of the dispute.
Conversion, and the stock question
At the moment of conversion, one arbitration has to be settled: do you reserve the stock as soon as the quote is accepted, or only when the order is created?
Reserving on acceptance avoids announcing an availability you cannot honour. It does immobilise stock on deals that may never close. The common compromise is to reserve once the deposit has been collected, which filters out soft intentions.
On the documentary side, the order has to keep the number of the originating quote. That link is what lets you find out, six months later, on what pricing basis a discount was granted.
What a quote must not be
Two widespread shortcuts cause problems.
A quote is not an order in a waiting state. Creating a PrestaShop order with a “quote” status looks convenient, but it pollutes your statistics, your accounting exports and your dunning. An unvalidated order still counts as an order in the totals.
A quote does not use the invoice numbering. It needs its own sequence, with a distinct prefix. Mixing the two creates a gap in the accounting numbering, which is exactly the point tax authorities check.
What triggers the move to a tool
One quote a week is handled perfectly well with a spreadsheet and a PDF sent by hand. Three signals indicate the threshold has been crossed: you no longer know how many quotes are awaiting an answer, you discover expired quotes nobody chased, and re-keying the lines at order time generates pricing errors.
At that stage, the cost of manual handling is counted in lost deals, not in hours.
Setting up the workflow
The B2B Quote Request module for PrestaShop covers this chain on PrestaShop 8 and 9: request from the product page or the cart, management of states and validity period, reminder before expiry, and conversion into an order without re-keying, keeping the link between the two documents.