Skip to content

Quote types

The types the quote domain defines, with the fields other domains add to them.

Objects

CartNotQuotableError

Implements Error

The cart is in a state the merchant cannot quote. Every reason is buyer-fixable, so the storefront shows it against the basket rather than treating it as a fault.

FieldTypeDescription
messageString!Developer/debug description of the failure. Not localized and never shown to end users.
reasonCartNotQuotableReasonType!Why the cart cannot be quoted, driving the message shown to the buyer

Quote

Quote provided by merchant in response to a quote request

FieldTypeDescription
idQuoteIdentifier!Quote identifier containing id and version
quoteNumberStringThe number the seller gives this quote, which is what the buyer quotes back when they phone or mail about it. Distinct from purchaseOrderNumber, which is the buyer's own reference. Null where the seller gave it none.
createdAtDateTime!Creation date of the quote
statusQuoteStatusType!Status of the quote
commentStringWhat the buyer has said about this quote, which is the message accompanying a request to renegotiate it. The comment that opened the negotiation is on the quote request, not here: this one is about the offer that came back.
sellerCommentStringWhat the seller has said about this quote -- why the price is what it is, or a condition attached to the offer that validUntil cannot express. The one thing a buyer most needs and had no way to be told: a quote showed a basket and a total, and nothing about the negotiation that produced them, so the exchange this feature exists for happened over email instead.
quoteRequestQuoteRequestThe request this quote answers, and with it the message that opened the negotiation. A quote carries what the buyer said about the offer that came back; the ask is on the request. Without the link a page could show only half the conversation -- the seller's note arriving without the question it answers. Null where the request can no longer be read, which leaves the quote itself perfectly readable.
customerCustomerWho asked. Inside a company several associates may request quotes and the seller answers the company, so this is how a colleague or an approver knows whose quote they are looking at. Null where the quote records no customer, or where that customer can no longer be read.
purchaseOrderNumberStringPurchase order number entered by the client
validUntilDateTimeDate until which the quote is valid and can be ordered
lineItems[QuoteSingleLineItem!]!Line items in the quote
billingAddressAddressCustomer billing address
shippingAddressAddressCustomer shipping address
subTotalTaxedTotalPrice!What the line items come to before the quote's discount, which is what the buyer would have paid at the regular price.
discountTotalTaxedPriceThe discount this quote grants: what subTotal and shippingCosts come to, less the total being quoted. Absent where nothing was taken off. Read from the totals because a seller may price a quote either way -- line by line, or by moving the quote's total and leaving the lines at their regular price. Both arrive here, so subTotal minus this plus shippingCosts plus vatShifting plus vatExemption equals total whichever was done. The rate is the effective rate over the discounted goods -- exact for a single-rate quote, a blend where it mixes rates.
shippingCostsTaxedPriceDelivery cost quoted, if any
totalTaxedTotalPriceTotal price quoted, including all costs
vatShiftingMoneyThe amount of a reverse-charge line, negative and already reflected in total, where one is carried. It is not part of discountTotal. A reverse-charged cart is taxed at 0% and gets no such line, so this is null on a quote for one.Deprecated: A reverse-charged cart is taxed at 0%; read vatOutcome and the taxed totals.
vatExemptionMoneyThe amount of an export line, negative and already reflected in total, where one is carried. An exported cart is taxed at 0% and gets no such line, so this is null on a quote for one.Deprecated: An exported cart is taxed at 0%; read vatOutcome and the taxed totals.
vatOutcomeVatOutcomeWhich VAT rule the quote's amounts follow, and why, as the cart it came from recorded it; the same as Cart.vatOutcome. Tells a reverse-charged or exported quote from one taxed at 0%. Null where none was recorded and where the engine does not decide VAT itself.
orderOrderThe order placed against this quote. Null until one is, which is every status other than ACCEPTED. One order at most: a quote cannot be ordered again once accepted. Should ordering part of a quote ever produce several, this becomes a list at that point and not before.

QuoteDeclineResponse

Response for declining a quote

FieldTypeDescription
quoteQuoteThe declined quote, absent when declining failed
quoteErrors[QuoteDeclineError!]!Error details if declining failed

QuoteIdentifier

Identifier for a quote with version control

FieldTypeDescription
idID!Unique identifier for the quote
versionStringOpaque optimistic-concurrency token, present only for engines that version their resources. Pass it back verbatim; never parse or compare it.

QuoteNotPendingError

Implements Error

The quote is no longer waiting for the buyer, so it cannot be replied to or declined. The status says why, so the storefront can hide both actions rather than offer one that will fail.

FieldTypeDescription
messageString!Developer/debug description of the failure. Not localized and never shown to end users.
statusQuoteStatusType!The status the quote is in, which is what blocks the answer

QuoteReplyResponse

Response for replying to a quote

FieldTypeDescription
quoteQuoteThe quote replied to, absent when the reply failed
quoteErrors[QuoteReplyError!]!Error details if the reply failed

QuoteRequest

Quote request created by a customer

FieldTypeDescription
idQuoteIdentifier!Quote identifier containing id and version
createdAtDateTime!Creation date of the quote
statusQuoteRequestStatusType!Status of the quote
commentStringComment from the customer
customerCustomerWho asked. Inside a company several associates may request quotes and the seller answers the company, so this is how a colleague or an approver knows whose request they are looking at. Null where the customer can no longer be read, which leaves the request itself perfectly readable.
purchaseOrderNumberStringPurchase order number entered by the client
lineItems[QuoteSingleLineItem!]!Line items in the quote
billingAddressAddressCustomer billing address
shippingAddressAddressCustomer shipping address
subTotalTaxedTotalPrice!What the line items come to before the quote's discount, which is what the buyer would have paid at the regular price.
discountTotalTaxedPriceThe discount this quote grants: what subTotal and shippingCosts come to, less the total being quoted. Absent where nothing was taken off. Read from the totals because a seller may price a quote either way -- line by line, or by moving the quote's total and leaving the lines at their regular price. Both arrive here, so subTotal minus this plus shippingCosts plus vatShifting plus vatExemption equals total whichever was done. The rate is the effective rate over the discounted goods -- exact for a single-rate quote, a blend where it mixes rates.
shippingCostsTaxedPriceDelivery cost quoted, if any
totalTaxedTotalPriceTotal price quoted, including all costs
vatShiftingMoneyThe amount of a reverse-charge line, negative and already reflected in total, where one is carried. It is not part of discountTotal. A reverse-charged cart is taxed at 0% and gets no such line, so this is null on a quote for one.Deprecated: A reverse-charged cart is taxed at 0%; read vatOutcome and the taxed totals.
vatExemptionMoneyThe amount of an export line, negative and already reflected in total, where one is carried. An exported cart is taxed at 0% and gets no such line, so this is null on a quote for one.Deprecated: An exported cart is taxed at 0%; read vatOutcome and the taxed totals.
vatOutcomeVatOutcomeWhich VAT rule the quote request's amounts follow, and why, as the cart it came from recorded it; the same as Cart.vatOutcome. Tells a reverse-charged or exported quote request from one taxed at 0%. Null where none was recorded and where the engine does not decide VAT itself.

QuoteRequestCancelResponse

Response for withdrawing a quote request

FieldTypeDescription
quoteRequestQuoteRequestThe withdrawn quote request, absent when the withdrawal failed
quoteRequestErrors[QuoteRequestCancelError!]!Error details if the withdrawal failed

QuoteRequestCreateResponse

Response for quote request creation

FieldTypeDescription
quoteRequestQuoteRequestQuote request created, absent when creation failed
quoteRequestErrors[QuoteRequestCreateError!]!Error details if creation failed

QuoteRequestIdentifier

Identifier for a quote request with version control

FieldTypeDescription
idID!Unique identifier for the quote request
versionStringOpaque optimistic-concurrency token, present only for engines that version their resources. Pass it back verbatim; never parse or compare it.

QuoteRequestNotCancellableError

Implements Error

The request can no longer be withdrawn. Only a request the merchant has not yet answered can be, so the blocking status is the whole story and the storefront can hide the affordance rather than offer an action that will fail.

FieldTypeDescription
messageString!Developer/debug description of the failure. Not localized and never shown to end users.
statusQuoteRequestStatusType!The status the request is in, which is what blocks the withdrawal

QuoteRequestResult

Paginated result containing quote requests

FieldTypeDescription
items[QuoteRequest!]!List of quote requests
paginationPagination!Where this page sits within the full result set

QuoteResult

Paginated result containing quotes

FieldTypeDescription
items[Quote!]!List of quotes
paginationPagination!Where this page sits within the full result set

QuoteSingleLineItem

Implements QuoteLineItem

Individual line item in a quote

FieldTypeDescription
idID!Unique identifier for the line item
nameString!Product name for the line item
quantityInt!Number of items
priceTaxedPrice!The final price after applying discounts
regularPriceTaxedPrice!The regular selling price on the platform
listPriceTaxedPrice!The list price (MSRP)
variantProductVariant!Product variant details

Input objects

QuoteRequestCreateArgsInput

Input data for creating a new quote request

FieldTypeDescription
cartIdID!Cart the quote is requested for
commentStringOptional comment from the customer
purchaseOrderNumberStringOptional purchase order number

Enums

CartNotQuotableReasonType

Reason a cart cannot be turned into a quote request. Normalized across engines: an adapter maps its own refusal onto one of these rather than forwarding the engine's own wording.

SHIPPING_ADDRESS_MISSINGThe cart has no delivery destination set
DISCOUNT_CODES_PRESENTThe cart carries promotional discount codes, which cannot combine with a negotiated price
EMPTY_CARTThe cart has no line items
ANONYMOUS_CARTThe cart is not associated with a signed-in buyer
UNSUPPORTED_SHIPPING_CONFIGURATIONThe cart uses a shipping configuration the backend cannot quote

QuoteRequestStatusType

Status of a quote request

SUBMITTEDSubmitted to the merchant, awaiting a quote
ACCEPTEDAccepted by the merchant; a quote has been / will be issued
REJECTEDRejected by the merchant
CANCELLEDCancelled or no longer actionable

QuoteSortOrderType

Order in which a list of quotes is returned

CREATED_AT_DESCENDINGMost recently issued first
ORDERABLE_FIRSTQuotes the buyer can still order first -- PENDING and not past validUntil -- then all others, each group most recently issued first

Interfaces

QuoteLineItem

Interface for quote line items

FieldTypeDescription
idID!Unique identifier for the line item
nameString!Product name for the line item
quantityInt!Number of items
priceTaxedPrice!The final price after applying discounts
regularPriceTaxedPrice!The regular selling price on the platform
listPriceTaxedPrice!The list price (MSRP)

Implemented by QuoteSingleLineItem.

Unions

QuoteDeclineError

Error union for declining a quote

One of ValidationError or QuoteNotPendingError.

QuoteReplyError

Error union for replying to a quote

One of ValidationError or QuoteNotPendingError.

QuoteRequestCancelError

Error union for withdrawing a quote request

One of ValidationError or QuoteRequestNotCancellableError.

QuoteRequestCreateError

Error union for quote request creation

One of ValidationError or CartNotQuotableError.