Imports and exports

Move your store's data into Meisei from a spreadsheet, or take it out again. This page covers how every import and export behaves; the format for each kind of file is on its own page.

Start an import

  1. Open the list you want to fill (products, customers, orders, reviews or wishlists) and choose Import from its actions menu. Loyalty members are imported with Import members on the loyalty activity list.
  2. Pick your file. If you're uploading another app's export unchanged, pick that app under Format and Meisei reads it as is.
  3. Start the import and leave the page if you like. It runs in the background.
  4. Watch it under Settings → Imports. While a job runs, the list shows how many rows are done out of the total. Meisei counts the total before it starts.

Imports of the same kind run one at a time. Start a second customers import while one is running and it shows Queued until the first finishes.

The Imports page listing finished jobs of every type

Import in this order

Orders point at products and customers, and reviews and wishlists point at both, so import in this order or the later files will be full of skipped rows:

  1. Products
  2. Customers
  3. Orders
  4. Everything else: reviews, wishlists, loyalty

Read the results

Open a finished job under Settings → Imports and it opens on its own page, with counts of the rows processed, created, updated and the problems across the top, and these lists below:

A finished loyalty members import with one problem, three notes and the records it created

  • Problems: every row that was skipped, with its row number and the reason. The first 1,000 are listed, and a last line says how many more there were.
  • Notes: things worth knowing that didn't stop a row, such as a column Meisei doesn't import. Shown only when there are any.
  • Records: what the import created or updated, each linking through to the item.

The job's type, format and dates are in a Details card on the right. To get back to your jobs, click Imports at the top of the page.

A row Meisei can't read, or that names something Meisei doesn't have, is skipped rather than failing the whole file. A completed job with 300 problems means 300 rows need looking at and the rest are in. Failed means Meisei couldn't read the whole file, because it isn't a CSV or its header row wasn't recognized. A file that's bigger than your plan allows still completes, with the newest rows in.

A file bigger than your plan allows

One import can bring in a set number of rows (5,000 during the free trial; see Every limit by plan). A bigger file doesn't fail. Meisei imports the newest reviews or wishlist items by their date, or the first rows of the file for everything else, skips the rest, and says so in the job's notes. To bring in the rest, split the file, or import it again once your trial ends.

Finished jobs and their files are cleared out after a while, set by your plan. The data they imported stays. See Plans and limits.

Run an import again

Importing the same file twice updates the same items rather than doubling them: a product is recognized by its URL handle, a customer by email, an order by your old platform's order ID, a review by its ID in the app it came from. Fix the rows that were reported, upload the same file again, and only those rows change.

One caution: every column you send overwrites what's stored. Import a file with an empty notes column and you've cleared the notes. Export first, edit that file, then import it back.

The exception is a customer who opted out of marketing email: an import never opts them back in. A row that says they're subscribed is still imported, they stay opted out, and the job lists the row so you can see it. If they've asked to hear from you again, opt them back in on their page.

Export

  1. Open the list and narrow it with search and filters to just what you want. The export honors the filter that's on.
  2. Choose Export from the actions menu.
  3. Download the file from Settings → Exports when the job completes. Open a job to see the search and filter it used, under Records included, and click Exports at the top to go back.

Exports of the same kind run one at a time too. Choosing Export again for the same list and filter while that export is still on its way gives you the same job rather than a second copy. An export stops at your plan's row limit (see Every limit by plan), so export a very large list in parts.

The Exports page with finished exports ready to download

Exports and imports round-trip, so "export, edit in a spreadsheet, import back" is a safe way to bulk-edit.

If something isn't working

Open the job under Settings → Imports to see each problem with its row number. These come up most often, whatever you're importing:

Message on the jobWhat to do
"The file has no header row."The first line has to be the column names. Save the sheet as a CSV with its header row and upload again.
"This file does not look like a ... export."The Format you picked doesn't match the file. Nothing was imported. Pick the right format, or download the right export, and upload again.
"This file holds ..., more than the ... one import can bring in"The rows that fit were imported. See A file bigger than your plan allows.
"No customer with the email ..."That customer isn't in Meisei yet. Import your customers first, then run the same file again.
"No product with the slug ..."The product isn't in Meisei, or its handle is spelled differently. Import your products or connect Shopify first, then run the same file again.
"Expected a date"Write dates as 2026-03-14, or 2026-03-14 09:30 with a time. A day-first date isn't read the way you mean: 14/03/2026 is refused and 03/04/2026 is read as March 4.
"Expected a number"Remove currency symbols and units, so $12.50 becomes 12.50. Leave out thousands separators too: 1,250 is read as 1.
"Expected true or false"Use yes or no, true or false, y or n, or 1 or 0. Leave the cell empty if you don't know.
"This customer has opted out of marketing email, so the import left them opted out."Nothing to do: an import can't resubscribe a customer. If they asked to hear from you again, opt them back in on their page.
  • Hundreds of skipped rows. Usually an ordering problem: the products or customers the rows point at aren't in yet. Import those first, then run the file again.
  • An export sits on Processing. An export that can't finish is eventually marked Failed so you can start it again. An export that matched nothing still completes, with an empty file.

Next steps

For developers

Imports and exports are the Import jobs and Export jobs endpoints, so a nightly import or a recurring export can be automated. GET /import-jobs/{id}/records lists what a job wrote, paginated and filterable on action or resource; include=importJob on a customer, product, order, review, wishlist or loyalty membership returns the import that last wrote it, with its file row. A record deleted since the import keeps its place in the list as "Deleted record".

For continuous syncing rather than a one-off migration, use the import endpoints on each resource instead: they take JSON, upsert on the same natural keys, and need no file. See Custom integration.