When Atlas Corporate wants 500 units at a price no published rate covers, a plain Cart cannot express what happens next: a buyer asks, a seller responds with a revised offer, and the buyer accepts or pushes back. That structured back-and-forth is what the Quote flow models. This page is the map of the whole flow; the next two pages walk each half in detail.
Why a plain Cart is not enough
A Cart records what a buyer wants to buy at the prices they are entitled to. Negotiation is different: the buyer requests terms, the seller prepares a counter-offer on a working copy, and the agreed result must be captured as a binding price that survives later catalog changes. commercetools splits that conversation across four resources so each party acts on the right one, and so the agreed terms are recorded separately from the original basket.
The four resources
The flow uses one buyer-owned basket and three negotiation resources. The Buyer is the Associate acting for the Business Unit; the Seller is the merchant operating through the general endpoints.
| Resource | Owned by | Role in the flow |
|---|---|---|
| Cart | Buyer | The basket the buyer assembles, with Business Unit context and distribution Channel |
| Quote Request | Buyer | The buyer's formal request for terms, created from the Cart |
| Staged Quote | Seller | The seller's working copy, including a quotationCart the seller edits |
| Quote | Seller, ordered by Buyer | The binding offer the buyer uses to create an Order |
The lifecycle end to end
The intended workflow moves left to right, with each resource carrying its own states:
- The buyer assembles a Cart with Business Unit context.
- The buyer creates a Quote Request from the Cart. It starts in
Submitted. - The seller accepts the request (
Accepted) and prepares a Staged Quote (InProgress), editing itsquotationCart. - The seller issues a Quote from the Staged Quote and sends it (
Sent); the Quote starts inPending. - From the
PendingQuote, the buyer creates an Order from the Quote, declines it, or requests renegotiation. Order creation can setquoteStateToAccepted: trueto record acceptance. - The Order carries the negotiated, locked prices from the Quote.
Each step is a permissioned action: the buyer needs permissions such as
CreateMyQuoteRequestsFromMyCarts and CreateMyOrdersFromMyQuotes, while the seller operates through the general endpoints. You will see the specific states and actions for each half in the next two pages.Key takeaways
- A negotiated B2B purchase uses four resources: the buyer-owned Cart and Quote Request, and the seller-owned Staged Quote and Quote.
- The Cart records what the buyer wants; the Quote flow records the negotiation and the agreed binding price separately.
- The lifecycle runs Cart -> Quote Request -> Staged Quote -> Pending Quote -> Order, with each resource tracking its own states.
- Buyer actions are governed by Associate permissions; the seller acts through the general endpoints.