# The Quote lifecycle 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](/api/quotes-overview.md#buyer) is the Associate acting for the Business Unit; the [Seller](/api/quotes-overview.md#seller) is the merchant operating through the general endpoints. | Resource | Owned by | Role in the flow | | --- | --- | --- | | [Cart](/api/projects/carts.md) | Buyer | The basket the buyer assembles, with Business Unit context and distribution Channel | | [Quote Request](/api/projects/quote-requests.md) | Buyer | The buyer's formal request for terms, created from the Cart | | [Staged Quote](/api/projects/staged-quotes.md) | Seller | The seller's working copy, including a `quotationCart` the seller edits | | [Quote](/api/projects/quotes.md) | Seller, ordered by Buyer | The binding offer the buyer uses to create an Order | ## The lifecycle end to end The [intended workflow](/api/quotes-overview.md#intended-workflow) moves left to right, with each resource carrying its own states: 1. The buyer assembles a **Cart** with Business Unit context. 2. The buyer creates a **Quote Request** from the Cart. It starts in `Submitted`. 3. The seller accepts the request (`Accepted`) and prepares a **Staged Quote** (`InProgress`), editing its `quotationCart`. 4. The seller issues a **Quote** from the Staged Quote and sends it (`Sent`); the Quote starts in `Pending`. 5. From the `Pending` Quote, the buyer creates an **Order** from the Quote, declines it, or requests renegotiation. Order creation can set `quoteStateToAccepted: true` to record acceptance. 6. The Order carries the negotiated, locked prices from the Quote. ```mermaid sequenceDiagram participant B as Buyer (Associate) participant S as Seller (Merchant) B->>B: Assemble Cart (BU context) B->>S: Create Quote Request (Submitted) S->>S: Accept request (Accepted) S->>S: Prepare Staged Quote (InProgress) S->>B: Issue and send Quote (Sent / Pending) B->>B: Create Order from the Pending Quote B->>B: Set quoteStateToAccepted to true ``` 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. ## Related pages - [Area overview page with navigation](/learning-model-b2b-commerce.md) - [Previous page: The B2B Cart](/learning-model-b2b-commerce/implement-b2b-purchase-flows/the-b2b-cart.md) - [Next page: Quote Requests and Staged Quotes](/learning-model-b2b-commerce/implement-b2b-purchase-flows/quote-requests-and-staged-quotes.md)