B2B quotes and RFQ: how quote-to-order works
- Type
- Applies to
- Medusa v2.x
- Updated
Short answer
In Medusa, B2B quotes work through a Quote module from the official B2B Starter and quote management guide. A customer requests a quote from the cart, the merchant edits prices and quantities on a draft order in Medusa Admin, and the customer accepts or rejects. Accepting converts the draft order into a regular order.
What RFQ and negotiable quotes mean in B2B ecommerce
A request for quote (RFQ) is a buyer asking a seller to price a specific set of products before buying. A negotiable quote is a quote whose prices or quantities change as buyer and seller respond to each other. Quote-to-order is the step where an accepted quote becomes an order without the buyer re-entering the cart.
Medusa does not ship quotes in its core commerce modules. The official Medusa B2B Starter includes a Quote module, and the quote management guide shows how to build the same flow step by step.
How the quote-to-order lifecycle works in Medusa
The Medusa quote flow builds on two native Order Module features: draft orders and order changes. An order change records edits to an order's items, such as price or quantity updates, before they are applied.
- Request. A logged-in customer requests a quote from their cart. The Copy to clipboard
createRequestForQuoteWorkflowcreates a draft order from the cart, begins an order edit on it, and creates a quote with status Copy to clipboardpending_merchant. - Counter-offer. The merchant opens the quote in Medusa Admin and edits item prices and quantities. The edits are staged on the order change, so the original request stays intact.
- Send or reject. The merchant sends the quote back to the customer (Copy to clipboard
pending_customer) or rejects it (Copy to clipboardmerchant_rejected). - Review. The customer previews the order with the staged changes, then accepts or rejects it (Copy to clipboard
customer_rejected). - Order. On acceptance, the workflow confirms the order change and converts the draft order into a regular order with status Copy to clipboard
pending.
In the B2B Starter, buyers and merchants can also exchange messages on a quote. A message can point to a specific line item.
Medusa quote statuses
B2B Starter vs the quote management guide
Both sources use the same Quote module design. Pick the starter for a full B2B storefront, or the guide to add quotes to an existing Medusa application.
How Medusa quotes compare with Adobe Commerce and OroCommerce
The comparison below uses Adobe's and Oro's own documentation.
When to use Medusa for quotes
Medusa's quote flow fits teams that want quote logic in their own code. You can add statuses, connect quotes to ERP pricing, or change who can send a quote by editing workflows.
When Medusa is not the right choice for quotes
Medusa's quote flow is a weaker fit if you need multi-round buyer edits, quote expiry, or quote approvals without writing code. Adobe Commerce and OroCommerce document those behaviors as configuration.
Common questions
Does Medusa have built-in quotes?
Medusa core has no Quote module. Quotes come from the Medusa B2B Starter or from the official quote management guide, both built on native draft orders and order changes.
Can guest customers request a quote in Medusa?
Not in the B2B Starter or the quote management guide. Both require an authenticated customer: the guide's routes are under /store/customers/me/quotes, and the starter's /store/quotes routes use customer authentication middleware. Guest RFQ is custom work.
Can Medusa quotes expire?
The Medusa quote model has no expiry status. You can add an expiry date to the Quote data model and a scheduled job that rejects old quotes.
Where is the code for Medusa's quote management?
The full code for the quote management guide is in the medusajs/examples repository under quotes-management. The B2B Starter repository contains the extended version with messages and a storefront.