Automotive Ecommerce

Built for modern automotive ecommerce
Flexible infrastructure for
selling cars, parts and services
Medusa is the open source ecommerce platform that helps automotive sellers
manage advanced product catalogs, streamline fitment and inventory, and
create connected customer experiences - from browsing to post-purchase.
Powering automotive leaders


The right toolbox for the automotive industry
Sell complex products without complexity
Medusa lets you manage product data, fitment logic, and pricing with ease - whether you're selling OEM parts, upgrades, or bundles. There's no per-order fee and no limits from legacy platforms.
- Manage large product catalogs
- Integrate with fitment databases easily
- No transaction fees
- Sell products with bill-of-materials
- ERP and inventory system integration
- With you from dealership to garage
Scale complex product data
Manage large catalogs with advanced configurations
Manage millions of SKUs, build product configurators, and create a seamless path from search to checkout. Medusa gives you the flexibility to sell everything from individual parts to kits with bill of materials to services.

Integrate with fitment databases
Ensure the right part, every time
Eliminate guesswork with fitment logic tailored for automotive ecommerce. Use Medusa’s flexible framework to integrate with TecDoc, DriveRightData, or your own internal systems to display only compatible products.

Margin-friendly pricing
Pay for infrastructure, not orders
Selling high-value or low-margin parts? Medusa never charges based on order volume. You only pay for what you use, making it the cost-effective choice for automotive ecommerce businesses of any size.

Inventory made easy
Sync inventory and manage complexity
Connect Medusa to your ERP or inventory management system to stay in sync across warehouses and sales channels. Out-of-the-box support for bundles, kits, and assemblies helps you handle even the most complex automotive SKUs.

Connected commerce
Create seamless automotive journeys
Medusa's headless architecture supports modern automotive ecommerce experiences—from online browsing to in-vehicle interactions and after-sales services. Empower a connected journey that builds trust and drives loyalty.

Cloud platform
Power your stack, your way
With Medusa Cloud, you get the freedom of open source and the reliability of modern cloud infrastructure. Build your ecommerce stack your way, integrate with any service you need, and launch new features fast.

Trusted by automotive leaders
Real-world examples
Medusa is the world’s most popular open-source commerce platform. Learn why leading automotive users opted for our flexibility.

Revving up digital sales in the UAE
A smarter car-buying journey, built for conversion

Multi-touchpoint purchasing journey
Personalizing the online experience for new car purchases

Multi-touchpoint purchasing journey
Personalizing the online experience for new car purchases

Multi-touchpoint purchasing journey
Personalizing the online experience for new car purchases
Framework for customizations
Faster time to market with our framework
Our developer-first framework makes it easy to build custom integrations and features: from data models and workflows to UI extensions and APIs.
No hacks, no workarounds - just clean, scalable customization.
store.medusajs.com
create-order-in-erp.ts
sync-order-to-erp.ts
A workflow step performs a query or action in a system. Steps can receive inputs from previous steps and return data to be used in subsequent steps. You can resolve services in your steps, allowing you to build business logic involving Medusa’s core commerce modules, third-party systems, or custom systems.
To connect multiple steps together you create a Workflow. Creating a Workflow is like writing any other function. Behind the scenes Medusa generates a representation of your workflow that enables automatic retries of steps if they fail.
If step retries don't succeed, Medusa will rollback previous steps. A rollback will call a step's compensation method, ensuring your data is kept consistent across systems.
You can trigger your workflows anywhere in Medusa. Use your workflows in Subscribers to start them in response to an event. Start them in response to requests with API Routes. Or have them run on a defined schedule with Scheduled Jobs.
src > workflows > steps > create-order-in-erp.ts
1
A workflow step performs a query or action in a system. Steps can receive inputs from previous steps and return data to be used in subsequent steps. You can resolve services in your steps, allowing you to build business logic involving Medusa’s core commerce modules, third-party systems, or custom systems.
create-order-in-erp.ts
sync-order-to-erp.ts
src > workflows > steps > create-order-in-erp.ts
123456789101112import { createStep, StepResponse } from "@medusajs/framework/workflows-sdk"export const createOrderInERP = createStep("create-order-in-erp"async (order: StepInput, { container }) => {const erpService = container.resolve("erp")const createdOrder = await erpService.createOrder(order)return new StepResponse(createdOrder)})
To connect multiple steps together you create a Workflow. Creating a Workflow is like writing any other function. Behind the scenes Medusa generates a representation of your workflow that enables automatic retries of steps if they fail.
create-order-in-erp.ts
sync-order-to-erp.ts
src > workflows > sync-order-to-erp.ts
1234567891011121314151617181920import { createWorkflow, WorkflowResponse } from "@medusajs/framework/workflows-sdk"import { createOrderInERP, transformOrder } from "./steps"export const syncOrderToERP = createWorkflow("sync-order-to-erp",(input: WorkflowInput, { container }) => {const medusaOrder = retrieveOrder(input.order_id)const createdOrder = when({ medusaOrder }, ({ medusaOrder }) => {return medusaOrder.status === "completed"}).then(() => {const preparedOrder = transformOrder(medusaOrder)return createOrderInERP(preparedOrder)})return new WorkflowResponse(createdOrder)})
If step retries don't succeed, Medusa will rollback previous steps. A rollback will call a step's compensation method, ensuring your data is kept consistent across systems.
create-order-in-erp.ts
sync-order-to-erp.ts
src > workflows > accept-quote.ts
123456789101112131415161718import { createStep, StepResponse } from "@medusajs/framework/workflows-sdk"export const createOrderInERP = createStep("create-order-in-erp"async (order: StepInput, { container }) => {const erpService = container.resolve("erp")const createdOrder = await erpService.createOrder(order)return new StepResponse(createdOrder, createdOrder)},// In the face of errors, we roll back and delete the orderasync (createdOrder, { container }) => {const erpService = container.resolve("erp")await erpService.deleteOrder(createdOrder)})
You can trigger your workflows anywhere in Medusa. Use your workflows in Subscribers to start them in response to an event. Start them in response to requests with API Routes. Or have them run on a defined schedule with Scheduled Jobs.
create-order-in-erp.ts
sync-order-to-erp.ts
src > subscribers > sync-order-to-erp.ts
123456789101112131415161718192021222324import {type SubscriberConfig,} from "@medusajs/framework"import syncOrderToErp from "../workflows/sync-order-to-erp"export default async function handleOrderPlaced({event: { data },container,}) {const orderService = container.resolve("order")const order = await orderService.retrieve(id)await syncOrderToErp(container).run({input: {order},})}export const config: SubscriberConfig = {event: "order.placed",}
Let’s talk
Ready to upgrade your automotive ecommerce?
Talk to our team and discover how Medusa helps you manage fitment, complex catalogs, and after-sales workflows — without the cost of traditional platforms.
