Is Medusa a good fit for B2B ecommerce?

Type
Concept
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.

B2B needMedusa capability
Separate B2B catalogSales channels plus a publishable API key scoped to a B2B channel
Negotiated prices per accountCustomer groups with price lists conditioned on the group
Volume pricingPrice tiers with min_quantity and max_quantity (price rules)
Orders placed by sales repsDraft Orders plugin, included from Medusa v2.10.0
International buyersRegions with their own currency and payment providers, plus per-country tax regions
Multiple warehousesInventory and stock location modules

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.