Quote negotiation doesn't belong in a CPQ bolt-on or a sales inbox
Most B2B platforms hand you a "request a quote" form that lands in a sales rep's inbox, and tell you to negotiate by email. The serious alternative is bolting on a CPQ system (a second product, a second contract, a second integration) just to handle quote workflow.
Vendure Platform makes quote negotiation a first-class part of commerce. Quotes live in the same backend as your catalogue and your orders. The same data model, the same APIs, the same dashboard. When the customer accepts, the quote becomes an order with the negotiated prices intact.
The quote workflow your sales team actually runs
Five capabilities that cover every step from quote request to order, without a separate CPQ.
Full quote lifecycle, multi-version pricing
Draft, in review, awaiting approval, quoted, accepted, rejected, expired, cancelled. Each negotiation round is a new quote version with its own line items, prices, and validity window. The customer only sees versions you mark visible. Version history is auditable end to end.
Internal and external comments on one thread
Sales reps discuss internally; customer-visible comments stay separate. Both pin to the same quote, so context never leaves the record. When a quote ships through the system, the negotiation history goes with it.
Quote templates for repeat motions
Reusable line-item sets for RFP responses, standard package quotes, and framework agreement quotes. Pre-populate a new quote from a template, then negotiate from there. Saves reps from rebuilding the same quote shape every cycle.
Optional approval branch
Wire a quote into an approval policy (discount over X%, value over Y, custom condition) and the workflow automatically routes the quote through review before it goes to the customer. Awaiting-approval is a first-class state.
Quote → Order with pricing locked
When the customer accepts, the quote becomes a real Vendure order with the negotiated prices, shipping rules, and line-item metadata intact. No re-keying, no checkout-time override. The order keeps a sourceQuoteId for reporting and recurrence.
Durable workflow state, enforced by the engine
Quote Management runs on Vendure's Workflow Engine. Each quote is a long-lived workflow instance moving along a happy path from draft to accepted order, with an optional approval branch and a handful of terminal states for the cases that don't close.
State transitions are durable. If the API restarts mid-negotiation, the workflow resumes on the same step. Expiry is enforced by the engine through a validity window in seconds, not by a cron job your team has to remember to run.
Every transition emits a typed event. Subscribe for notifications, audit trail entries, or downstream integrations.
Three quote motions, one plugin
An extension surface your team owns
Quote Management exposes the extension points a real sales operation needs:
- Custom quote document strategies (PDF, email body, any format)
- Customer-scope strategies (who sees whose quotes)
- Notification handlers (email, MS Teams, any channel)
- Custom quoted-shipping logic
- Custom fields and plugin surface on every entity
Every customisation lives as a plugin in your own repo. When sales ops asks for a tweak, your team ships it as a plugin change against the same codebase they already work in. Whether it's a new document template for one customer segment or a different scope rule for partner reps, the workflow is the same. No fork, no vendor ticket.
Trusted by complex B2B commerce and enterprise retail.
What sales operations and engineering teams ask
Questions that come up when evaluating Quote Management against an inbox + spreadsheet motion or a CPQ bolt-on.
What Quote Management pairs with
Quote Management is one of six B2B buying plugins on Vendure Platform. The full procurement story routes through these together.




