How to Mass Import Products to Shopify Using a CSV
TL;DR
Shopify's CSV import lets you add hundreds of products at once - just format a spreadsheet with the right columns and upload it. If you're importing from supplier invoices, Ohavah generates the CSV for you automatically. Upload an invoice, download the CSV, import to Shopify.
Turn supplier invoices into Shopify products instantly
Skip the manual data entry. Upload a PDF, get ready-to-import products.
If you run a boutique or retail store on Shopify, you've probably hit the point where adding products one by one just doesn't cut it. Whether you're onboarding a new vendor with 200 SKUs or restocking for the season, bulk importing via CSV is the fastest way to get products into your store.
This guide walks you through the entire process - from formatting your spreadsheet to hitting "Import" in Shopify admin.
Why Use CSV Import?
Shopify's admin UI is great for managing a handful of products, but it becomes painful when you need to:
- Add dozens (or hundreds) of products at once
- Create multiple variants per product (size, color, etc.)
- Set consistent pricing, tags, and inventory across a catalog
A CSV file lets you define all of this in a single spreadsheet and upload it in one shot.
Step 1: Download Shopify's CSV Template
Start with Shopify's own template so your columns are correct from the beginning:
- Go to Shopify Admin > Products
- Click Import in the top-right corner
- Download the sample CSV template
This gives you the exact column headers Shopify expects: Handle, Title, Body (HTML), Vendor, Type, Tags, Option1 Name, Option1 Value, and so on.
Step 2: Understand the Row Structure
Each row in the CSV represents one variant. Products with multiple variants span multiple rows sharing the same Handle. For example:
| Handle | Title | Option1 Name | Option1 Value | Option2 Name | Option2 Value | Price |
|---|---|---|---|---|---|---|
| classic-tee | Classic Tee | Size | Small | Color | Black | 29.99 |
| classic-tee | Size | Medium | Color | Black | 29.99 | |
| classic-tee | Size | Large | Color | Black | 29.99 | |
| classic-tee | Size | Small | Color | White | 29.99 |
Notice that Title only appears on the first row for each handle - subsequent rows inherit it.
Step 3: Fill In Your Product Data
For each product, make sure you include:
- Handle - a URL-friendly slug (e.g.,
classic-tee) - Title - the display name
- Body (HTML) - product description (HTML is fine)
- Vendor - the brand or supplier name
- Type - product category
- Tags - comma-separated tags for filtering
- Variant Price - the selling price
- Variant SKU - your internal SKU
- Variant Inventory Qty - starting stock count
Step 4: Upload to Shopify
- Go to Products > Import
- Choose your CSV file
- Optionally check "Overwrite existing products that have the same handle" if you're updating
- Click Upload and preview
- Review the summary, then confirm
Shopify will process the file and show you any errors (missing required fields, invalid values, etc.).
Common Pitfalls
- Encoding issues - Always save as UTF-8 CSV. Excel sometimes uses other encodings that break special characters.
- Missing handles - Every variant row needs a handle, even if the title is blank.
- Image URLs - The
Image Srccolumn must contain publicly accessible URLs. Local file paths won't work. - Variant limits - Shopify allows up to 100 variants per product (3 options with up to ~33 values each).
