Import Products into Shopify via CSV
How to import products into Shopify using a CSV spreadsheet.
Shopify lets you bulk import products via a CSV file. Useful when migrating from another platform or adding a large product catalogue.
1. Get the CSV template
Download Shopify’s official sample CSV from Products > Import > Download sample CSV. Use it as your starting point — don’t build one from scratch.
2. Required CSV columns
Column headers are case-sensitive. The import will fail if any required header is missing or misspelled.
| Column | Notes |
|---|---|
| Handle | Unique URL slug. Same handle = same product (multiple rows for variants). |
| Title | Product name. Only needed on the first row per product. |
| Body (HTML) | Product description. |
| Vendor | Brand or supplier name. |
| Type | Product type/category. |
| Tags | Comma-separated. |
| Published | TRUE or FALSE. |
| Option1 Name | e.g. Size, Color. Leave blank if no variants. |
| Option1 Value | e.g. Small, Red. |
| Option2 Name / Value | Second variant option if needed. |
| Option3 Name / Value | Third variant option if needed. |
| Variant SKU | Stock keeping unit. |
| Variant Grams | Weight in grams (integer). |
| Variant Inventory Tracker | shopify or leave blank. |
| Variant Inventory Qty | Stock quantity. |
| Variant Inventory Policy | deny (block purchase) or continue (allow oversell). |
| Variant Fulfillment Service | manual in most cases. |
| Variant Price | Sell price (no currency symbol). |
| Variant Compare At Price | Original price for sale display. |
| Variant Requires Shipping | TRUE or FALSE. |
| Variant Taxable | TRUE or FALSE. |
| Variant Barcode | Barcode / ISBN / UPC. |
| Image Src | Full URL to product image. |
| Image Alt Text | Alt text for the image. |
The only extra column you can safely add is Collection — everything else will break the import.
3. File requirements
- Format:
.csvonly - Encoding: UTF-8 with LF line endings (not Windows CRLF)
- Max file size: 15 MB
When editing in Excel, save as CSV UTF-8 (comma delimited). Google Sheets exports UTF-8 by default.
4. Products with variants
Each variant gets its own row. Only the first row needs Title, Body, Vendor etc. Subsequent rows for the same product share the same Handle and leave those fields blank.
Example — a t-shirt in two sizes:
1
2
3
Handle,Title,Option1 Name,Option1 Value,Variant Price
my-tshirt,My T-Shirt,Size,Small,29.00
my-tshirt,,Size,Large,29.00
5. Run the import
- Go to Products > Import
- Click Add file and select your CSV
- Optional: uncheck Publish new products to all sales channels if you want to review first
- Optional: check Overwrite products with matching handles to update existing products
- Click Upload and continue
- Review the summary, then click Import products
Shopify will email you when the import is complete.
6. Troubleshooting
- Import failed immediately → likely a missing or misspelled column header
- Products imported but no images → check image URLs are publicly accessible
- Variants duplicated → check handles match exactly across rows
- Encoding errors → re-save as UTF-8 (avoid Excel’s standard CSV format)
See Shopify’s common import issues for a full error reference.