Medusa is an outstanding commerce core, and it still ships no turnkey procurement. Hold both halves of that sentence in one breath and you have understood the architecture — and spared yourself an expensive disappointment mid-project.
The confusion has a name: the Medusa b2b-starter. It looks like a B2B product, it lists company management, spending limits, quotes and approval workflows, and that is exactly why tender documents end up saying "Medusa does B2B procurement." It does — in the sense of "you can build it on top." Not in the sense of "it is built in and maintained for you." That distinction is not pedantry. It decides the effort, the maintenance load, and whether your business case holds.
What Medusa procurement actually means — and what the b2b-starter delivers
Let's be precise, because sales conversations happily treat "B2B" and "procurement" as synonyms. B2B means corporate customers, volume pricing, customer groups, quotes. Procurement means the formalised buying process on the purchaser's side — requisition, approval chain, an order booked against a cost centre and a budget, reconciliation with the ERP. One is a sales model, the other a regulated process. Medusa covers the first well; the second, not at all out of the box.
The active Medusa b2b-starter — now at github.com/medusajs/b2b-starter, with the old b2b-starter-medusa repo archived — gives you a solid baseline. Company and employee management (create companies, invite staff, assign roles), per-employee spending limits with configurable reset frequencies, approval workflows at company and merchant level before the order, quote management with negotiation messaging, after-the-fact order edits, bulk add-to-cart and promotions. On top of that, the full commerce base: products, collections, cart, checkout, order history. That is more than many expect, and it is a good starting point.
The decisive point is stated in the repo itself: the starter is "designed to be customized and extended," MIT-licensed, almost entirely TypeScript. Translated: forkable reference code that you maintain yourself. Not a feature flag in a SaaS console, not a module Medusa keeps current for you. When a security fix lands tomorrow, or you want to move to a new Medusa version, that is your merge, your regression, your test. I've written elsewhere about who Medusa suits as a platform in the first place, in my piece on headless commerce with Medusa and who it's for.
Why the procurement logic doesn't live in the core
You might assume the B2B building blocks come from the Medusa core. They don't. The core contains neither a company nor a quote nor an approval module. The official Commerce Modules documentation lists as core modules Cart, Customer, Order, Payment, Pricing, Product, Promotion, Region, Tax and more — but nothing that resembles a company hierarchy or an approval chain (docs.medusajs.com/resources/commerce-modules).
The B2B foundation in the core is deliberately leaner. The Customer module supports B2B accounts and customer groups with special pricing; Pricing/price lists and Promotions are core as well. Everything beyond that — company, quote, approval — the b2b-starter implements as its own custom modules in the starter code. Medusa documents even quote management only as a how-to guide ("Implement Quote Management in Medusa"), a reference implementation, not a core feature.
This is not carelessness; it follows from Medusa's architecture. A module is an isolated, reusable package for one domain; module links connect data models across module boundaries without breaking that isolation; workflows orchestrate multi-step processes with built-in rollback. That toolkit exists precisely so you can dock domains like procurement on cleanly — not to prescribe them for you. If you want to place Medusa as a whole, the overview lives on our Medusa pillar page.
Punchout, OCI, cost centres: the real procurement gap
Now the uncomfortable part. The b2b-starter contains no turnkey enterprise-procurement functions. No punchout, no cXML, no OCI, no requisition-to-PO, no cost centres, no real ERP budgets, no net terms with purchase-on-account invoicing, no ERP order reconciliation. These terms are demonstrably absent from the feature list. What the starter delivers is simple company approvals and per-employee spending limits — not multi-step approval chains with cost-centre and budget logic, and not the hook into an external eProcurement system.
Why does that matter? Because real enterprise procurement doesn't primarily happen in your shop at all. The buyer sits in their eProcurement or ERP system — Ariba, Coupa, Jaggaer, SAP — and "punches out" from there live into your supplier shop, sees their contract-specific prices and stock, fills a cart and sends it back. The requisition, the approval and the actual purchase order all run in the buyer's system, not on your side (tradecentric.com). For that, your shop has to speak two protocols server-side: cXML (created by Ariba in 1999, now with SAP, dominant in North America) and OCI (Open Catalog Interface, originally SAP, the de facto standard for ERP-driven procurement in the DACH region).
That is the heart of the punchout-OCI topic: an enterprise-grade catalogue implements both protocols, and Medusa brings neither. Then there is the payment side. Medusa ships only a manual "system" payment provider — a placeholder for bank transfer or invoice with no settlement logic. Medusa names net terms with ERP invoicing explicitly as an example of a custom payment provider you build yourself via AbstractPaymentProvider. None of this is hidden or undocumented. Medusa positions these enterprise capabilities openly as a build-it-yourself toolkit. You just have to read the docs before you plan the roadmap.
What the build costs — and when it pays off
Let's count honestly, because "open source" does not mean "free." What's free is the MIT software, not the operation and not the development. A production stack requires PostgreSQL and Redis, runs in two modes — server for API/admin, worker for background jobs — and wants at least 2 GB of RAM and Node 20+. Self-hosted on Hetzner, GDPR-compliant in Germany, that is feasible at entry level for €20–50/month, and highly available with a separate database more like €150–400/month. These running costs tend to fall over time — unlike SaaS, where transaction fees grow with your revenue. (Figures as of mid-2026, verify against current pricing.)
The heavy item isn't the hosting; it's the procurement layer itself. A clean first implementation of a self-hosted Medusa stack runs a one-off €5,000–20,000; the punchout/OCI/ERP layer sits on top and is the real engineering work. Over three years, a mid-market Medusa application lands roughly at a €40,000–80,000 total cost of ownership — without the industry-specific procurement logic, which weighs in heavily depending on your ERP landscape. These numbers are experience-based estimates, not a price list; the exact figure hangs on your integration depth. If you want to run the full sum against SaaS, the method is in our comparison Medusa vs Shopify Plus.
So the question isn't "expensive or cheap," it's make-or-buy. With the build you buy control over the data model, the approval logic and the ERP integration — and the operational responsibility along with it. For a shop whose downtime costs revenue directly, that is a real vendor-risk and resilience trade-off, not a gut feeling.
The uncomfortable point: not everyone needs this layer
Now the thesis that complicates my own argument. The b2b-starter creates the impression of "B2B ready," and whoever writes it into the project plan as a finished product systematically underestimates the effort and the maintenance. That is one trap. The other is its mirror image: not every company needs a bespoke procurement layer at all.
If your procurement processes follow the market norm — standardised and regulated, classic approval stages, common punchout hooks, net-30 purchase-on-account, no special cases — then SAP Ariba, commercetools B2B or Shopify B2B simply give you more out of the box. Shopify has recently opened its B2B offering beyond the Plus tier: company profiles, net terms, volume pricing and multiple catalogues are no longer reserved exclusively for Plus (as of mid-2026, verify). If you only need the standard, with Medusa you pay for a build you didn't need — and then carry its maintenance.
That is not an argument against Medusa. It's an argument for an honest requirements analysis before the tool choice. The break runs along a single line: does your procurement logic deviate from the standard? Do you have several catalogue segments, customer-specific approval chains, an ERP landscape that no standard suite maps cleanly, or regulatory demands on data ownership? Then the replaceable core turns from a cost line into an advantage. It's at exactly that boundary that the larger question is settled too — whether Medusa can replace your SAP Commerce.
What I tell decision-makers
Treat the missing procurement turnkey-ness not as a bug but as a design decision — and check whether that decision matches yours. The Medusa core is excellent as a D2C/B2C commerce foundation, and the b2b-starter gives you an honest head start on company management, spending limits, quotes and simple approval workflows. But write "punchout," "OCI," "cost centres" or "net terms" into a requirement, and you are planning a build — with budget, timeline and a team that commands PostgreSQL, Redis, Node and the Medusa module world.
The decision is ultimately not technical but strategic: do you want to subordinate your procurement logic to a vendor's standard and go live fast in return — or is that logic exactly your differentiator, the one that tolerates no vendor lock-in? For the first case, the suites exist. For the second, Medusa is the right core, because you build the procurement layer that fits your operating model instead of bending your model to a suite.
That layer — punchout/OCI integration, cost-centre and budget logic, ERP reconciliation, net-terms invoicing on a clean Medusa core — is what we build at happycoding. Not because Medusa is "missing" something, but because it is the core you dock exactly that onto. Understand this and you aren't buying a half-finished product; you're buying a foundation with a clear edge to build against.
