Quote workflow from draft to order

This page follows one quote through the complete B2B process. Use it as the operating checklist for a new store, then use the linked pages for individual settings and administration screens.

Before the first quote

Confirm the following in the selected store view:

  • the customer group is allowed to use quotes;
  • a default status exists for each state used by the workflow;
  • customer and administrator transitions exist for submit, review, approval, rejection, acceptance, and order creation;
  • the quote item limit, expiration policy, price visibility, and customer counter-offer settings match the sales process;
  • shipping and payment restrictions are tested with the products used by the sales team;
  • notification templates, sender identities, and cron are working.

Administrators need the ACL resources for the actions they perform. A menu entry being visible does not grant service authorization. See Admin permissions.

Create a draft

Product page

An eligible customer selects Add to Quote on a product page. The storefront creates or reuses a draft and adds the product with its SKU, configured options, quantity, catalogue price, and any customer note accepted by the form. Configurable product data must be complete before the item can be added.

Cart

When cart conversion is enabled, the customer selects the request-a-quote action in the cart. The current cart lines are copied into a draft and the customer is sent to the quote flow. The minimum cart amount, eligibility, and whether the original cart is cleared are controlled by configuration. See Cart to quote.

New quote

The customer can also create an empty draft from My Quotes and add lines later. An empty draft can be saved, but it cannot be submitted or accepted. The configured maximum item count is checked when items are added and when quotes are merged.

Review and edit items

The quote editor keeps these values separate:

Value Meaning
Catalogue price The product price copied when the item was added.
Offered price The merchant's negotiated unit price. It becomes the effective line price.
Customer counter price A price proposed by the customer during negotiation.
Quantity The requested quantity. Totals are recalculated after a change.
Item note Context for the line, such as a specification or delivery request.

Customers can edit quantities, notes, and counter prices only when the current status and frontend settings allow it. Administrators can edit offered prices, quantities, notes, and commercial adjustments when their ACL and the quote state permit editing.

Removing an item recalculates the quote. Deleting the quote removes the whole request and its associated records, subject to permissions. Neither action is the same as changing the workflow status.

Addresses, shipping, and payment

Set the billing and shipping address before selecting a rate. A quote stores its own address snapshot, so editing it does not change the customer's normal address book. Guests keep the address on the token-protected quote.

The shipping method must be available for the quote's products, destination, store, and current configuration. If the destination or products change, get a new rate instead of relying on the old amount. Payment selection is validated against the store, country, currency, order total, and the B2B Quote payment restrictions.

For direct order creation, a complete address, valid shipping method for shippable products, and valid payment method are required. Add-to-cart acceptance can leave the final checkout selection to Magento, but B2B Quote restrictions still apply. See Address, shipping and payment.

Submit for review

The customer submits the quote from the storefront. Submission validates that the quote has at least one item, has a grand total greater than zero, is not past its expiration date, and has a customer transition from the current status to the submitted state. A required note must be supplied when the matching transition says so.

On success the status-change side effects run after the save commits. They can create a revision and send the configured notifications. If the transition is missing or the quote is incomplete, no submitted state is written.

Review and negotiate

An administrator opens the submitted quote, checks the item options and quantities, and sets an offered price where needed. The administrator can also adjust shipping, discounts, fees, and the expiration date. Each total should be checked after the commercial changes.

The customer counter-offer action writes the proposed price on the item and recalculates totals. The next status and whether the customer can negotiate again are determined by the configured transition and frontend settings. Keep the reason for a material price change in a visible message. Revisions provide the before-and-after snapshot; they do not replace the message thread.

See Price negotiation, Quote messaging, and Revision tracking.

Approve and accept

The administrator approves the final offer through an admin transition. An approval can trigger inventory reservation, workflow rules, a revision, and email notifications according to the selected configuration. Approval is not an order.

The customer accepts only when the current status has a customer transition to an accepted status and the quote is still valid. The store can use one of two acceptance modes:

Mode Result
Create order Magento creates an order from the quote inside a transaction.
Add to cart The accepted lines are added to the customer's cart for normal checkout.

If customer choice is enabled, the customer selects the mode at acceptance. For add-to-cart acceptance, the store can clear the existing cart first or keep its lines. Confirm that choice before the customer checks out.

Order conversion checks and rollback

Direct order creation loads the products again and validates product existence, enabled state, stock policy, current price policy, address, shipping, payment, expiration, and the system transition into the ordered state. It applies the offered price when the configured policy permits quoted prices. A policy can instead use the current catalogue price or block the conversion when the price changed.

The conversion is transactional. If a product is missing, stock is not available, a method is no longer valid, or another validation fails, the conversion does not leave a half-created order. When acceptance had changed the status first, the previous status is restored as well. Check the quote and order grid before retrying a request.

For a complete validation matrix see Cart and quote-to-order conversion.

Status and actor matrix

The fixed state describes the lifecycle. The store-scoped status label and transition configuration decide the exact buttons visible to each actor.

Operation Typical actor Required condition
Create or edit draft Customer or admin Quote is editable and actor owns the required ACL or quote.
Submit Customer Items, positive total, valid expiry, customer transition.
Review, offer, approve, reject Admin Admin transition, ACL, and any required note.
Counter-offer Customer Negotiation is enabled and the customer transition permits it.
Accept Customer or guest token holder Valid quote and customer or token transition to accepted.
Create order System after acceptance, or permitted admin action Ordered transition and all order validation checks pass.
Expire System Expiration date has passed and the expiry job runs.

Ordered, expired, and cancelled states are terminal in the base lifecycle. Custom labels map to an existing state; they do not create a new lifecycle state. See Quote statuses and Status transitions.

Guest quotes

Guest quotes use an access token rather than a customer account. The token holder can perform only the actions enabled for the quote's current status. Direct order creation also requires Magento guest checkout and a complete guest address. Never place a live token in a screenshot, support ticket, or client-side log. See Guest quotes.

After acceptance

Review the accepted quote, order or cart, and any related email and revision. For an order, compare item prices, tax, shipping, fees, customer identity, and payment. For a cart, confirm whether pre-existing lines were retained and complete checkout normally.

An approved quote can also become an agreement. An active agreement can start a new call-off draft with the agreed item prices. Creating that draft does not consume agreement quantity, so the fulfilment process must record consumption before treating the displayed balance as committed. See Agreements and call-offs.

When the flow stops

Use the quote status and revision history to locate the last successful step. Then check the matching condition instead of forcing a database status:

  • empty or zero-total quote: add a valid item and recalculate;
  • expired quote: set a new valid expiry only if the business process allows it;
  • missing action: inspect the source status, actor, store scope, and ACL;
  • stale shipping or payment: refresh rates and select an allowed method;
  • upload or message failure: check status restrictions and configured limits;
  • conversion failure: verify product, price, stock, address, shipping, payment, and whether an order or cart was already created.

Related operational checks are collected in Common issues.