← ListingBrief AI

Shopify Product CSV Template: Every Column, and How to Fill It

The Shopify product CSV template is the sample file Shopify offers on its help page for importing products. It is a spreadsheet with one header row and one row per product, variant or extra image. To use it, download the sample, delete the two example products, keep the header row exactly as it is, and add your own rows. For new products the only column Shopify requires is Title. Everything else either has a default or can stay blank, and a few of those blanks are where imports go wrong. This guide walks through every column you are likely to fill, the rules Shopify applies to each, and the mistakes that cost sellers an afternoon.

All Shopify behaviour quoted here comes from Shopify’s own help centre, as of October 2026. Shopify renames admin buttons and columns from time to time, so check the help page if something has moved.

Where to get the Shopify product CSV template

There are two ways to get a template, and the second is usually better:

  1. Download the sample file. Shopify’s page Using CSV files to import and export products links to a sample product CSV. Shopify notes that it “contains two example products, and include some variants”, and asks you to remove all the example products before importing your own.
  2. Export from your own store. In your Shopify admin, go to Products and click Export. The file you get has the exact column set your store uses, including your markets and any product metafields you have defined. If you already have even one product, this is the safest template, because every header is already spelled the way your store expects.

Open either file in Google Sheets, Numbers or Excel. If you use Excel, Shopify reminds you to check the export settings so the saved file still uses commas between values. When you are done, save it as UTF-8 with LF-style line endings, which is the format Shopify asks for.

The required columns, and the ones that depend on each other

Shopify keeps the required list short:

The catch is that some columns only make sense together. Shopify’s own example: if you update a variant column such as SKU or Weight value (grams), you must also include Option1 name and Option1 value. Leave the option columns out and Shopify creates a new default variant and deletes the existing ones. That single rule is behind most “my variants disappeared” stories.

Likewise, the four packed product columns (length, width, height and their unit) are all or nothing. Fill all four or leave all four blank; a file with only some of them filled fails to import that product.

Every column in the Shopify product CSV template

This is the current column set from Shopify’s help page, in the order you are most likely to care about. Defaults are what Shopify uses when the cell is blank.

Column What goes in it If left blank
Title Product name customers see Required
URL handle Lowercase words joined by hyphens, no spaces Built from the title
Description The product description, HTML allowed Empty description
Vendor Brand, or your store name if you make it Empty
Product category A category from Shopify’s Standard Product Taxonomy, as a breadcrumb or ID No category
Type Your own free-form label Empty
Tags Comma-separated keywords, up to 250 No tags
Published on online store true or false true
Status active, draft or archived active if the column is absent
Option1 name / value For example Size and Small Default variant
SKU Your stock code Empty
Price Number only, such as 9.99 0.00
Compare-at price The original price, if on sale Empty
Charge tax true or false true
Inventory quantity Stock on hand, single-location stores only 0
Continue selling when out of stock deny or continue deny
Weight value (grams) Whole grams, no unit 0
Requires shipping true for physical goods true
Fulfillment service manual unless you use a service manual
Product image URL A public image link No image
Image alt text Short description of the image Empty
SEO title Up to 70 characters Product title
SEO description Up to 320 characters Product description

There are more columns for markets, barcodes, gift cards, Google Shopping and metafields. If you do not use those features, you can leave them out of a new-product file.

The columns worth slowing down for

Variants and extra images: one product, several rows

A product with no variants takes one row. A product with variants or several images takes several rows that share the same URL handle. Shopify describes the layout like this:

  1. On the first row, fill in every product field plus the first image URL.
  2. On each following row, enter the same URL handle, skip Title, Description, Vendor and Tags, and fill in that variant’s options, price, SKU and its image.
  3. For an extra image with no variant of its own, enter just the handle and the image URL.

A product can have up to three options, such as Size, Color and Material. For a product with no real options, Shopify’s column notes use Default Title for the option.

Changing an Option value on an existing product deletes its variant IDs and creates new ones. Shopify warns that this can break apps that track variants by ID, such as reviews, inventory sync or a marketplace connector. If you only need to change a price or SKU, leave the option values exactly as they are.

A CSV is plain text, so it cannot carry an image. Each image cell holds a public URL, and Shopify downloads the file during the import. If your photos only live on your computer, upload them first to Content, then Files in your Shopify admin (or another image host) and copy each link. Two Shopify notes worth knowing:

If the product CSV file was produced by exporting your products from Shopify, then you don’t need to do anything because your images are already on your website.

And if you link to an image already in Files, Shopify downloads it again and keeps a second copy under products, which is expected behaviour.

Adding products to a collection from the CSV

The template has no collection column, and Shopify says you cannot add arbitrary columns. The one exception is a column headed Collection, which you can add anywhere in the file. Put a collection name in it and the product joins that collection, or the collection is created if it does not exist. Each product can join one collection this way, and the column is never included when you export.

Older column names you may still see

Plenty of CSV files in the wild, including ones made by apps and other platforms, use Shopify’s older headers. Shopify says it “maintains backward compatibility with older column names”, so these still import. If you see them, this is how they line up:

Older header Current header
Handle URL handle
Body (HTML) Description
Published Published on online store
Variant SKU SKU
Variant Grams Weight value (grams)
Variant Price Price
Variant Compare At Price Compare-at price
Variant Inventory Qty Inventory quantity
Variant Inventory Policy Continue selling when out of stock
Variant Taxable Charge tax
Image Src Product image URL

Do not mix an old and a new name for the same field in one file. Shopify gives one example outright: a file with both a Barcode and a Barcodes column fails to import.

How to import the finished template

  1. From your Shopify admin, go to Products and click Import.
  2. Click Add file and choose your CSV.
  3. Untick Publish new products to all sales channels if you only want them on your online store.
  4. Tick Overwrite products with matching handles only if you are updating existing products on purpose.
  5. Click Upload and continue, review the summary, then click Import products.

Shopify sends a confirmation email once the file is uploaded. A product CSV cannot exceed 15 MB, so split a large catalogue into several files.

Be careful with the overwrite option. With it ticked, Shopify says a blank cell in a non-required column overwrites the stored value with a blank. A column you leave out entirely is left alone. So when you update, delete the columns you are not changing rather than leaving them empty. Our guide to the Shopify bulk editor covers that round trip in more detail, including when the in-admin editor is the quicker tool.

Filling the text columns for many products

The template handles structure. It does nothing for the slowest part of a large import: writing a title, a description, tags and SEO fields for every row. Copying a supplier’s text into the Description column is fast, but every other shop selling that product has the same text.

ListingBrief AI is one way to fill those columns. You paste rough notes for each product, one per line in bulk mode, and it writes the title, description, tags, SEO title, SEO description, product type and suggested options. Each finished batch downloads as a CSV laid out in Shopify’s product columns, with the handle built from the title and the description wrapped as HTML. A few honest limits:

You can try the description step on its own with the free Shopify description generator, no signup needed. An account gets 5 free generations a day, and pricing covers larger catalogues. For help with the SEO fields specifically, see these Shopify meta description examples.

When the manual way is enough

A CSV is worth the setup when you have dozens of products or are moving a catalogue from another platform. It is more work than it saves when:

A short checklist before you click Import

Get those right and the Shopify product CSV template does what it promises: a whole catalogue in one upload, with nothing to retype.

Try ListingBrief AI free → Generate an Etsy or Shopify listing from your product notes — 5 free a day, no credit card.

v216 · Oct 2026