Shopify Plus vs Saleor: when each platform fits a multi-market merchant
If you run a Shopify Plus store across several countries and sales channels, Shopify Plus fits teams that want hosted operations and a large app ecosystem, while Saleor fits teams that want channel-level control, self-hosting and the staff to build and run a headless storefront. The choice is less about which platform sells more and more about who carries the operational work. Shopify Plus keeps hosting, checkout upkeep and most platform changes with the vendor, which is why Shopify states 99.99% uptime on average on its Shopify Plus page. Saleor moves that work to you, and in exchange gives you per-channel pricing, currencies, stock and products that you configure in your own environment.
Four factors should settle the decision before you request a quote. The first is frontend capacity: Saleor exposes everything through a GraphQL API, so you need a team that can build and maintain the storefront, while Shopify Plus ships a theme-based storefront out of the box. The second is app dependency: count the apps your store relies on today, including those that handle reviews, subscriptions, shipping rules and tax, and confirm for each whether Saleor offers an equivalent or whether you must build a Saleor app. The third is data residency: if a regulator or contract requires data in a specific country or on your own servers, self-hosted Saleor may be the only option that meets it, so check where Shopify stores your data under your agreement and what your residency obligation actually requires. The fourth is in-house operations: Saleor needs its API, Dashboard, PostgreSQL, Valkey or Redis, and Celery workers running reliably, so confirm that your team or a partner can patch, back up and monitor them.
Which platform fits which scenario
This table matches common Shopify Plus merchant situations to the platform that usually fits better, with the reason tied to supplied capabilities. Read each row as a starting point and confirm the points marked in your own environment before deciding. The main takeaway is that Saleor suits multi-market, engineering-led teams, while Shopify Plus suits teams that want a hosted platform and rely on its app ecosystem.
| Scenario | Better fit | Reason |
|---|---|---|
| Single-country store with heavy app use | Shopify Plus | Your apps and themes are the main dependency, and Saleor replaces them with webhooks, apps and your own storefront work rather than installable equivalents. |
| Multi-market brand needing per-channel pricing and currencies | Saleor | Saleor supports per-channel pricing, currencies, stock and products across multiple warehouses through its GraphQL API. |
| Team with a strong frontend engineering group | Saleor | Saleor is headless, so your engineers build and own the storefront against the GraphQL API, which suits teams that want full control of checkout experience. |
| Team with no in-house engineers | Shopify Plus | Saleor needs an API, Dashboard, PostgreSQL, Valkey or Redis, Celery workers and a storefront maintained by someone, so confirm whether a partner or Saleor Cloud will carry that work. |
| Store with strict data residency | Saleor (self-hosted) | Saleor can run in your own infrastructure with Docker, so customer and order data stays where you choose; confirm hosting regions and backup locations with your team. |
| Merchant requiring hosted uptime commitments | Shopify Plus | Shopify states 99.99% uptime on average for its hosted platform; with Saleor, uptime depends on your own hosting and operations, so ask for a written scope. |
Where your data lives and who runs the platform
Shopify Plus is a fully hosted commerce platform. Shopify runs the application, the database, the checkout and the infrastructure that serves your storefront, and it states 99.99% uptime on average on its Plus page. Your team configures the store and manages apps, but the platform layer sits with Shopify, which simplifies operations and shifts much of the platform evidence to the vendor.
- Operations: Shopify patches the platform and scales the infrastructure without a scheduled upgrade from you.
- Uptime claim: The 99.99% figure is an average Shopify publishes, not a contractual guarantee you hold for your own store. Read the service terms for the commitment that applies to you.
- Data location: Confirm with Shopify where your merchant, customer and order records are stored and processed, and whether any apps you install send data elsewhere.
- Checkout and payments: Shopify hosts checkout, which narrows the parts of the payment flow you directly control.
- Identity: Staff accounts, roles and login policies are managed in the Shopify admin, so review them against your own identity controls.
Before relying on this model, ask Shopify for its current compliance documentation and the scope of any report it provides to you, and confirm it with your own auditor.
Saleor Cloud is the managed hosting option for Saleor, so the Saleor project's operators run the platform for you. You keep the open-source codebase and its GraphQL API, but the hosting provider takes on much of the operations work. Responsibility for data location, access controls and incident handling must be defined in your agreement with that provider rather than assumed from the open-source license.
- Hosting location: Ask which regions and data centers host your store and backups, and whether those choices meet your residency rules.
- Shared responsibility: Get a written split of who patches the core, the Dashboard, the database and the workers.
- Access: Confirm how staff access to production data is granted, logged and reviewed by the provider.
- Backups and recovery: Ask for the backup schedule, retention period and the restore process, and test a restore yourself.
- Evidence: Request any independent reports the provider holds and confirm whether they cover the services you use.
Ask the provider which controls it operates and which ones you must run, then check that split with your auditor.
Self-hosting Saleor with Docker places the API, the Dashboard, PostgreSQL, Valkey or Redis, and Celery workers inside your own infrastructure. Every data location, access path and patch cycle becomes your decision. The Docker Compose setup asks for at least 5 GB of memory, a starting point for trials rather than a production sizing, and configuration is handled through environment variables.
- Data location: Your cloud accounts or data centers hold orders, customers and payment metadata, so residency is set by your architecture.
- Patching: Your team applies Saleor, PostgreSQL, Redis or Valkey and operating system updates on your own schedule.
- Secrets and config: Environment variables carry database credentials and API keys, so store them in a managed secrets system.
- PCI scope: Card data handling depends on the payment gateways and how your storefront is built, so scope must be mapped for your setup.
- Logging and access: You own audit logs, admin access reviews and monitoring for every component.
Map each component to an owner and a control before go-live, and confirm the PCI scope with your qualified assessor.
Choosing a deployment model changes which compliance evidence you collect and from whom. A hosted platform lets you rely partly on the vendor's documentation, while a self-hosted platform makes you the primary source of evidence for each control you claim. Neither route removes your duty to show how your store protects payment data, personal data and access to administrative functions.
- Certification scope: A vendor report covers only the services and regions named in it, so check that scope against your store's actual setup.
- Data residency: Write down where each data class is stored, processed and backed up, including apps, gateways and analytics tools.
- Responsibility matrix: Document which controls the platform provides, which the hosting provider provides and which your team operates.
- Auditor involvement: Ask your auditor which evidence they will accept for each deployment model before you commit.
- Change records: Keep records of patches, configuration changes and access reviews, whichever model you choose.
DeployOpen can prepare systems, controls and evidence for an assessment, but independent auditors and certification bodies issue any report or attestation. Confirm data residency and certification scope with the vendor and your auditor.
What replaces Shopify apps and themes in Saleor
Saleor does not run plugins inside its core process the way many Shopify apps run inside Shopify's hosted environment. It extends through webhooks, apps, metadata and API extensions, so each app you run today becomes one of three things: a Saleor app that subscribes to events and calls the GraphQL API, an external service that receives webhook payloads, or custom code you own. Build an inventory before you choose a path. For each installed Shopify app, record what data it reads and writes, which storefront features it drives (reviews, subscriptions, search, loyalty, shipping quotes), and whether it writes data back into Shopify metafields. Those three answers usually decide the replacement category.
Shopify themes do not carry over. Saleor is headless, so the storefront is a separate application your team builds and hosts, typically against the GraphQL API with channel-aware queries for pricing, currency and stock. Plan that frontend as its own workstream with design, component build, checkout integration and performance testing, and do not assume that Liquid templates or theme settings can be ported. For each app category, decide explicitly: payments and shipping rates usually move to Saleor's own gateway and shipping configuration, while search, reviews and email marketing are often external services connected through webhooks. For any app with no clear equivalent, such as a niche merchandising tool or a proprietary fulfillment connector, ask the vendor whether it offers a self-hosted or API-only mode and confirm the data it needs before you commit to a rebuild.
The storefront and checkout work you take on
Shopify Plus bundles the storefront, checkout, search and monitoring into one hosted service. With Saleor, each of these becomes a component your team or implementation partner must design, build, run and patch. The cards below list what changes and which skills each one needs before you commit to a timeline.
Storefront frontend
Saleor is a headless backend, so it does not ship a theme. Your team builds the storefront against the GraphQL API, which means choosing a frontend framework, handling channel-aware product pages, and reproducing the look and speed of your current Liquid theme. Confirm which storefront starter Saleor currently recommends and what it covers out of the box. Plan for frontend engineers who can work with GraphQL queries, caching and server rendering.
Checkout flow and payment integration
Shopify Plus hosts checkout and manages its payment connections, so most merchants never touch the checkout code. With Saleor, you own the checkout flow in your storefront and wire each payment gateway through the platform's multi-gateway support. Map your current payment methods, split payment rules and fraud checks one by one. Payment card data handling sets your PCI scope, so confirm which parts of the flow touch card data and whether a hosted payment page keeps them out of scope.
Search and navigation
Shopify Plus includes built-in product search and collection filtering that merchants rarely configure. In a Saleor build, search relevance, faceted filters and collection pages are part of the storefront work, and you can add a dedicated search engine such as Meilisearch or Typesense alongside the platform. Test search against your real catalog size and synonyms, including multi-language and multi-currency product listings, before launch.
Content and theme design
Shopify themes combine templates, sections and theme settings that editors change without developers. A headless storefront moves that into your own component library and content model, often through a separate headless CMS. Decide early which pages editors manage directly, such as landing pages and banners, and which come from product data. Designers and frontend developers need to agree on a design system, and your content team needs a preview workflow that Shopify provided by default.
Shopify Flow style automations
Shopify Flow runs triggers, conditions and actions inside the admin, such as tagging orders or notifying teams. Saleor extends through webhooks, apps and metadata rather than in-process plugins, so each automation becomes a service that listens for events, runs logic and writes back. Inventory an inventory of your current Flow workflows, then decide which ones an automation tool or your own service will run, and who responds when one fails.
Monitoring and on-call
Shopify Plus carries the uptime of the hosted platform, which Shopify states at 99.99% on average. With Saleor, you run the API, Dashboard, PostgreSQL, Valkey or Redis, and Celery workers, so you own alerting on each service, queue backlogs, failed webhooks and checkout errors. Set up logs, traces and dashboards for storefront and API paths, define who is paged at night, and rehearse restores. Ask any implementation partner for the runbooks they will deliver with the system.
How a move from Shopify Plus to Saleor proceeds
The sequence takes a Shopify Plus store from an inventory of what it depends on to a cutover on Saleor, with the original store kept live until the new one holds the data it needs. Each step produces a artifact the next step relies on.
Inventory apps, metafields and integrations
Your team lists every Shopify app, theme customization, metafield definition, Shopify Function, webhook and external system that touches the store, then marks which ones the business still needs. Each item gets an owner and a decision: rebuild as a Saleor app or webhook consumer, replace with a service, or retire. The output is a signed-off inventory that defines the scope of the build. Confirm current app behavior with each vendor, since many apps hold data or logic that does not appear in an export.
Map data to Saleor's model
Your data lead maps Shopify products, variants, collections, metafields, customers and orders to Saleor's product types, attributes, categories, channels and GraphQL objects. Metafields that carry business logic get explicit attribute definitions or metadata keys, and anything without a target is flagged for a decision. The output is a field-by-field mapping document reviewed by the merchandising, finance and engineering owners. Validate the mapping against a sample of real records before any bulk import begins.
Design channels, currencies and stock
Your commerce and operations leads define the Saleor channels for each market, including per-channel pricing, currency, stock location and warehouse assignment. This replaces the market-specific setup you may have used in Shopify Markets. The output is a channel design document showing which products sell where, at what price, and from which warehouses. Check tax, duty and payment gateway rules per channel with your finance team, since these are configured separately from the catalog.
Export products and images
Your team exports products from the Shopify admin as a CSV. The CSV does not contain product images, so each image must be imported into Saleor from its public URL, and the original store stays live until the new store has received them. Your engineer checks that every image URL resolves and that variants, SKUs and attribute values match the mapping. The output is a verified product dataset and an image import log showing which items succeeded and which need rework.
Export customers and order history
Your team exports customers from Shopify as a CSV, which is limited to 15 MB, so large customer bases will need several files or a data pull through the Shopify Admin API. Order history is usually not complete in the standard exports, so decide which orders and fields you need for support, returns and finance, then retrieve them through the API. Confirm with your privacy lead which personal data may move and how it is stored. The output is a set of validated customer and order files loaded into a staging database.
Build and test the storefront in parallel
Your frontend team builds a headless storefront that consumes Saleor's GraphQL API, since Saleor does not ship a theme, and reproduces the checkout, account, search and content pages the business needs. Testing runs against staging data across the channels designed earlier, including checkout, payment, returns and promotion rules such as vouchers and gift cards. The output is a tested storefront with a signed-off list of defects and the checkout flows verified in every channel. Load test the environment in your own infrastructure, since Saleor needs PostgreSQL, a cache, and Celery workers alongside the API and Dashboard.
Cut over and set redirects
On an agreed date, your team freezes catalog edits on Shopify, runs a final delta export of products, customers and orders, and loads the changes into Saleor. Old product and collection URLs are mapped to their new paths with permanent redirects, and DNS, payment webhooks and analytics tags are switched over. The output is a live Saleor store with a rollback path and a log of redirect coverage. Keep the Shopify store available for a defined period afterward so that late orders, refunds and support lookups can still be resolved.
Questions buyers ask before switching from Shopify Plus to Saleor
How much effort does a move from Shopify Plus to Saleor involve?
The effort depends mostly on catalog complexity, how many channels and markets you sell in, and how much of your Shopify storefront and app logic must be rebuilt. Saleor does not ship a Shopify-style theme, so the storefront is a separate build in addition to the data migration. Effort also rises with the number of metafields, custom checkout behavior and third-party integrations you rely on. Ask any implementation partner to break the work into data mapping, storefront, integrations, payments, testing and cutover, and to tie each to a written scope before work starts.
What skills does the internal team need for a Saleor project?
Plan for engineers who can work with a Python and Django backend, a GraphQL API, PostgreSQL, and Docker-based deployments. The storefront needs frontend developers comfortable with GraphQL clients and modern JavaScript frameworks. Operations staff must own the Saleor API, the Dashboard, Celery workers, Valkey or Redis, and the database. A product owner who can make decisions on channels, pricing and tax rules is also needed, since these shape the data model before any import starts.
Can our own team migrate from Shopify Plus to Saleor without outside help?
A capable in-house team can do it, but the question is whether it has the time and the specific experience to cover the whole scope. Teams usually need help with the GraphQL data model, the import pipeline, the headless storefront and the cutover plan. Be honest about your capacity during the build, because the live store has to keep running. If you bring in an outside partner, DeployOpen works on fixed-scope engagements with deliverables and timelines agreed in writing, and ongoing support is available as a retainer.
How does the cost of running Saleor compare with Shopify Plus?
Shopify Plus bundles hosting, platform updates and uptime into a subscription, and apps and transaction fees add to it. Self-hosting moves those costs onto you as separate components: cloud or data center infrastructure for the API, Dashboard, PostgreSQL, Valkey or Redis and Celery workers, backups, monitoring, CDN and storefront hosting, security patching, and staff or partner time. The Docker Compose setup asks for at least 5 GB of memory for Docker, which is a starting point for a test environment, not a production sizing. Ask for quotes that separate one-time build costs from recurring infrastructure and support, and compare them over several years.
Do product images, customers and orders transfer from Shopify Plus?
Products transfer as a CSV export from the Shopify admin, but product images are not included, so you must re-import them from their public URLs. Shopify advises keeping the original store live until the new store has imported those images. Customers export as a CSV limited to 15 MB, so large customer files must be split into several exports. Order history, metafields and some automatic discount data usually need the Admin API or a custom script. Plan these steps and test each one against a copy of your data before cutover.
What happens to my Shopify apps and themes after moving to Saleor?
Shopify apps and themes do not carry over to Saleor. Saleor extends through webhooks, apps, metadata and API extensions rather than in-process plugins, so each app function must be matched to a Saleor app, an external service or custom code. Themes are replaced by a headless storefront you build. Make an inventory of every app, its data and its checkout role, then decide for each whether Saleor covers it, an existing open-source tool covers it, or it needs custom development.
Is Saleor Cloud an option instead of self-hosting?
Yes, Saleor is offered as Saleor Cloud managed hosting, as well as self-hosted with Docker. Choosing Saleor Cloud shifts infrastructure operation to the vendor, while self-hosting keeps the platform in your own cloud account or data center. Confirm directly with Saleor which hosting terms, data locations, support levels and uptime commitments apply to Saleor Cloud, and compare them with your own requirements before deciding.
Deciding whether to self-host Saleor
Start by fixing the scope of the decision before comparing hosting options. Confirm which sales channels and markets you must run on day one, because Saleor's per-channel pricing, currencies, stock and products are the core of a multi-market build, and each channel adds catalog, tax and fulfillment rules you must model. List every Shopify app your store depends on, including Shopify Functions, Flow workflows and market-specific apps, and map each to a replacement: a Saleor app or webhook integration, a third-party service, or custom code. Apps that only cover a feature Saleor already ships, such as split payments, returns, multi-warehouse fulfillment or vouchers, will drop out of the list quickly. The rest decide your build effort.
Next, assess frontend capacity honestly. Saleor exposes its functions through a GraphQL API and does not ship a Shopify-style theme, so the storefront is work your team or a partner must design, build, test and maintain. Ask who owns the storefront, who handles accessibility and performance testing, and who will ship changes during peak trading periods. Then decide between Saleor Cloud and self-hosting with Docker. Saleor Cloud moves operations, patching and infrastructure to the vendor, while self-hosting keeps data and hosting under your control but makes you responsible for PostgreSQL, Valkey or Redis, Celery workers, the API and Dashboard, and their upgrades. Ask the vendor for its current terms, data residency options, support scope and certification coverage in writing, and confirm with the vendor and your own auditor which controls the vendor's certifications actually cover. DeployOpen works on a fixed scope agreed in writing before work starts, so once these answers are known, the migration can be scoped and quoted against them.
How DeployOpen works on this
DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For a Shopify Plus to Saleor decision, that means a written scope that starts with your channels, markets and catalog, then a self-hosted Saleor build with the frontend, data migration and operations handled under the same agreement.
How we scope
- Map your markets, channels, currencies and warehouses to Saleor channel, pricing and stock configuration before any build work starts
- Inventory Shopify apps and theme features in use, and record which need a Saleor app, webhook or custom frontend replacement
- Agree deliverables, timelines and exclusions in writing, since most engagements are fixed-scope and priced from that scope
How we build
- Deploy the Saleor API, Dashboard, PostgreSQL, Valkey or Redis, and Celery workers in your environment, configured through environment variables
- Import products, variants, metafields, customers and orders into the Saleor GraphQL model, then reconcile counts and sample records
- Build or adapt the headless storefront, checkout and payment gateway setup, and test promotions, returns and split payments end to end
How we hand over
- Document architecture, environment variables, data mapping, redirect rules and the cutover runbook for your own team
- Provide security testing results for the application and API, with findings tracked to closure before go-live
- Deliver backup and restore procedures and evidence of controls that your auditors or assessors can review
How we support
- Offer ongoing support, upgrades and continuous testing as a retainer, covering Saleor releases and dependency patching
- Monitor the stack after cutover and agree response expectations in the retainer rather than assuming them
- Ask any partner, including DeployOpen, to confirm in writing which hosting, patching and on-call duties sit with your team

