Is Medusa a good fit for B2B ecommerce?
- Type
- Applies to
- Medusa v2.x
- Updated
Short answer
Yes, for teams that can write TypeScript. Medusa natively supports B2B building blocks: customer groups, price lists, tiered pricing, sales channels, draft orders and multi-currency regions. The official open-source B2B Starter adds companies, employees, spending limits, approvals and quotes. Punchout, credit limits and requisition lists need custom modules or integrations.
What B2B features Medusa has out of the box
Medusa's core Commerce Modules cover the B2B basics without extra code, as the B2B recipe describes. You configure them in the Medusa Admin or through the Admin API.
These features are enough for a wholesale portal where known customers log in and see their own prices.
What the Medusa B2B Starter adds
The Medusa B2B Starter is an open-source Medusa v2 application with a Next.js storefront. Its backend adds custom company, quote and approval modules, with API routes, workflows and admin extensions. Its features:
- Company management: create companies, invite employees, assign roles.
- Spending limits: per-employee limits with configurable reset frequencies.
- Approval workflows: require admin or sales manager approval before orders are placed.
- Quote management: customers and merchants negotiate quotes with messaging.
- Bulk add-to-cart: add many products to the cart at once.
Because the starter is ordinary Medusa code, you change its data models and rules directly. The quote management guide walks through how a quote module like this is built.
What B2B features need custom work in Medusa
Some B2B requirements are not in core Medusa or the B2B Starter. You build them with Medusa's Framework: custom modules for data, workflows for logic, API routes for endpoints, and admin widgets for UI.
- Punchout (cXML or OCI): a custom module and API routes that open a punchout session and return the cart to the buyer's procurement system.
- Credit limits and payment terms: a module that tracks each company's credit, plus a payment provider or workflow hook that checks it during checkout.
- Requisition lists and reorder lists: a module linked to customers and products, exposed through custom Store API routes.
- Account hierarchies beyond one level: an extended company model with parent and child accounts.
- ERP sync for prices, stock and invoices: an integration module following the ERP recipe.
This work is code, not configuration. Teams without TypeScript developers should weigh that against platforms that ship these features as settings.
When Medusa is a good B2B fit and when it is not
Medusa fits B2B when your buying process does not match a packaged B2B suite and you have developers to model it. Examples include custom approval chains, contract pricing pulled from an ERP, or a hybrid B2B and B2C store on one backend. You pay no GMV fee and own the code.
Medusa is a weaker fit when you need a long list of B2B features configured by business users on day one, with no development team. In that case a packaged B2B suite or Shopify B2B may be faster to launch, at the cost of flexibility later.
Common questions
Does Medusa have a B2B edition?
No. Medusa has no separate B2B edition or B2B license. B2B features come from core Commerce Modules plus the open-source B2B Starter, which adds company, quote and approval modules on top of a standard Medusa application.
Can Medusa show different prices to different business customers?
Yes. In Medusa, you put each business customer in a customer group and create a price list with that group as a condition. Prices can also have min_quantity and max_quantity for volume tiers.
Does Medusa support punchout catalogs like cXML or OCI?
Medusa has no built-in punchout support. You build it as a custom module with API routes that handle the punchout session and return the cart to the buyer's procurement system.
Can admins create orders on behalf of B2B buyers in Medusa?
Yes. The Draft Orders plugin, included in Medusa applications from v2.10.0, lets admin users create draft orders for customers in the Medusa Admin and convert them to regular orders.