MCPcopy Index your code
hub / github.com/vendurehq/vendure

github.com/vendurehq/vendure @v3.7.0

repository ↗ · DeepWiki ↗ · release v3.7.0 ↗ · Ask this repo → · + Follow
12,021 symbols 34,486 edges 2,798 files 1,161 documented · 10% updated todayv3.7.0 · 2026-07-01★ 8,224188 open issues
README

Vendure logo

Vendure

The open-source headless commerce platform.

Plugin-first, TypeScript end to end: a Node.js, NestJS, and GraphQL backend with a React and TanStack admin dashboard.

Documentation | Website

Vendure is released under the GPLv3 license. Follow @vendure_io Join our Discord PRs welcome.

What is Vendure

Vendure is an open-source headless commerce platform. Model your catalog, orders, pricing, promotions, and customers on one backend you can change at the core. Run D2C, B2B, marketplace, and omnichannel on it, so teams don't choose between a rigid suite and a DIY composable stack.

  • Model your business, no forks required: Extend or override any part of the system through stable plugin contracts and service overrides. Add custom entities, pricing logic, and workflows, and change core behaviour without patching it.
  • One backend, every channel: A single extensible core serves any frontend through a GraphQL API, across D2C, B2B, marketplace, and omnichannel. No stitching together separate commerce services.
  • One TypeScript stack: Node.js, NestJS, and GraphQL, with strong types across the stack and no proprietary query language. The introspectable GraphQL schema makes it straightforward to wire up LLM tool-calling, MCP servers, and agent frameworks.
  • Commerce building blocks from day one: Catalog, orders, customers, promotions, channels, tax, shipping, payments, and stock are built in. The same extension model lets you build the workflows specific to your business on top.
  • Proven in production: Used in production by enterprise teams and proven at high transaction volume. Stable plugin contracts give you safe extension points without forking.

Getting started

Scaffold a new project with the server, admin dashboard, and GraphQL API ready to run:

npx @vendure/create my-shop

Requires Node.js (20.19+ or 22.12+) and a SQL database (PostgreSQL, MySQL, MariaDB, or SQLite). Full walkthrough and configuration options are in the Getting Started guide.

Questions? Join our Discord for support and discussions.

What's in this repo

This is the Vendure source monorepo: the @vendure/core framework, the React and TanStack admin dashboard, the CLI, the official plugins, and an e2e testing harness. To build with Vendure, run npx @vendure/create (see Getting started) rather than cloning; clone this repo only to contribute to Vendure itself.

Where it runs

Vendure runs anywhere Node.js runs: self-hosted, Docker, Kubernetes, or any cloud. You own the deployment, the data, and the stack.

If you want git-push deploys and a managed runtime, Vendure Cloud is a fully managed PaaS with a modern CLI and agent-first DevOps workflows. Vendure Platform adds an optional enterprise capability layer (SSO, approval workflows, and B2B pricing) on the same open-source core.

Contribution

Contributions are welcome: bugs, features, or docs. Our Contribution Guide covers everything from setting up your development environment to submitting your first pull request.

Pick up a labelled issue as a good first contribution.

Releases

Patch releases ship regularly. Check our release notes to keep up to date.

License

Vendure is open source under the GPLv3 license. Building against the GraphQL API doesn't make your storefront or services subject to GPLv3, and a plugin license exception lets you release your own Vendure plugins under any license you choose (see the licensing FAQ). Commercial licensing for Vendure Platform is on our pricing page.

Professional services

Need help getting your build to production? Our team offers professional services: architecture review, implementation support, and launch readiness from the people who build Vendure.

Extension points exported contracts — how you extend this code

MetricCalculation (Interface)
(no doc) [9 implementers]
packages/admin-ui-plugin/src/config/metrics-strategies.ts
SearchStrategy (Interface)
(no doc) [6 implementers]
packages/core/src/plugin/default-search-plugin/search-strategy/search-strategy.ts
DeactivateAware (Interface)
(no doc) [7 implementers]
packages/admin-ui/src/lib/core/src/common/deactivate-aware.ts
MetricCalculation (Interface)
(no doc) [9 implementers]
packages/dashboard/plugin/config/metrics-strategies.ts
ImageTransformStrategy (Interface)
(no doc) [5 implementers]
packages/asset-server-plugin/src/config/image-transform-strategy.ts
TemplateLoader (Interface)
(no doc) [4 implementers]
packages/email-plugin/src/template-loader/template-loader.ts
TestDbInitializer (Interface)
(no doc) [3 implementers]
packages/testing/src/initializers/test-db-initializer.ts
Options (Interface)
(no doc)
packages/dev-server/load-testing/benchmarks.ts

Core symbols most depended-on inside this repo

query
called by 3046
packages/testing/src/simple-graphql-client.ts
filter
called by 815
packages/core/src/event-bus/event-bus.ts
get
called by 798
packages/core/src/config/system/cache-strategy.ts
push
called by 768
packages/core/src/common/async-queue.ts
getRepository
called by 702
packages/core/src/connection/transactional-connection.ts
assertSuccess
called by 620
packages/testing/src/error-result-guard.ts
error
called by 477
packages/core/src/config/logger/vendure-logger.ts
Input
called by 383
packages/dashboard/src/lib/components/ui/input.tsx

Shape

Method 5,352
Function 2,851
Class 2,842
Interface 837
Enum 139

Languages

TypeScript100%

Modules by API surface

packages/core/src/common/error/generated-graphql-admin-errors.ts142 symbols
packages/core/src/entity/custom-entity-fields.ts98 symbols
packages/core/src/common/error/generated-graphql-shop-errors.ts97 symbols
packages/core/src/service/services/order.service.ts77 symbols
packages/dashboard/src/lib/framework/document-introspection/include-only-selected-list-fields.ts49 symbols
packages/admin-ui/src/lib/core/src/data/providers/settings-data.service.ts49 symbols
packages/cli/src/commands/dev/dev.ts48 symbols
packages/admin-ui/src/lib/core/src/data/providers/product-data.service.ts47 symbols
packages/core/src/service/services/asset.service.ts40 symbols
packages/core/src/telemetry/collectors/plugin.collector.spec.ts38 symbols
packages/create/src/helpers.ts36 symbols
packages/core/src/service/services/product-variant.service.ts35 symbols

Dependencies from manifests, versioned

@angular-devkit/build-angular19.2.5 · 1×
@angular-eslint/eslint-plugin19.3.0 · 1×
@angular-eslint/eslint-plugin-template19.3.0 · 1×
@angular-eslint/schematics19.3.0 · 1×
@angular-eslint/template-parser19.3.0 · 1×
@angular/animations19.2.4 · 1×
@angular/cdk19.2.7 · 1×
@angular/cli19.2.5 · 1×
@angular/common19.2.4 · 1×
@angular/compiler19.2.4 · 1×
@angular/compiler-cli19.2.4 · 1×

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add vendure \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact