Format a CSV for Shopify Product Import
Table of Contents
Shopify's product importer is strict about column names. If your CSV has "Product Name" instead of "Title," or "Item Code" instead of "Handle," the import will either map incorrectly or fail entirely. You need column names that match Shopify's template exactly — and the columns need to be in a format Shopify can read.
The CSV Column Mapper lets you rename, reorder, and restructure any CSV to match the Shopify format. No Excel, no re-exporting, no manual column header edits in a text editor.
This guide covers the required and optional Shopify product import columns, the most common mapping mistakes, and how to prep your CSV in one pass.
Required Shopify Product Import Columns
Shopify's product CSV importer requires specific column names. These are the core fields Shopify expects:
| Shopify Column Name | What It Is |
|---|---|
| Handle | Unique URL slug for the product (lowercase, hyphens only) |
| Title | Product name shown in the storefront |
| Body (HTML) | Product description — HTML or plain text |
| Vendor | Brand or supplier name |
| Type | Product category (optional but recommended) |
| Tags | Comma-separated tags for filtering |
| Published | TRUE or FALSE — whether the product is live |
| Variant Price | Selling price for the variant |
| Variant SKU | Your internal SKU for inventory tracking |
| Image Src | URL to the product image |
Column names are case-sensitive and must match exactly. "variant price" will not work — it must be "Variant Price."
Common Column Name Mismatches
If you exported your product data from another platform, a spreadsheet, or a supplier catalog, the column names will almost certainly not match Shopify's requirements. Common mismatches:
- "Product Name" → must become "Title"
- "Description" or "Product Description" → must become "Body (HTML)"
- "Price" or "Retail Price" → must become "Variant Price"
- "SKU" or "Item Code" or "Part Number" → must become "Variant SKU"
- "Brand" or "Manufacturer" → must become "Vendor"
- "URL" or "Slug" or "Product ID" → must become "Handle"
- "Category" or "Product Type" → must become "Type"
If "Handle" is missing entirely, you can use the split or merge features to build it — for example, by lowercasing the Title column. Alternatively, leave it blank and let Shopify generate handles automatically on import.
Sell Custom Apparel — We Handle Printing & Free ShippingRename Columns for Shopify Import
Open the CSV Column Mapper and upload your product CSV.
- Click the edit icon on each column to rename it to the exact Shopify column name
- Rename "Product Name" to "Title," "Description" to "Body (HTML)," and so on
- Delete any columns Shopify does not need — extra internal fields, notes columns, etc.
- Drag columns into the order Shopify's template uses (Handle first, then Title, Body, Vendor, Type, Tags, Published, followed by variant fields)
- Download the updated CSV
The result is a CSV you can upload directly to Shopify Admin > Products > Import.
Multi-Variant Products: How Handle Works
Shopify uses the Handle column to group variants of the same product together. A product with three sizes — small, medium, large — is represented as three rows in the CSV, all sharing the same Handle value. Only the first row has the Title, Description, Vendor, and other product-level data. Subsequent rows for the same product have the same Handle but only fill in variant-level columns (Variant Price, Variant SKU, Option1 Value, etc.).
If your source data has one row per product with variants in separate columns, you will need to restructure it before import. The Column Mapper handles the column naming and reordering, but converting wide variant data to Shopify's long format (one row per variant) requires restructuring the data itself, not just the columns.
For simple single-variant products or products where each row represents one distinct item, the Handle just needs to be unique per product and URL-safe.
What to Check After Upload
Shopify shows an import summary after upload. Common errors and what they mean:
- "Column not recognized" — a column name does not match Shopify's expected names. Go back and rename it exactly.
- "Invalid value for Published" — the Published column should contain TRUE or FALSE, not Yes/No or 1/0.
- "Price must be a number" — the Variant Price column contains currency symbols ($) or commas. Clean those out before import.
- Products imported but no images — the Image Src column contains local file paths instead of public URLs. Images must be publicly accessible.
Running the CSV through the Column Mapper first eliminates the column name errors. Data value errors (symbols in price, wrong Published values) are best fixed with the CSV Sanitizer before or after the column mapping step.
Try It Free — No Signup Required
Runs 100% in your browser. No data is collected, stored, or sent anywhere.
Open CSV Column MapperFrequently Asked Questions
Does the column order matter for Shopify import?
Shopify maps by column name, not position, so order does not affect whether the import works. But matching Shopify's template order makes it easier to spot missing columns before uploading.
Can I import products with images using a CSV?
Yes. The Image Src column should contain a publicly accessible URL for each product image. Images hosted locally or on your computer will not work — they need to be uploaded somewhere accessible first.
What happens to columns Shopify does not recognize?
Shopify ignores unrecognized columns. They do not cause errors, but the data in them is not imported. Delete them before import to keep things clean.

