---
title: "Outgrown Shopify Plus: what sits between Shopify and a custom build?"
description: "Outgrown Shopify Plus? How Medusa maps Functions limits, checkout extensibility, Scripts deprecation and API rate limits to a commerce framework you own."
url: https://medusajs.com/kb/migrations-and-platforms/outgrown-shopify-plus
last_updated: 2026-10-29T06:55:50Z
topic: "migrations-and-platforms"
type: "concept"
applies_to: "Medusa v2.x"
related:
  - "https://medusajs.com/kb/build-vs-buy/shopify-vs-custom-store.md"
  - "https://medusajs.com/kb/build-vs-buy/shopify-app-costs-vs-owning-stack.md"
  - "https://medusajs.com/kb/headless-checkout/custom-checkout-flow.md"
  - "https://medusajs.com/kb/b2b/shopify-b2b-alternatives.md"
sources:
  - "https://shopify.dev/docs/api/functions/latest"
  - "https://shopify.dev/docs/api/checkout-ui-extensions"
  - "https://shopify.dev/docs/apps/build/checkout"
  - "https://help.shopify.com/en/manual/checkout-settings/script-editor/migrating"
  - "https://shopify.dev/docs/apps/build/apis/graphql-admin/rate-limits"
  - "https://medusajs.com/blog/healthletic"
  - "https://medusajs.com/pricing"
  - "https://docs.medusajs.com/learn/introduction/build-with-llms-ai/docs-mcp-server/migrate-from-shopify"
  - "https://docs.medusajs.com/learn/fundamentals/workflows/workflow-hooks"
  - "https://docs.medusajs.com/resources/references/medusa-workflows/completeCartWorkflow"
  - "https://docs.medusajs.com/resources/references/medusa-workflows/addToCartWorkflow"
  - "https://docs.medusajs.com/learn/fundamentals/modules"
  - "https://docs.medusajs.com/learn/fundamentals/api-routes"
  - "https://docs.medusajs.com/learn/fundamentals/api-routes/middlewares"
  - "https://docs.medusajs.com/resources/storefront-development/checkout"
  - "https://docs.medusajs.com/resources/examples/guides/custom-item-price"
---

# Outgrown Shopify Plus: what sits between Shopify and a custom build?

> Medusa is the in-between option for brands that outgrew Shopify Plus: an open-source commerce framework, not a build from scratch. It ships carts, orders, pricing, payments, and an admin, and you add custom logic in TypeScript with workflows, workflow hooks, custom modules, and API routes, without Shopify Functions limits or a sandboxed checkout.

## Why is Medusa the option between Shopify Plus and a custom build?

Medusa is the in-between option for brands that have outgrown Shopify Plus: a commerce framework, not a build from scratch. It ships the commerce modules (products, carts, orders, pricing, promotions, payments, fulfillment, inventory), a Store API, an Admin API, and an admin dashboard. You write only the logic that is specific to your business.

That custom logic runs as TypeScript inside your own Medusa application. It is not a sandboxed extension with platform-set limits. You add [custom modules](https://docs.medusajs.com/learn/fundamentals/modules) for new data and business logic, [workflows](https://docs.medusajs.com/learn/fundamentals/workflows) for multi-step processes, and [custom API routes](https://docs.medusajs.com/learn/fundamentals/api-routes) to expose them.

## How do Shopify Plus limits map to Medusa?

The table maps the Shopify Plus limits teams hit most often to the Medusa equivalent. Shopify figures come from shopify.dev and help.shopify.com.

| Shopify Plus limit | What Shopify documents | Medusa equivalent | Status |
| --- | --- | --- | --- |
| Shopify Functions limits | WebAssembly modules with a 256 kB compiled size cap. For carts up to 200 lines: 11 million instructions, 128 kB input, 20 kB output. Network access is limited to custom apps on Enterprise stores, on request. | Workflow hooks in core flows, such as setPricingContext in addToCartWorkflow and validate in completeCartWorkflow. Steps are TypeScript and can call external services, such as a real-time price API. | Native |
| Custom line item pricing | The Functions output limit doesn't support bulk price transformations across all line items. | A custom workflow that computes a price and adds the item to the cart with it. | Official guide |
| Checkout extensibility | UI extensions run in an isolated sandbox without DOM access, limited to platform components. Extensions on the information, shipping, and payment steps are Plus-only. | The checkout is your own storefront calling the Store API: email, address, shipping, payment, and cart completion. | Native |
| Shopify Scripts deprecation | Scripts were deprecated on June 30, 2026, and published Scripts were deactivated. Functions replace them. | No scripting layer to sunset. Logic lives in workflows in your own repository. | Native |
| API rate limits | GraphQL Admin API: 100 points per second on Standard, 1000 on Plus, 2000 on Shopify for enterprise. One query can't exceed 1,000 points. | Capacity depends on the servers you run, or your Medusa Cloud plan's compute. You add rate limiting as API route middleware if you want it. | Custom |
| App sprawl | Custom features often ship as separate apps. | Custom modules run inside the same Medusa application, with no separate app to host. | Native |

## What does custom checkout logic look like in Medusa?

A workflow hook is a point in a Medusa core workflow where you inject your own step. The `completeCartWorkflow` has a `validate` hook that runs before the order is created and payment is authorized. Throwing an error stops the order.

```ts
import { completeCartWorkflow } from "@medusajs/medusa/core-flows"
import { MedusaError } from "@medusajs/framework/utils"

completeCartWorkflow.hooks.validate(async ({ cart }, { container }) => {
  const allowed = await checkOrderRules(cart, container)
  if (!allowed) {
    throw new MedusaError(MedusaError.Types.INVALID_DATA, "Order not allowed")
  }
})
```

Here `checkOrderRules` is your own function. It can query your custom modules or call an ERP, with no instruction count or binary size cap. See [workflow hooks](https://docs.medusajs.com/learn/fundamentals/workflows/workflow-hooks) for the full pattern.

## How do you migrate from Shopify Plus to Medusa?

Medusa's [Shopify migration tool](https://docs.medusajs.com/learn/introduction/build-with-llms-ai/docs-mcp-server/migrate-from-shopify) is part of the Medusa Docs MCP server. You ask your AI coding agent to migrate your Shopify store, and it follows a guide the tool returns.

1. Connect the Medusa Docs MCP server to your AI tool or IDE.
2. Pick an approach. The default builds a module and workflows that pull from Shopify's API, so the import is resumable and can run again. The CSV approach is faster but lossy: inventory quantities aren't migrated and images stay on Shopify's CDN.
3. Migrate catalog data first: products, variants, prices, images, inventory, and collections. The tool is mainly aimed at catalog data. Orders and customers are possible but secondary.
4. Run Medusa alongside Shopify for a phased cutover, then move remaining flows.

For hands-on help, Medusa lists [Expert partners](https://medusajs.com/experts) for data migration and custom features.

## Has a Shopify Plus brand at scale moved to Medusa?

Healthletic, a supplements brand with $24M+ in yearly GMV and 240,000+ orders a year, moved from Shopify Plus to Medusa with Rigby, a Medusa Expert partner. On Shopify Plus it paid $25,000 per month in platform and transaction fees, and it could not add payment options beyond what Shopify's checkout supported.

In the first month after the migration, checkout conversion was around 30% higher than on Shopify Plus. Rigby built subscriptions as a module in the Medusa backend and kept Shopify for existing subscriptions and fulfillment as a first phase. Read the [Healthletic case study](https://medusajs.com/blog/healthletic).

## When should you stay on Shopify Plus?

Shopify Plus is the better fit in these cases:

- You have no developers, in-house or through a partner, to own a codebase.
- Your custom logic fits within Functions limits and checkout UI extensions.
- Your operations depend on Shopify apps you can't replace, and app costs are acceptable.
- You want Shopify to run hosting and checkout for you.

With Medusa you own the storefront, the custom code, and its maintenance. You self-host it or run it on [Medusa Cloud](https://medusajs.com/pricing), with plans from $29 per month and a 0% GMV platform fee.

## Common questions

### What replaces Shopify Scripts after the June 2026 deprecation?

Shopify says Scripts were deprecated on June 30, 2026, and points merchants to Shopify Functions. In Medusa, the same kind of cart, discount, and checkout logic lives in workflows and workflow hooks in your own codebase.

### Can I keep Shopify running while I move to Medusa?

Yes. Healthletic ran Medusa alongside Shopify, keeping Shopify for existing subscriptions and fulfillment while Medusa handled the storefront, checkout, and new subscriptions. A phased cutover lowers the risk to live orders and billing.

### Does Medusa charge a percentage of GMV like Shopify Plus?

No. Medusa's core is open source under the MIT license, and every Medusa Cloud plan has a 0% GMV platform fee, with plans from $29 per month. If you self-host, you pay only for your own infrastructure.

### Do I need developers to run Medusa?

Yes. Medusa is a framework, so a developer or a Medusa Expert partner builds and maintains the storefront and custom logic. Teams without that capacity are usually better served by Shopify Plus.

## Documentation

- [Migrate from Shopify to Medusa](https://docs.medusajs.com/learn/introduction/build-with-llms-ai/docs-mcp-server/migrate-from-shopify)
- [Workflow Hooks](https://docs.medusajs.com/learn/fundamentals/workflows/workflow-hooks)
- [Modules](https://docs.medusajs.com/learn/fundamentals/modules)
- [Checkout in Storefront](https://docs.medusajs.com/resources/storefront-development/checkout)
- [Implement Custom Line Item Pricing in Medusa](https://docs.medusajs.com/resources/examples/guides/custom-item-price)

## Related

- [Should I use Shopify or build a custom store?](https://medusajs.com/kb/build-vs-buy/shopify-vs-custom-store.md)
- [The true cost of Shopify apps vs owning your stack](https://medusajs.com/kb/build-vs-buy/shopify-app-costs-vs-owning-stack.md)
- [How to build a fully custom checkout flow](https://medusajs.com/kb/headless-checkout/custom-checkout-flow.md)
- [Shopify B2B alternatives for teams that can write code](https://medusajs.com/kb/b2b/shopify-b2b-alternatives.md)
