The Quote Request: the buyer's ask
The buyer creates a Quote Request from a Cart, carrying the Cart's Line Items and Business Unit context. The buyer can attach a comment describing what they want, for example a target price or a delivery wish.
POST /{projectKey}/as-associate/{associateId}/in-business-unit/key=atlas-apac/quote-requests HTTP/1.1
Content-Type: application/json
{
"cart": { "typeId": "cart", "id": "{cartId}" },
"cartVersion": 8,
"comment": "Requesting volume pricing for 500 units, delivery split across Q2."
}
CreateMyQuoteRequestsFromMyCarts, consistent with the separation of duties you designed in Configure associate access.Before you design the buyer's Cart, check whether the Cart can be used for a Quote Request:
- The Cart must have
shippingMode: Singleand ashippingAddress. - The Cart cannot be anonymous.
- The Cart cannot have Discount Codes.
For negotiated delivery to multiple sites, create separate single-shipping Quote Requests per destination, or negotiate the commercial terms first and then use the multi-shipping Direct Order pattern from the previous page.
After the Quote Request is created, it moves through these states:
Submitted request is accepted by the seller and moves toward a Staged Quote, or leaves the negotiation path because the seller rejects it, the buyer cancels it, or the request is closed.The Staged Quote: the seller's working copy
quotationCart: a working copy of the basket that the seller can edit without touching the buyer's original Cart. On the quotationCart, the seller can add or remove Line Items, change quantities, and apply the negotiated discount.InProgress, sent to the buyer when the seller is ready, and closed when the Staged Quote flow is finished. See StagedQuoteState for the canonical state values.DirectDiscount versus Discount Code
quotationCart, and they are not interchangeable.| Mechanism | How it applies | Fits |
|---|---|---|
| DirectDiscount | The seller sets a discount on the whole quotationCart or specific Line Items, with no code and no eligibility predicate | A one-off negotiated reduction agreed for this deal |
| Discount Code / Cart Discount | A reusable, rule-based discount the buyer or system applies | Broad campaigns and standing promotions, not bespoke negotiation |
POST /{projectKey}/staged-quotes/{stagedQuoteId} HTTP/1.1
Content-Type: application/json
{
"version": 2,
"actions": [
{
"action": "changeStagedQuoteState",
"stagedQuoteState": "Sent"
}
]
}
A DirectDiscount is the natural fit for a quote, because the agreed reduction belongs to this one negotiation and should not be reusable elsewhere. A Cart cannot mix the two models: a basket that has direct discounts cannot also carry discount codes.
Key takeaways
- The buyer creates a Quote Request from a supported Cart, optionally with a comment, governed by a permission such as
CreateMyQuoteRequestsFromMyCarts. - The source Cart must use
shippingMode: Single, have ashippingAddress, not be anonymous, and not contain Discount Codes. - Quote Request states are
Submitted,Accepted,Rejected,Cancelled, andClosed. - The seller accepts the request and works on a Staged Quote's
quotationCart, a separate copy, leaving the buyer's Cart intact. - Staged Quote states are
InProgress,Sent, andClosed. - The seller uses a DirectDiscount for a one-off negotiated reduction, not a Discount Code, which is for reusable promotions.