How to export your data from Shopify Plus

Shopify Plus exports products, customers and orders as CSV files with documented limits, but images, automatic discounts and some metafields need other paths. This page maps each export route, its gaps and the sequence to run before your contract ends.

On this page

Can you export your data from Shopify Plus?

Yes, but only part of the store comes out through the admin. Products, customers and orders can be exported as CSV files, while product images, automatic discounts and some metafields do not come out that way and need a separate plan. A merchant weighing a renewal or a move to a self-hosted platform should treat the admin export as the starting point of the data transfer, not the whole of it.

Products export from the admin as a CSV file, but the file carries no product images. Shopify advises keeping the original store live until the new store has imported images from their public URLs, so the old storefront is still needed during the transfer. Customers export as a CSV limited to 15 MB, and the export includes tags and supported metafields. Order exports cover the order records the admin allows you to pull, so confirm with Shopify and your own admin reports how far back the history goes before you plan the cutover. Ask whether any custom data sits outside the supported export fields.

Automatic discounts are the gap most merchants miss. They are rules that apply at checkout, not records a CSV can hold, so you must document each rule's conditions, dates and value and rebuild it on the new platform. Metafields that the CSV does not include need the Admin API, which is also the route for fuller order history. Your developers should inventory every metafield namespace and every automatic discount before a renewal decision, and keep the live store running until those items are verified in the new environment.

Which Shopify Plus data exports as CSV and what the limits are

This table compares how products, customers and orders leave Shopify Plus, the file format each export uses and the limits Shopify documents. Read it as a checklist: the CSV exports cover the basic records, while metafields, images and full order history need a separate path before you cut over.

DataExport method and formatDocumented limits and gaps
ProductsProduct CSV exported from the Shopify adminProduct images are not included in the CSV, so keep the original store live until images are re-imported from their public URLs
CustomersCustomer CSV exported from the Shopify admin, including tags and supported metafieldsFile size is limited to 15 MB, so large customer bases may need to be split into several exports (confirm the split approach with Shopify support)
OrdersOrder export from the admin as CSV (confirm the current columns and row limits in your admin)No order export limit is set in the facts reviewed here; confirm how much order history and line-item detail the CSV carries
MetafieldsNot reliably covered by the CSV; use the Shopify Admin API for product, customer and order metafieldsMetafield definitions and values need programmatic extraction, and the output must be mapped to your new platform's fields
Automatic discounts and appsNot included in standard CSV exportsRebuild discount logic and app data in the new platform; export the rules you can see and document the rest
Full order historyAdmin API for complete historical records (confirm rate limits and access scopes for your store)Plan for scripted extraction and time for validation against order totals, refunds and fulfillment status

What does not come out of the admin export and how to handle it

The admin CSV files cover products, customers and orders, but several things that run your store never leave Shopify in that form. Each gap below needs a named owner, a workaround and a check before you cut over, so the new store is not missing a piece you only discover after launch.

Product images

Product CSV files do not include images. Shopify advises keeping the original store live until the new store has imported images from their public URLs. Before you cancel anything, confirm with your vendor that the image URLs stay reachable, and check that every product's image set, alt text and variant image links appear in your export before you rely on it. Test a sample of products end to end.

Automatic discounts

Automatic discounts apply at checkout without a code, so they are not part of the customer or order exports. Export the discount settings from the admin and write them into a list with conditions, dates, minimum amounts and eligible products. Recreate each rule in your new platform's promotion engine, then place test orders that should and should not trigger it.

Shopify Functions

Functions run custom discount, shipping and payment logic inside Shopify's checkout, and their code lives in your app or theme rather than in a data file. Nothing in the CSV exports reproduces that logic. Document what each function does, the inputs it reads and the outputs it sets, then rebuild the behavior as application code or platform rules and test it against the same carts.

App-stored data

Installed apps often keep data in their own databases, such as subscriptions, reviews, loyalty points or wishlists. Standard exports omit most of it. Use the Admin API to read the metafields and app records you rely on, and ask each app vendor for a data export or a documented API. Where a vendor cannot provide one, plan to re-enter or accept the loss of that data.

Metafields and full order history

Customer and product CSV files include only some metafields, and order exports may not hold the full history you need for support or tax records. Where the CSV falls short, query the Admin API for metafield definitions and complete order data. Confirm the scope of data your team needs to keep, and check the access permissions your API credentials hold before you start the export.

When the Admin API is needed for metafields and full order history

CSV exports cover only part of a Shopify Plus store, so metafields beyond the fields a CSV carries, complete order history and data written by apps usually need the Shopify Admin API. Before you commit to a CSV-only extraction, list every metafield namespace your theme, apps and checkout rely on, and check each one against what the product, customer and order exports actually contain. Anything missing from the files becomes an extraction task for engineers.

That task is a small extraction service, not a file download. Your team will need an app or script with an access token scoped to the read permissions it needs, cursor-based pagination to walk each resource from the first page to the last, and a checkpoint so a failed run resumes instead of restarting. Plan for rate limits by throttling requests and backing off when the API signals it is near its limit. Store raw responses alongside the transformed records so you can rerun mappings without calling Shopify again, and reconcile record counts per resource against the admin before cutover.

Confirm current API scopes, rate limit behavior, pagination rules and how far back order history can be read in the Shopify developer documentation for your API version, since these details change and should not be taken from this page. Also ask whether any order or customer data needs a separate approval or is restricted for your app type, and record that answer in your migration plan. Those checks determine how long the extraction runs and whether your order history is complete at cutover.

The export sequence and how to verify each step

The sequence captures a frozen baseline of the store, then moves catalog, customer, order, image and metafield data in an order that makes each piece checkable against the live admin. Each step closes with a count or sample comparison, and the original store stays live until the target confirms everything.

  1. Freeze a baseline snapshot of the store

    Before exporting anything, the merchant or store operator records the current state of the store: product, customer and order counts from the Shopify admin, plus a list of installed apps, themes, metafield definitions and active automatic discounts. Keep the snapshot in a dated spreadsheet or document. This baseline is the reference every later check is measured against, so it should be captured on the same day the exports run. Done means the snapshot is saved, dated and shared with whoever will sign off the migration.

  2. Export products to CSV

    From the Shopify admin, the store operator exports products as a CSV file. The file carries product fields, variants, prices, inventory and tags, but not product images, so image handling is a separate step. Open the file in a spreadsheet and compare the number of distinct product handles with the product count in the baseline, and confirm a sample of variants matches the live admin for price, SKU and option values. Done means the row and handle counts reconcile and the sampled products match.

  3. Export customers and orders

    Export customers to CSV from the admin, checking that the file stays within the 15 MB limit Shopify documents for customer exports. If the file is split or the export is emailed, confirm that every part arrived before combining them. Export orders the same way, noting the date range or export scope you used, because order history in a CSV may not match the full history the admin shows. Compare customer and order counts against the baseline and spot-check several customers and orders, including one with tags, multiple fulfillments and a refund.

  4. Download image files from public URLs

    Product images are not in the product CSV, so the operator collects the image URLs from the export or the admin, downloads each file, and stores it in object storage or on the target server under a predictable path. Shopify advises keeping the original store live until the new store has imported images from their public URLs. Count the downloaded files against the number of image URLs, check for failed downloads and retry them, and open a sample of images to confirm they are not truncated or mismatched to the right product.

  5. Pull metafields through the Admin API

    Metafields are not fully covered by CSV exports, so a developer uses the Shopify Admin API to read metafield values and definitions for products, customers and orders, and saves the output as JSON or CSV keyed by the Shopify ID. Confirm that each metafield definition in the baseline appears in the output, that counts match for each resource type, and that a few values, such as structured data or references, are stored in a form the target can read. Done means every definition has an exported set of values that matches a live spot check.

  6. Reconcile counts and sample records

    Compare every export against the baseline and the live admin. For products, customers and orders, record totals, sampled records and any difference, and investigate each mismatch before moving on. Confirm that the stored image set, metafield set and automatic discount list, which Shopify exports do not carry, are documented in a separate handoff list for manual rebuilding. The reconciliation log, signed off by the merchant, is the output of this step.

  7. Keep the original store live until confirmed

    Do not close, downgrade or disconnect the Shopify Plus store when exports finish. Keep it running until the target platform has imported the data, the images resolve from their new location, and the reconciliation log shows no unexplained differences. Only then should the team plan the cutover, using the same baseline to check the target store on launch. Ask your Shopify contract owner which terms apply to closing the store, and confirm them in writing before changing anything.

How the exported data maps to each target platform

Magento Open Source is a self-hosted PHP platform licensed under OSL-3.0, with AFL 3.0 also included in the distribution, so the store's data lives in your own database. Shopify's product, customer and order CSVs are the usual starting point for a catalog-heavy move, but the CSV layouts do not match Magento's import templates column for column. Plan a mapping step that converts Shopify fields into the target's import format before any test load.

  • Product CSV mapping: Shopify product handles, variants and option names need translating into Magento's product types and attribute sets before import.
  • Images: The Shopify product CSV does not include images, so you will import them from their public URLs or from a separate download step.
  • Customers and orders: Customer CSVs can carry tags and supported metafields, but order history usually needs to be loaded through a scripted path.
  • Version targeting: Magento 2.4.9 lists PHP 8.5 and MySQL 8.4 or MariaDB 12.3 (recommended) among its requirements, so confirm the import tooling runs on the version you deploy.

Confirm the accepted columns, file formats and import limits in the Magento documentation and test each file type on a staging copy before cutover.

What to plan before the Shopify Plus contract renews or ends

The export itself is the easy part. The decisions that decide whether a move goes smoothly are timing, what stays live, which apps hold data you need, and how traffic is redirected. Each card below is a decision or check to settle with your team before the renewal date or the cancellation deadline in your contract.

Schedule the full export early

Run the product, customer and order exports well before the renewal or end date, not in the final week. Exports are limited in size and may arrive by email, so large catalogs and customer files can take several attempts. Check the file limits in the Shopify Help Center, confirm which order history you can actually export from the admin, and note where the Admin API will be needed for metafields and full history.

Keep the store live

Do not cancel the Shopify Plus store until the new platform shows verified images. Shopify states that product images are not in the product CSV, so the new store must import them from their public URLs while the original store still serves them. Keep the live store active through verification, not only through data import.

Inventory your apps and their data

List every installed app and the data it stores outside the core catalog, such as reviews, subscriptions, loyalty points, wholesale pricing or custom fields. Standard exports will not carry all of it. For each item, confirm with the app vendor whether data can be exported, and decide whether it is rebuilt, migrated through the API or dropped.

Record DNS and redirect plans

Document every domain, subdomain, storefront URL pattern and redirect that search engines and campaigns depend on. Map old product, collection and page URLs to their new destinations before cutover, and decide who controls DNS changes and when. Check the redirect list against your top traffic sources so search rankings and paid links are not broken on day one.

Agree a parallel-run period

Agree in writing how long the old and new stores run side by side, who signs off on order, customer and inventory totals, and what triggers a rollback. A parallel run lets you compare order counts, customer records and checkout results before the old store is switched off. Ask your implementation partner to put the duration and acceptance criteria into the written scope.

Questions buyers ask before exporting their Shopify Plus data

How much effort does a full Shopify Plus data export take?

The effort depends mostly on what you need to move, not on the export button itself. Product and customer CSVs are quick to produce from the admin, but the work grows with the parts that do not export cleanly: product images, metafields, automatic discounts and full order history. Each of these needs a separate route, usually the Admin API, and a mapping decision in the target platform. Catalog size, the number of custom fields, how many apps hold data you rely on, and how many years of order history you keep all push the effort up. Ask for an inventory of data types before you estimate anything.

Can our team export Shopify Plus data without outside help?

A team with admin access and someone comfortable with CSV files can export the basic product, customer and order files alone. The gaps appear when you need data outside those files. Shopify's product export does not include images, and the customer export is capped at 15 MB according to the Shopify Help Center, so larger stores need repeated exports. Metafields, full order history and automatic discounts generally require API work, scripting and validation against the target platform's data model. Decide early which of these your own engineers can own and which you want to hand to a specialist.

What access and sign-off does our team need to provide?

Expect to supply admin or staff account access to the Shopify store, API credentials for a private or custom app with read permissions for the data types in scope, and a named owner for the data sign-off. You also need a decision on which apps stay connected during the export, since some apps hold data Shopify does not show. Sign-off should cover record counts, sample checks on products, customers and orders, and written acceptance of what will not be carried over. Keep the original store live until images and records are confirmed in the new environment, as Shopify advises for image re-import.

What does a fixed-scope export engagement from DeployOpen cover?

A fixed-scope engagement covers the agreed data types, the export method for each, the transformation rules needed for the target platform, validation reports and handover documentation. Scope, deliverables and timelines are agreed in writing before work starts, and DeployOpen does not publish a price list, so a quote follows from that written scope. Ask whether the scope includes image retrieval, metafield mapping, order history depth, test imports and a final reconciliation. Anything outside the written scope, such as storefront rebuilding or payment setup, should be scoped separately.

How long does a Shopify Plus data export take?

Timing depends on the factors that drive the work: the number of data types, catalog and order volume, the amount of API scripting required, how many validation cycles your team wants, and how quickly your team can review and sign off each stage. Availability of the Shopify store admin, the target environment and named reviewers also affects the schedule. DeployOpen does not quote durations without a written scope, so ask for a plan with stages and dependencies that you can check against your own release calendar.

What happens to data that cannot be exported directly?

Some data does not leave Shopify in a standard file. Product images are not in the product CSV, so they must be re-imported from their public URLs. Automatic discounts and Shopify Functions logic are typically not exportable as data, so you rebuild them as rules in the target platform. Apps may store data in their own systems, which you need to request from each vendor. Decide per item whether to migrate, rebuild, recreate manually or retire it, and record that decision in the sign-off document so no one assumes the data came across.

Does the export have to happen before the platform decision?

Not necessarily, but the target platform changes which data is worth extracting in which shape. A headless platform with a GraphQL or REST data model may need different mappings than a store with a native product and variant structure. Many teams run a first full export early to measure data quality and volume, then refine the mapping once the target is selected. This keeps the decision informed by real counts rather than assumptions. Ask your implementation partner to confirm which export outputs are useful regardless of the final platform.

How DeployOpen scopes and delivers a Shopify Plus data exit

DeployOpen is a Chainscore Labs company that plans, implements, hardens, documents and supports self-hosted open-source platforms in your own infrastructure. For a Shopify Plus data exit, we start with a written scope that names each export file, each API extraction and each gap that needs manual work before any data moves.

How we scope

  • Inventory which product, customer and order exports the store can produce today, and which data needs the Admin API instead
  • Record metafields, image sources, automatic discounts and order history gaps so none are discovered after cutover
  • Agree deliverables, timelines and responsibilities in writing before any work starts, since most engagements are fixed-scope
  • Confirm the target platform, hosting location and who owns the original store during the transition period

How we build

  • Build repeatable extraction scripts for the Admin API where CSV exports stop short of metafields or full order history
  • Map exported fields to the target platform's data model and document every transformation rule applied
  • Test imports in a staging environment, comparing record counts and sample records against the source store
  • Plan image re-import from public URLs and keep the original store live until that import is verified

How we hand over

  • Deliver a field-level mapping document, an export runbook and a reconciliation report covering counts and exceptions
  • Provide the scripts and configuration in your repositories so your own team can rerun or audit the exit
  • Walk through open items, known gaps and manual decisions with the people who will own the new store
  • Document the evidence trail that supports data handling reviews, without issuing any audit report or certification

How we support

  • Offer ongoing support, upgrades and continuous testing for the new platform as a separate retainer after handover
  • Agree support boundaries in the written scope, including who responds to incidents and within which channels
  • Ask vendors and your own teams to confirm platform licensing, hosting and extension terms before go-live
  • Request a quote based on the written scope, since DeployOpen does not publish a price list

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.