quoteReply
Answer a quote with a message to the seller, asking for a different offer. The message becomes the quote's comment.
Where the engine withdraws the offer while the seller answers, the quote moves to RENEGOTIATION_REQUESTED and the seller's answer arrives as a new quote. Where it does not, the quote stays PENDING and orderable.
Arguments
| Argument | Type | Description |
|---|---|---|
id | ID! | |
comment | String! |
Returns
| Field | Type | Description |
|---|---|---|
quote | Quote | The quote replied to, absent when the reply failed |
quoteErrors | [QuoteReplyError!]! | Error details if the reply failed |
Example
mutation QuoteReply($id: ID!, $comment: String!) { quoteReply(id: $id, comment: $comment) { quote { quoteNumber createdAt status comment sellerComment purchaseOrderNumber validUntil } quoteErrors { __typename ... on ValidationError { message } ... on QuoteNotPendingError { message status } } }}{ "id": "id-1", "comment": "Example"}{ "data": { "quoteReply": { "quote": { "quoteNumber": "Example", "createdAt": "2026-10-01T09:30:00Z", "status": "PENDING", "comment": "Example", "sellerComment": "Example", "purchaseOrderNumber": "Example", "validUntil": "2026-10-01T09:30:00Z" }, "quoteErrors": [ { "__typename": "ValidationError", "message": "Example" } ] } }}The query selects the return type's fields two levels deep; pick the ones you need. The response shows its shape with placeholder values.
Served by
| @evolve-framework/commercetools | Resolved |
| @evolve-framework/medusa | Resolved |
| @evolve-framework/sfcc | Not resolved |
Used by
The storefront packages that send it, in these GraphQL documents:
- @evolve-storefront/feature-quote:
QuoteReply

