Skip to content

Quote workflow

Status model

A quote passes through these statuses:

StatusStorefront labelAdmin labelMeaning
requestedRequestedRequestedThe customer has requested; not yet processed.
in_progressIn progressIn progressThe merchant is negotiating (draft, editable).
sentQuote receivedSentThe binding quote has been sent to the customer.
acceptedAcceptedAcceptedThe customer has accepted; the cart is filled.
orderedOrderedOrderedAn order has been created and linked to the quote.
declinedDeclinedDeclinedDeclined/withdrawn by customer or merchant.
expiredExpiredExpiredThe validity has lapsed (automatic).
supersededSupersededSupersededReplaced by a newer version and frozen.

Open quotes

requested, in_progress and sent count as open. In these statuses the customer can post messages and decline; only open quotes count towards the spam limit (Configuration).

Allowed status transitions

Status changes in the admin run through server-validated actions — an illegal transition can never be saved, regardless of what the frontend sends.

FromAllowed to
requestedin_progress, sent, declined
in_progresssent, declined
sentdeclined

The remaining statuses are not set via these actions but by other flows:

  • accepted — by the customer's acceptance (or "Convert to order" in the admin),
  • ordered — automatically once the order is placed,
  • expired — automatically by the expiry task,
  • superseded — automatically when revising a sent quote.

The full flow

1. Request

The customer requests (from the cart, via "Price on request", via quick request) or the merchant creates a draft. On a customer request the current terms are captured (payment method, shipping method, shipping costs from the cart). Status: requested (customer request) or in_progress (merchant draft). See Request.

2. Negotiation

The merchant opens the quote under Catalogues/Orders → Quotes, marks it in progress, and adjusts positions, prices, tiers, alternatives, texts and terms. The quote stays editable while it is requested or in_progress. See Management.

3. Send

The merchant clicks Send quote. This:

  • sets the status to sent and stores the send date,
  • generates an express token for the deep link in the email,
  • sends the "Your individual quote" email to the customer (optionally with a PDF attachment).

Send lock

A quote can only be sent once payment method and shipping method are set (shipping costs may be 0 = free). Otherwise the button is disabled, and the server additionally rejects the send.

A sent quote is binding and is no longer edited in place — changes go through a new version.

4. Acceptance

The customer accepts under Account → My quotes with "Accept quote & order". The shop checks status and validity, sets the quote to accepted, switches the session to the quoted payment/shipping method, and fills the cart with the negotiated positions. Optional positions, alternatives and (for tiers) the quantity are taken from the customer's selection.

5. Order

Immediately afterwards:

  • If "Place a binding order directly on acceptance" is on (default), a binding order at the quoted terms is created right away.
  • Otherwise the customer lands in the normal checkout (confirm page). If the direct order fails (e.g. because a payment method needs input), the shop automatically falls back to the guided checkout.

Once the order exists, it is detected and linked to the quote: status → ordered, order stored.

Price and shipping-cost lock in the checkout

A quote is a package of terms, not just individual prices. So that the negotiated values survive the entire checkout (payment/shipping changes, page reloads, order placement), two cart processors kick in:

  • Position prices — the positions filled from the quote carry a marker with the negotiated price. On every cart calculation the unit price is set to the quoted price (or the matching tier price); taxes are recalculated correctly. Pure free-text positions are priced this way too.
  • Shipping costs — the shipping costs fixed in the quote override the calculated shipping costs of the delivery.

INFO

This lock only applies to carts that stem from a quote acceptance. Normal carts are unaffected.

B2B+ Suite für Shopware 6