A Shopify bulk product upload with a CSV file is the fastest way to add hundreds or thousands of products to your store. It is also the easiest way to break your catalog if one column is wrong. I used this method to upload 2,061 products and more than 3,300 variants for a home décor retailer, so this guide covers the exact steps, the current template columns and the mistakes to avoid.

Key Takeaways

  • Download Shopify’s sample CSV and keep its column names exactly as they are.
  • Only Title is required for new products; variants also need a URL handle and Option columns.
  • Images must be public https:// URLs, one row per image.
  • Always test a small batch of 5–10 products before importing the full file.
📑

Free presentation for students & teachers

14 slides · PowerPoint (.pptx), opens in Google Slides & Keynote · free to use with credit

Download slides

📦

Real example

See how I uploaded 2,061 products and 3,300+ variants to one Shopify store

Read the case study →

When to Use CSV for Shopify Product Uploads

CSV import is ideal when you have many products with consistent data: a supplier spreadsheet, a migration from WooCommerce or another platform, or a seasonal catalog update. Manual entry is still better for a handful of complex products with custom descriptions. Most real projects use both: CSV for the bulk, manual fixes for the exceptions.

Shopify product upload case study: 2,000+ products uploaded and organised for a home décor retailer
A real bulk upload project: 2,061 products, 3,300+ variants and 80+ brands for one Shopify store.

Step 1: Download Shopify’s CSV Template

In Shopify admin, go to Products → Import and download the sample CSV. Use it as your template and never rename the column headers. Shopify updated its column names recently, so older templates you find online may use outdated names such as “Image Src”. The current file uses names like URL handle, Product image URL and Variant image URL.

Do not add your own extra columns (except Collection), because unsupported columns break the format.

📄

Free Shopify product CSV template (with example rows)

Uses Shopify’s current column names and includes a product with 3 size variants and 2 images, plus a single product with no variants. Open it in Google Sheets or Excel, replace the example data and image links with your own, and keep the header row as it is.

Download CSV

Prefer a blank file? Download Shopify’s official product CSV template, or read Shopify’s product CSV guide.

Step 2: Understand the Key Columns

ColumnWhat it doesTip
TitleProduct nameThe only required column for new products
URL handleUnique product identifier, used in the URLRequired for variants and updates. Keep it short and lowercase with hyphens
DescriptionProduct description (HTML allowed)Write for customers first, then add keywords naturally
Vendor, Type, TagsBrand, product type and tagsUse consistent spelling so filters and collections work
Option1 name / valueVariant option such as Size: SmallUp to 3 options. Use “Default Title” if there are no variants
SKU, Price, InventoryVariant detailsEach variant row needs its own values
Product image URLPublic image linkOne row per image, with Image position starting at 1
Image alt textAccessibility and SEO textKeep under 125 characters
Statusactive, draft or archivedImport as draft first if you want to review before going live

Step 3: Add Variants Correctly

Variants are the most common source of problems. Put the full product details and the first image in the first row. For each additional variant, add a new row with the same URL handle, leave Title, Description, Vendor and Tags empty, and fill in the option value, SKU, price and inventory.

If you leave out the Option1 columns, Shopify creates a single default variant and deletes the existing ones, so double-check every variant row.

Step 4: Prepare Product Images

  • Images must be publicly accessible over https://. Upload them to Content → Files in Shopify, or another public host, and paste the URLs.
  • Add one row per image under the same URL handle, with Image position 1, 2, 3 and so on.
  • Use Variant image URL to link a specific image to a colour or style.
  • Avoid file names ending in _thumb, _small or _medium.
  • Write descriptive alt text for every image.

Step 5: Save the File Properly

Save as a UTF-8 CSV. If you work in Excel, make sure it exports comma-separated values; Google Sheets (File → Download → CSV) usually avoids encoding issues with special characters like é or ™.

Step 6: Test With a Small Batch

Before importing hundreds of products, import 5 to 10 as draft. Check titles, variants, prices, images and collections on the live product pages. Fixing a template mistake on 10 products takes minutes. Fixing it on 2,000 can take days.

Step 7: Import and Verify

  1. Go to Products → Import and upload your CSV.
  2. Tick Overwrite products with matching handles only if you are updating existing products. Blank cells will overwrite existing values with blanks.
  3. Preview, then import. Shopify emails you when it finishes.
  4. Spot-check products from each category, then switch them from draft to active.

For big catalogs, import in batches (for example 200–300 products at a time) and track each batch in a sheet. That is how I organised the 2,061-product project into 10 batches.

Common CSV Import Errors and Fixes

ProblemCauseFix
Variants disappearedOption1 columns missingAlways include Option1 name and value
Import error on a rowRelated columns partly filledFill all related columns or leave them all empty
Images not showingPrivate or changed image URLsUse public https URLs and re-check after exports
Special characters brokenWrong file encodingSave as UTF-8 CSV
Duplicate productsDifferent handles for the same productUse one consistent URL handle per product

Frequently Asked Questions

How do I bulk upload products to Shopify?

Download Shopify’s sample CSV from Products → Import, fill in your products using the same column names, add image URLs and variants, then import the file. Test with a small batch first.

What columns are required in a Shopify product CSV?

Only Title is required for new products. If you add variants, URL handle is also required, along with Option1 name and value for each variant.

Can I upload product images with a CSV?

Yes. Add public https:// image URLs in the Product image URL column, one row per image, with Image position to set the order.

How many products can I import at once?

Large files work, but importing in batches of a few hundred products makes it much easier to check for mistakes.

Where can I download a Shopify product CSV template?

In Shopify admin, go to Products → Import and download the sample CSV, or use the free example template in this guide. It uses Shopify’s current column names and includes example variant and image rows you can copy.

Can a virtual assistant do Shopify bulk uploads for me?

Yes. A VA can clean your supplier data, build the CSV, upload images and check every batch. I offer Shopify product upload services.

Conclusion

A Shopify bulk product upload with CSV saves hours, as long as you follow the template, handle variants carefully, use public image URLs and test a small batch first. Work in batches, keep a tracker and your catalog will stay clean as it grows.

🤝

Shopify Product Upload Services

Want your catalog uploaded for you? See my Shopify product upload service and the 2,061-product case study.

Shopify Bulk Product Upload with CSV: 7 easy steps + the 2026 template

📌 Save this guide for later

Pin it to your Pinterest board so you can find it again when you need it.

Save to Pinterest

Rahana Islam, virtual assistant and e-commerce specialist

About the Author

Rahana Islam

Virtual Assistant & E-commerce Specialist with 7+ years of remote experience supporting businesses in the United States, Denmark and worldwide with WordPress, Shopify, Amazon, Walmart and eBay operations. Level 2 Fiverr seller with a 5.0★ rating from 167 reviews, an NSDA-certified trainer & assessor and the #1 LEDP earner of Dhaka district.

About me · LinkedIn · Fiverr · Contact

Need Your Products Uploaded?

I upload products by CSV or by hand, with clean variants, images and SEO titles at $5–7/hour.

Request a Free Consultation

Chat on WhatsApp