Shopify's own product export is a single CSV β€” one row per variant, not per product. Every "Small / Red" and "Large / Blue" combination gets its own row, and the only thing tying them back together into one product is a "Handle" column you have to keep perfectly consistent by hand. Break the handle on one row and that variant becomes its own orphaned product on re-import.

Images come through as a comma-separated list of URLs pointing at Shopify's own CDN β€” inside one cell, in a specific order that has to match your image position numbers exactly. Once your store closes, those URLs can stop resolving, which means the export you took the day you decided to leave might not even have working images by the time you get around to using it.

The Data You Actually Need Isn't in the Export

Metafields, custom product data, and anything you've built through an app rarely show up in the standard CSV at all. To get real, structured product data out of Shopify β€” the kind another platform's importer can actually trust β€” you need Shopify's Admin API, and that means creating a Custom App inside Shopify's own admin and granting it read scopes on Products. Most store owners have never opened that screen and don't know it exists without a developer pointing them to it.

Shopify never locks your data in. It just never quite hands it to you in a shape anything else can read.

Variants Are Where Most Migrations Quietly Break

A generic CSV importer on the receiving end usually can't tell that five rows are supposed to be one product with five size options β€” it just creates five separate, disconnected listings. The size/colour picker your customers are used to disappears, and now you're manually re-grouping hundreds of rows by hand, product by product, before you can even think about launch day.

How Mika Store Handles This

Connecting Shopify takes the same two minutes it would to check your own data: create a Custom App in Shopify admin, grant it read access to Products, and paste the Admin API access token into Mika Store or Mika Sell's Integrations page. Nothing is imported yet β€” that's just the connection.

From there, Mika pulls every active product directly from Shopify's own API β€” the real source of truth, not a CSV snapshot. Multi-variant products map straight onto Mika's own sellable-variant system: each Size/Colour combination keeps its own price and stock, and shoppers get the same picker experience they had before, not a wall of duplicate listings.

Before anything touches your live catalog, you get a preview β€” exact counts of products, variants, and collections, plus any row that needs attention. Nothing commits until you approve it, and running the connection again later (say, after adding new products on Shopify) simply updates the same catalog in place rather than duplicating it.

Your catalog is the part of the business that took years to build. Moving it shouldn't come down to how carefully you can maintain a spreadsheet column.