Shopify Plus cost vs self-hosted Magento Open Source

Shopify Plus bundles hosting, uptime and platform upkeep into a subscription, while self-hosted Magento Open Source moves those costs to your team or partner. This page shows how to compare them over several years with your own numbers.

On this page

Does self-hosted Magento Open Source cost less than Shopify Plus over several years?

Magento Open Source has no licence fee for the core code, but that does not mean it costs less than Shopify Plus over several years. The source files are licensed under the Open Software License 3.0 (OSL-3.0), so the software itself is free to use. What you pay instead is everything Shopify Plus bundles: hosting, the content delivery network, patching, payment and checkout compliance, app functionality and the people who run it. Before any comparison, pull the Shopify Plus subscription, app subscriptions, and third-party payment processing fees from your own contract and recent invoices. Those figures, not list prices or estimates, are the baseline for the comparison. Ask your Shopify account team to confirm whether any of them change at your current gross sales level.

The recurring costs on the Magento side are the ones to model. Each 2.4.x release has three years of standard support from general availability under Adobe's lifecycle policy, so you must plan upgrades on that cadence. The 2.4.9 system requirements list PHP 8.5, MySQL 8.4 or MariaDB, OpenSearch 3, Redis or Valkey 9, RabbitMQ 4.3 and nginx 1.30, and Adobe supports only the listed combinations. Every one of those services needs hosting capacity, monitoring and a patch owner. Ask your hosting partner or internal team to price the hosting, CDN and on-call coverage for a year, and to confirm which Magento extensions replace your current Shopify apps, since each extension may carry its own licence and upkeep.

Shopify states 99.99% uptime on average for Shopify Plus, and that figure has no equivalent on a self-hosted store unless you build and pay for it. Treat uptime as a cost line: redundant hosting, tested backups, and PCI scope for the checkout environment all move to your side. Set a written availability target, then compare the cost of meeting it with the Shopify Plus terms you already have. A fair comparison counts the Magento build and migration, ongoing engineering, and security testing as recurring costs, not one-time projects. The result is only as reliable as the inputs you can document from your own contract.

Which cost components move when you self-host Magento Open Source

This table lists each cost component of leaving Shopify Plus for self-hosted Magento Open Source, who gets paid for it, and whether it is one-time or recurring. Magento Open Source has no license fee for the core code, so most of the difference sits in hosting, build, extensions, PCI scope and ongoing maintenance, which you should price from your own written scope.

Cost componentWho is paidOne-time or recurringWhat drives it
Subscription or licenseShopify (Plus plan) or no fee for Magento Open Source core codeRecurring for Shopify Plus; none for Open Source coreAdobe Commerce is the paid edition, so confirm whether you need its features before assuming zero license cost
App and extension feesShopify app developers, or Magento extension vendors and agenciesRecurring for most paid apps; one-time or recurring for extensionsNumber of features you rebuild as extensions and whether each vendor charges annually
Third-party payment feesPayment gateways and acquirersRecurring, per transactionGateway choice and contract terms, which stay largely the same whichever platform you run
Hosting and CDNYour cloud provider, CDN vendor and any managed hosting partnerRecurringTraffic peaks, PHP and search services (OpenSearch, Redis or Valkey, RabbitMQ), and full-page caching with Varnish on self-managed installs
Build and migrationDeployOpen or another implementation partner, or your in-house teamOne-timeCatalog size, custom checkout logic, theme rebuild, and data mapping from Shopify CSV exports and the Admin API
Support and upgradesYour in-house engineers or a retained partnerRecurringAdobe's three-year standard support window per 2.4.x release, so plan a regular upgrade cycle and test each one
Security patchingYour engineers or a retained partner; Shopify covers this on PlusRecurringAdobe releases security patches at least annually per supported line, and you must apply them to your own stack
PCI scopeYour QSA or assessor, and your hosting and payment providersRecurring assessment effortWhether card data touches your servers; hosted payment fields reduce scope, so confirm the design with your assessor
Internal skillsYour staff or hires for PHP, Magento, DevOps and securityRecurring salaries or retainersTeam size, in-house knowledge of Magento, and how much you outsource operations

What pushes the Magento total cost up or down

Self-hosted Magento costs move with a small set of decisions made at the start and repeated at every upgrade. The cards below tie each driver to the cost line it moves, so you can see which assumptions in a quote or internal estimate carry the most weight.

Catalog size and order volume

Catalog depth and order volume set the size of the database, search index and cache layers you must run and monitor. A large catalog with many configurable products and customer-specific pricing raises the hosting bill and the load on the search service, and it lengthens reindexing after imports. Ask any partner to size the environment from your real SKU count, variant count and peak order rate, and to show the assumptions behind the hosting line.

Extensions and custom modules

Every Shopify app you replace becomes either a third-party extension you license and patch, or a custom module you build and maintain. Extension fees recur, while custom modules add one-time build cost and a permanent maintenance line. Inventory each Shopify app against its Magento equivalent, and mark which features need custom code before you request a quote.

Availability and traffic peaks

Required uptime and seasonal peaks decide how much redundancy you pay for. Shopify Plus states 99.99% uptime on average, and a self-hosted store must meet an equivalent target with your own load balancing, database replicas, caching and failover. Ask for the peak order rate you need to survive, the failover design, and the monitoring and on-call coverage that come with it.

Edition choice

Magento Open Source is free to download under OSL 3.0, but Adobe positions Adobe Commerce as its paid full-featured edition with cloud hosting and AI merchandising. Choosing Adobe Commerce adds license fees that recur each year, and it can shift hosting toward Adobe's cloud. Confirm which features your business requires, and whether each one is available in Open Source before you compare totals.

In-house skills versus partner hours

Build and run effort depends on whether your team already operates PHP, Magento, search and cache services, or whether you buy that time from a partner. Partner hours are a one-time build cost plus recurring retainer or support costs, while in-house staff are a recurring salary cost. Ask each bidder to split the quote into build, migration, hosting operations and support, and to name the roles and skills involved.

Upgrade cadence tied to support windows

Adobe gives each 2.4.x release three years of standard support from general availability, and security patches ship at least annually for supported lines. Staying on a release near its end of regular support forces an upgrade under time pressure, which costs more in testing and extension compatibility. Plan one upgrade budget per cycle, and confirm the end-of-support date for the release you deploy, since end of regular support for 2.4.9 is May 31, 2029.

How hosting, PCI scope and security patching change the bill

On Shopify Plus, the subscription covers the hosted platform, and Shopify states 99.99% uptime on average, so the operating stack, its patching and its availability sit with Shopify. Self-hosting Magento Open Source moves all of that onto your team or partner. The bill therefore changes from a platform fee to the cost of running a multi-service stack. Adobe's 2.4.9 system requirements list PHP 8.5, MySQL 8.4 or MariaDB 12.3 (recommended) or 11.8, OpenSearch 3, Redis or Valkey 9, RabbitMQ 4.3, Composer 2.10 and nginx 1.30 on Linux x86-64. The 2.4.8-p5 requirements list PHP 8.4 or 8.3, MySQL 8.4 or MariaDB 11.4 or 11.8, OpenSearch 3, Redis or Valkey 8.1, RabbitMQ 4.3, Composer 2.10, nginx 1.30 and Varnish 8. Each of these needs hosting, monitoring, backups and an upgrade path, and each recurs every year you run the store.

Adobe supports only the listed combinations, so a version mismatch in one component can put you outside support even if the store appears to run. Before you commit to a version line, confirm which release you will run, its end of regular support date in Adobe's lifecycle policy, and whether your extensions and theme are certified for it. Varnish is the full-page cache for self-managed installations, while cloud-hosted Adobe Commerce uses Fastly, so a self-hosted quote should include Varnish configuration, tuning and cache-purge testing. Content Security Policy headers are supported from 2.3.5, and from 2.4.7 CSP runs in restrict mode by default on storefront and admin payment pages. Any third-party script that your payment or analytics tags load must be listed and tested before go-live, or checkout can break.

PCI scope is not a fixed property of Magento. It depends on how the checkout collects and transmits card data: whether a hosted payment page, iframe or tokenized gateway keeps card data off your servers, or whether your code touches it. Your self-hosted environment, its network segmentation, admin access and patch process all count toward the assessment. Ask your Qualified Security Assessor to confirm the scope in writing once the architecture is drawn, rather than assuming the payment provider's attestation covers everything. Patching is a recurring responsibility here: Adobe states that security patches ship at least annually for all supported lines, and the rest of the stack, including the operating system, is yours to patch on your own schedule.

How to build the comparison with your own numbers

This sequence turns vague cost claims into a like-for-like model of your current Shopify Plus spend and a self-hosted Magento Open Source alternative, so each figure traces to an invoice or a written quote. Work through it in order, because later steps depend on the scope fixed by earlier ones.

  1. Collect current Shopify Plus invoices and fees

    Finance or the store owner gathers the last 12 months of Shopify invoices, including the Plus subscription, every app subscription, and all third-party payment gateway and transaction fees that sit outside Shopify's invoice. Split each line into recurring items (monthly plan, app subscriptions, gateway fees that scale with orders) and one-time items (theme work, past migrations). Done when every recurring line has a source document and a monthly or annual value you can point to. Ask your Shopify account contact to confirm which add-ons and usage-based charges apply to your plan, since these vary by contract.

  2. Inventory every Magento component and tier

    Your technical lead lists each Magento Open Source component the store would run: web and PHP application servers, MySQL or MariaDB, OpenSearch for catalog search, Redis or Valkey for cache and sessions, RabbitMQ for queues, the full-page cache layer, a CDN, object storage for media, backups, staging and monitoring. For each one, record the environment tiers (production, staging, development), the sizing you expect at peak traffic, and whether it runs in your cloud account or in a data center. Adobe's system requirements for the version you plan to run define which combinations are supported, so note the versions listed there. Done when every component has an owner, a tier and a line in a shared sheet.

  3. Request quotes against a written scope

    Send the same written scope to each implementation partner and to your internal team's estimate. The scope should cover the catalog and data migration from your current export, theme or storefront build, custom checkout and payment integration, extension selection and configuration, URL redirects, hardening, and testing. Ask for a fixed-price or clearly capped quote per deliverable, and for each quote to state what is excluded. Done when you hold at least two quotes that list the same deliverables and the same assumptions about catalog size and integrations.

  4. Price extensions and third-party modules

    Build a list of the Shopify apps you use today and map each to a Magento extension, a custom module or a feature already in core. For each extension, record the license model (one-time, annual, per store or per environment), the support terms and the compatibility commitment for the Magento version you will run. Check that each extension lists support for the Magento and PHP versions in your plan. Done when every app has a matching extension or a custom build item in the scope, with a recurring cost where one applies.

  5. Add PCI scope, patching and support costs

    Security and engineering leads add the recurring work that moves to you once you self-host: Magento and PHP upgrades, the Adobe security patch cadence, extension updates, operating system patching, vulnerability scanning, a PCI DSS assessment of the systems that handle card data, and the on-call or retainer support you choose. Shopify's uptime statement is an average across its platform, so note what availability target you will commit to yourself. Ask each partner to quote a retainer for patching and support separately from the build. Done when every recurring security and operations line has an owner and an annual figure taken from a quote or an internal estimate.

  6. Model three to five years of total cost

    Build one spreadsheet with a row for each cost from the previous steps, separated into one-time costs (build, migration, initial hardening) and recurring costs (Shopify subscription and apps, or hosting, CDN, licenses, extensions, patching and support). Project each recurring line across three to five years, and include the Magento upgrade cycle in the plan. Note the Adobe support windows for each release line so the model shows when a version will need replacing. Done when the model shows cumulative cost by year for both options, and every cell links to an invoice, a quote or a labeled assumption.

  7. Run sensitivity tests on volume and extensions

    Finance and product owners create three scenarios in the model: current order volume, a growth case and a decline case. For each scenario, change order volume, the number of extensions, and the number of custom modules, then record how hosting, CDN, search, gateway fees and support move. Label any hypothetical growth assumption as illustrative in the model. Done when you can state which input moves the total most for each option and at what point the self-hosted option stops being cheaper, if it does in your case.

  8. Confirm assumptions with vendors and partners

    Send the finished model's assumptions back to Shopify, Adobe or your Adobe partner, and to each implementation partner, and ask each to confirm the figures that apply to them. Ask whether the quotes cover the same scope, the same environments and the same exclusions. Record any figure that a vendor will not confirm as an open assumption. Done when each assumption is marked as confirmed, quoted or open, and the decision paper can show the source for every number.

What the one-time migration and build work involves

The one-time work starts with exports, and the first risk is images. Shopify's product CSV does not include product images, so the original store must stay live until a new store has imported images from their public URLs, as the Shopify Help Center explains. Plan a cutover window that keeps the Shopify storefront running while images, variants and metafields are mapped into Magento. Customer exports are a separate limit: the customer CSV is capped at 15 MB, so a large customer base will need to be split into several files. Confirm with your Shopify admin whether metafields and full order history need the Admin API rather than CSV, because that changes how much scripting your implementation partner must write.

Rebuilding apps is where the cost usually moves. Each Shopify app that handles reviews, subscriptions, B2B pricing, shipping rules or loyalty has to be replaced by a Magento Open Source extension, a custom module or a removed feature. Inventory every installed app and every Shopify Function or script in use, then record for each one whether the replacement is an existing extension, custom development or a decision to drop the feature. URL redirects also need a written map from old Shopify paths to new Magento routes, tested before launch so organic search traffic and bookmarked product pages keep resolving. Checkout and payment setup must be rebuilt against your own payment gateways, with the PCI responsibilities described elsewhere on this page.

Testing and the size of the quote depend mainly on catalog complexity and the number of Shopify apps in use. A catalog with many variants, bundled products or custom attributes, or a store with a long app list, takes more mapping, more module work and more regression testing than a simple catalog. Ask any implementation partner for a fixed-scope quote that lists each app replacement, each data export and import, the redirect map, the payment and checkout work, and the test plan with its exit criteria. Ask who signs off on the cutover and who owns the rollback if images or orders fail to import. Get the scope and deliverables in writing before committing, so the one-time figure is tied to a defined list rather than an estimate.

Costs teams forget on each side

Subscription prices are only part of the comparison. Costs on the Shopify Plus side tend to build up through apps and checkout work, while costs on the self-hosted Magento side tend to hide in environments, testing and staffing. Each card below marks whether the cost is one-time or recurring so you can ask for both in any quote.

App creep on Shopify Plus

Each Shopify app carries its own subscription, usually billed monthly, and many apps stack up over the years as teams add reviews, search, loyalty and B2B tools. This is a recurring cost that rarely appears in the platform fee. Pull a full list of active apps and their billing lines, then compare that total against the extensions you would need to build or license on Magento Open Source.

Plus add-ons and contract scope

Some capabilities sit behind Shopify Plus plan terms or paid add-ons rather than in the base subscription. Ask the vendor which features, support tiers and checkout options are included in your contract and which are billed separately. Treat these as recurring lines in a multi-year model, and check whether they rise as your order volume or store count grows.

Checkout extensibility work

Checkout customization on Shopify Plus runs through its supported extension model, and changes to checkout logic often need developer time each time the platform changes. On Magento, the equivalent work sits in your own code and in the payment and checkout modules you maintain. Budget for one-time rebuild work and recurring upkeep, and ask any partner to estimate both separately.

Payment gateway fees

Card processing fees are charged by your payment provider, and some platforms add a transaction fee when you use a third-party gateway instead of the platform's own payment option. These fees scale with sales volume and are recurring for the life of the store. On a self-hosted stack you also pick and contract the gateway yourself, so compare the rate card, chargeback terms and any fee for using a non-native gateway.

Staging environments and load testing

A self-hosted Magento store needs a staging copy that matches production in PHP, database, search, cache and queue versions, so releases and extension updates can be tested before they go live. Staging and test infrastructure are recurring hosting costs, and load testing before peak trading is a periodic effort you schedule each year. Confirm the required versions against Adobe's system requirements for your chosen release line.

Backup and restore drills

On Shopify the platform keeps the store data for you, but on self-hosted Magento you own the database, media files and search indexes. Backups are recurring storage and tooling costs, and restore drills are a recurring effort that proves the backups actually work. Ask your hosting or implementation partner how long restores take for a full store, and who signs off on the result.

Extension license renewals

Many Magento extensions are sold with annual license and support renewals, and some vendors price upgrades per Magento release line. Each extension you keep adds a recurring renewal and a compatibility check every time core or dependencies move. Keep a register of every extension with its license term, renewal date and supported versions before you commit to a migration plan.

Developer turnover and on-call coverage

A self-hosted store needs people who know Magento well enough to patch it, respond to incidents at night and handle peak-season failures. Hiring, onboarding and retaining those developers is a recurring cost that is easy to underestimate, and on-call rotations add cost when the team is small. Ask any partner which support hours and response targets are written into the scope and what they cover after go-live.

Questions buyers ask before comparing costs

How much effort does self-hosting Magento Open Source take?

Self-hosting Magento Open Source is a continuing operational responsibility, not a one-time install. You take on the server stack, caching, search, queues, upgrades, security patches and backups that a hosted platform handles for you. Adobe's system requirements for 2.4.9 list PHP 8.5, MySQL 8.4 or MariaDB 12.3 (recommended) or 11.8, OpenSearch 3, Redis or Valkey 9, RabbitMQ 4.3, Composer 2.10 and nginx 1.30 on Linux x86-64, and Adobe supports only the listed combinations. Each of those components needs its own patching and monitoring plan. Confirm the effort with your implementation partner against your catalog size, traffic and integrations, in writing, before you compare it with your current subscription.

Can our in-house team run a self-hosted Magento store?

Often yes, but only if the team already covers PHP, Linux, database operations, search and caching, and secure release management. Most stores also need front-end development for the theme and checkout, plus someone who owns the extension list and its upgrades. Ask yourself whether you can staff on-call coverage for a commerce outage, because the platform will not restart itself. A common approach is to keep the business owners and merchandisers in-house and buy build, hardening and ongoing support from a partner under a written scope. Confirm the skills gap in a short internal review before you decide.

How long does a migration from Shopify Plus take, and what drives it?

Duration depends on the work that is in scope, and no supplied figure sets a fixed number of weeks. The main drivers are catalog size, how many product images must be re-imported from public URLs, the number of Shopify apps you need to rebuild as Magento extensions or custom code, checkout and payment setup, URL redirects for existing SEO, and the volume of historic orders and customers you carry over. Shopify's export tools cap customer CSVs at 15 MB, so large customer bases need a split export plan. Ask for a timeline that lists each of these items separately rather than one total.

What does the work need from our team during a migration?

Your team supplies decisions and access, and the partner supplies most of the build. Expect to name a business owner for the catalog, pricing and promotions, provide payment processor and tax settings, approve checkout flows, and review redirect maps and test results. Shopify advises keeping the original store live until the new store has imported images from their public URLs, so plan a period when both stores run. Ask the partner to list your time commitments in the scope document so you can staff them before work starts.

Is Magento Open Source free to use?

The source code is free to use under the Open Software License 3.0 (OSL-3.0), and the distribution also includes AFL 3.0. Free licensing does not mean zero cost, because you still pay for hosting, CDN, build work, extensions, security operations and support. Adobe positions Adobe Commerce, with cloud hosting and AI merchandising, as its paid full-featured edition, so check which features your Shopify Plus plan provides that you would need to replace or buy. Ask your legal team to confirm the licensing terms for any extensions you plan to use.

How do Adobe's support windows affect our upgrade budget?

Each 2.4.x release gets three years of standard support from general availability, so the version you choose sets your upgrade schedule. Adobe's lifecycle policy lists end of regular support on August 11, 2026 for 2.4.6, May 31, 2027 for 2.4.7, May 31, 2028 for 2.4.8 and May 31, 2029 for 2.4.9. Adobe's release schedule says a full patch for the 2.4.x LTS line ships annually in May, and security patches ship at least annually for all supported lines. Budget for at least one planned upgrade per support window, including testing of extensions and the theme, and confirm the exact dates with Adobe before you sign.

What should we ask for in a quote for self-hosted Magento?

Ask for a written scope that separates one-time costs from recurring ones. One-time items include discovery, data migration, theme and checkout build, extension setup, redirects, testing and go-live support. Recurring items include hosting, CDN, monitoring, backups, patching, Adobe-aligned upgrades, extension maintenance and on-call support. Ask which PCI DSS responsibilities move to your team, how the scope handles the Content Security Policy changes Adobe documents for 2.4.7, and what happens if a version reaches end of support during the contract. DeployOpen provides fixed-scope engagements with scope, deliverables and timelines agreed in writing before work starts, and ongoing support is available as a retainer.

When self-hosting Magento makes financial sense and when it does not

Self-hosting Magento Open Source tends to make financial sense when the merchant already has in-house platform engineers, a catalog and checkout that change slowly, and a clear need for control, such as keeping customer data in a specific region or on infrastructure the merchant selects. In that case the subscription fee that Shopify Plus charges is traded for costs the merchant carries directly: hosting, CDN, a PHP and search stack, security patching and extension licences. The answer depends on the merchant's own numbers, and this page does not imply any cost figure beyond the researched facts. Ask each vendor and partner to price the same three to five year scope, with the same catalog size, order volume and integrations, before comparing totals.

Shopify Plus tends to fit better when the merchant wants hosted uptime and a managed app ecosystem with few internal engineers. Shopify states 99.99% uptime on average for Shopify Plus, and the platform carries hosting, upgrades and most checkout maintenance. Magento leaves those duties with the merchant or a partner. Adobe's lifecycle policy gives each 2.4.x release three years of standard support, and the 2.4.9 system requirements list specific PHP, MySQL or MariaDB, OpenSearch, Redis or Valkey, RabbitMQ and nginx versions that must be kept current. A store without staff who can run that stack, or without budget for a retainer, usually carries more risk on a self-hosted platform than on a hosted one. Before deciding, check four points: whether your catalog and promotions change often enough to justify a larger internal team, whether a regulator or contract truly requires self-hosting, whether your current app stack has Magento extension equivalents, and whether you can fund recurring operations for the full term of the comparison. If two or three of these answers are no, the Shopify Plus subscription may remain the lower-risk choice even when its line item looks higher.

How DeployOpen scopes a fixed-price Magento implementation

DeployOpen plans, implements, hardens and documents self-hosted open-source platforms inside your own cloud accounts or data centers. For a Shopify Plus cost comparison with self-hosted Magento Open Source, we start with a written scope so you can see every hosting, build, extension, payment and patching component before committing.

How we scope

  • Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • The written scope lists the Shopify Plus subscription, app and payment fees it replaces, so each cost line is comparable.
  • We confirm which Magento Open Source release line and PHP, database and search versions your store will run.

How we build

  • We plan hosting for Varnish or your chosen CDN, Redis, OpenSearch and RabbitMQ within your own infrastructure.
  • We rebuild required Shopify apps as Magento extensions or custom modules, with each item listed in the scope.
  • We test checkout, payment, URL redirects and Content Security Policy behavior before any cutover is approved.

How we hand over

  • Deliverables include architecture diagrams, configuration records, runbooks and a cost-of-ownership worksheet for your review.
  • We document the patching calendar so your team knows which upgrades and security releases fall on their side.
  • Handover covers admin training, backup and restore procedures, and a list of open items agreed with your team.

How we support

  • Ongoing support, upgrades and continuous security testing are available as retainers after handover.
  • A retainer can cover Magento patch application, PHP and database upgrades, and monitoring of your hosting stack.
  • Ask any provider, including DeployOpen, to confirm in writing who handles PCI DSS scope evidence for your payment setup.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.