Skip to main content

A Step-by-Step Guide to Moving Excel Data into Shopify

BulkFlow | | 10/15/2026

Shopify doesn’t accept Excel workbooks in its product importer. To import Excel to Shopify, you rearrange your spreadsheet to match Shopify’s product CSV template, save it from Excel as a UTF-8 CSV file, and upload that file from the Products page in your admin.

The upload itself is quick. Most of the effort goes into getting the columns, variant rows and cell values right, because Excel quietly changes some data in ways Shopify can’t read. Getting that preparation right is what keeps prices, SKUs and images intact after the import.

How to Import Excel to Shopify Step by Step

Treat your Excel workbook as the working copy and the CSV as a file you export from it each time you’re ready to import. That way, every fix happens in one place, and you can produce a clean CSV whenever Shopify needs one.

Step 1: Back up your products and download Shopify’s template

If your store already has products, export them first from Products > Export. An import can’t be canceled once it starts and Shopify keeps no import history, so this export is your only easy way to restore earlier values if something goes wrong.

Next, download the sample product CSV from Shopify’s product CSV help page. Open it in Excel and use its header row as the layout for your file. Copy the headers exactly as written, since Shopify has renamed some columns over time and the import fails when a header doesn’t match its template.

Step 2: Map your Excel columns to Shopify’s headers

Your workbook probably uses its own column names, such as “Product Name” or “Retail Price.” Shopify only recognizes its own headers, so each column you want to import needs to sit under the matching Shopify header. The simplest approach is to paste your data column by column into the template rather than renaming headers in your original file.

Typical Excel columnShopify CSV headerWhat to check
Product NameTitleRequired for every new product.
(none, usually)URL handleUnique ID used in the product URL. Letters, numbers and dashes only.
DescriptionDescriptionPlain text or HTML.
Brand or ManufacturerVendorFree text.
CategoryTypeYour own label. “Product category” is reserved for Shopify’s standard taxonomy.
KeywordsTagsComma-separated, up to 250 per product.
Retail PricePriceNumbers only, no currency symbol.
MSRP or List PriceCompare-at priceShows as the original price when higher than Price.
Unit CostCost per itemVisible only to you.
Item NumberSKUOne per variant.
Stock or QtyInventory quantityWorks only for single-location stores.
WeightWeight value (grams)Whole number in grams, even if you display pounds.
Image LinkProduct image URLPublic https:// address.

Only Title is strictly required for a new product, so you can delete template columns you don’t need. However, if you’re importing variants, you also need URL handle on every row. If your file has no handles, you can generate them in a spare column with a formula such as =LOWER(SUBSTITUTE(TRIM(A2)," ","-")), where A2 holds the title. After that, remove characters like ampersands and apostrophes, and make sure no two products share a handle.

Step 3: Arrange variants and images as extra rows

Shopify reads one product across several rows. The first row carries the full product details, and each additional row for the same URL handle adds a variant or an image. On those extra rows, leave Title, Description, Vendor and Tags blank so Shopify doesn’t treat them as conflicting values.

For example, a T-shirt sold in three sizes with two photos would look like this:

URL handleTitleOption1 nameOption1 valueSKUPriceProduct image URL
classic-teeClassic TeeSizeSmallTEE-S24.00https://example.com/tee-front.jpg
classic-teeMediumTEE-M24.00https://example.com/tee-back.jpg
classic-teeLargeTEE-L26.00

Variant columns such as SKU, Price and Weight depend on the option columns. As a result, a row with a SKU but no option value can’t attach to a variant correctly. A product can have up to three options, such as Size, Color and Material, using the Option1, Option2 and Option3 columns.

Images work the same way: one URL per row, up to 250 images per product. Each URL must be publicly accessible over https:// without a password. If your images are on your computer rather than online, upload them to a host first so you have links to paste.

Step 4: Clean up values Excel tends to change

Excel saves a CSV using what each cell displays, not always what you typed. Therefore, formatting that looks harmless on screen can change the data Shopify receives. Before saving, check these common problem areas:

  • Barcodes and SKUs with leading zeros: Excel drops leading zeros from numbers, so 012345 becomes 12345. Format these columns as Text before pasting the data.
  • Long numbers: A 12- or 13-digit UPC can display in scientific notation, such as 1.23457E+11, and save that way. Format the column as Text or as a number with no decimals.
  • Prices: Currency formatting adds a dollar sign to the saved file. Use General or Number format so Price reads 24.00, not $24.00.
  • Fixed values: Some columns accept only specific words. Status takes active, draft or archived, while “Continue selling when out of stock” takes deny or continue.
  • Curly quotes and apostrophes: Text pasted from documents or supplier sheets often contains curly punctuation, which can trigger quoting errors. Use Find and Replace to swap them for straight quotes.
  • Packed dimensions: If you use the packed length, width, height and unit columns, fill all four for a product or leave all four blank. A partial set causes an error for that product.

Also avoid sorting the finished sheet. Shopify warns that sorting a product CSV in Excel can separate image rows from their products and cause images to be lost. If you need to reorder products, do it before you add variant and image rows.

Step 5: Save the sheet as a CSV UTF-8 file

Shopify needs a comma-separated file encoded in UTF-8. In current versions of Excel, go to File > Save As and choose CSV UTF-8 (Comma delimited) (*.csv) as the file type. Plain “CSV (Comma delimited)” can use a different encoding, which turns characters like é or ™ into garbled symbols after import.

Excel will warn that some features can’t be saved in CSV format, which is expected because a CSV holds only one sheet of plain values. Keep your original .xlsx file as the master copy. If you need to make changes later, edit the workbook and save a fresh CSV rather than reopening and resaving the CSV, since Excel reapplies its automatic formatting each time it opens one.

If your Excel version doesn’t offer the UTF-8 option, upload the workbook to Google Sheets and download it with File > Download > Comma-separated values. Google Sheets saves CSV files as UTF-8 by default. Separately, if your computer uses regional settings that make Excel separate values with semicolons, check the export settings so the file uses commas.

Step 6: Upload the CSV in your Shopify admin

Before importing the whole catalog, consider testing a file with two or three products, including one with variants. A small test shows whether your columns, images and prices come through correctly before you commit hundreds of rows. When you’re ready, follow these steps:

  1. In your Shopify admin, go to Products and click Import.
  2. Click Add file and select your CSV.
  3. Optionally, deselect Publish new products to all sales channels if new products should appear only on your online store.
  4. Select Overwrite products with matching handles only if the file is meant to update existing products. Without it, rows whose handle matches an existing product are skipped.
  5. Click Upload and continue, review the import details, then click Import products.

The file can be up to 15 MB. If the upload times out or fails on a large catalog, split the workbook into several smaller CSV files and import them one at a time.

Step 7: Check the imported products

Shopify sends a confirmation email to your account address after the file is uploaded. After that, open a few products, especially ones with variants, and check that prices, SKUs, option values and images landed where you expected. If you imported inventory, confirm the quantities on a product or two as well.

Because there’s no import history, use the store’s activity log to review what changed. If a batch came through wrong, fix the rows in your workbook, save a new CSV and import it again with the overwrite option selected.

How to Update Existing Products From Excel

Updating products uses the same importer, but it’s riskier than adding new ones because overwriting can erase data. Start from a fresh product export so your file already has correct URL handles and current values. Then edit it in Excel and import it with Overwrite products with matching handles selected.

The key is understanding how Shopify treats each column when overwriting. A column that’s in the file but left blank clears the existing value for that product. By contrast, a column you delete from the file entirely keeps its current value. Therefore, the safest update file contains URL handle, Title and only the columns you intend to change.

For example, to change prices on 200 products, you could keep URL handle, Title, the option value columns, SKU and Price, then delete everything else. Keep the option columns whenever you update variant-level fields, though. Shopify uses them to identify variants, and leaving them out can remove existing variants and replace them with a single default one.

Also be careful when editing option values themselves. Changing a value such as “Small” to “S” creates new variant IDs, which can break apps or integrations linked to the old variants. In addition, CSV imports can’t bulk-delete products or change which sales channels products appear on. If you sell from more than one location, Inventory quantity in the product CSV won’t cover it, so use Shopify’s separate inventory CSV instead.

Common Excel-to-Shopify Import Errors and How to Fix Them

Most failed imports trace back to the file’s encoding, its headers or how Excel formatted a value. The table below matches the most common symptoms with their usual cause:

What you seeLikely causeHow to fix it
Garbled characters such as é in titles or descriptionsThe file wasn’t saved as UTF-8Re-save from the workbook as CSV UTF-8, or export through Google Sheets.
“Network error: Unexpected token < in JSON at position 0”A column header doesn’t match Shopify’s templateCopy headers from the current template. They’re case-sensitive.
Illegal quoting errorCurly quotes or apostrophes in the dataReplace them with straight quotes and save as UTF-8.
“Line is invalid (No details)”An existing option value was moved to a different option positionImport once with a temporary option name, then import again with the final name.
Upload times out or failsThe file is too largeSplit it into CSV files under 15 MB.
Images missing after importPrivate or non-https URLs, or rows were sortedUse public https:// links and rebuild the image rows from the workbook.
Barcodes or SKUs changedExcel removed leading zeros or used scientific notationFormat those columns as Text in the workbook and save a new CSV.

When an error points to a specific line, find that row in your workbook rather than the CSV. Fixing it at the source keeps the master copy correct for the next import.

When an Import App Is the Better Route

The CSV method works well for a one-time import or occasional edits. However, it becomes repetitive when a supplier sends a new spreadsheet every week, or when their column names never match Shopify’s. In those cases, rebuilding the template by hand each time is where most of the effort and errors come from.

Import apps reduce that work in different ways. Some accept spreadsheet files directly, others let you match your file’s columns to Shopify fields once and reuse the setup, and some can run imports on a schedule. Excel add-ins take another approach, connecting a sheet to your store so you can edit records and push changes from Excel.

Bulkflow is one option for this kind of recurring work. It’s a bulk data management tool that supports Shopify, with bulk import, field mapping and scheduled data updates. As a result, you can map your own spreadsheet columns to store fields instead of renaming headers before every import.

Conclusion

Importing Excel to Shopify comes down to shaping your workbook to fit Shopify’s product CSV template and saving it in the right format. Once your columns, variant rows and values are set up correctly, the upload is the easy part, and the same workbook becomes a reusable tool for future updates. We hope this guide helps you move your product data into Shopify with fewer surprises. If spreadsheet imports are becoming a regular task, you can explore Bulkflow.

A Step-by-Step Guide to Moving Excel Data into Shopify
BulkFlow provides a solution to import data in bulk from CSV/Excels Files, FTP, Google Sheet, XML,… to e-commerce platforms such as Shopify, WooCommerce,… automatically and quickly.