Shopify Product CSV Generator
Build a product import file with the right columns and variant rows. 100% free, no signup. Everything runs in your browser.
Shopify's product importer wants a very particular CSV: specific column names in a specific order, a handle that follows its own rules, and variant rows that repeat the handle while leaving the product columns empty. Get any of that wrong and the import either fails outright or, worse, succeeds and creates six separate products where you wanted one with six variants. This generator builds the file correctly. Fill in the product once, list your option values, and it produces every variant combination with the right SKU, the right stock fields and the product details on the first row only. It runs in your browser, so your product data and pricing are not uploaded anywhere.
How to use
- Enter the product title. The handle is generated from it automatically, and the handle is what becomes the product's web address.
- Fill in the vendor, type, description and tags. These only need to appear once and the generator puts them on the first row for you.
- Set your options. Size with three values and Color with two produces six variants, and you can see the count update as you type.
- Enter the price, stock and weight. They are applied to every variant, which you can adjust in the file or in Shopify afterwards.
- Download the CSV, then in Shopify go to Products, choose Import, and upload it. Preview the result before confirming.
Why use our shopify product csv generator?
The variant row rule is the part that catches people, and it is not obvious from looking at an exported file. Every row carries the handle and its own option values, but the title, description, vendor, tags and status belong on the first row only. Repeat them on each variant row and the importer treats each row as its own product. This generator enforces that automatically, which removes the single most common reason a bulk import goes wrong.
It also handles the details that quietly cause trouble. Handles are slugified properly, including stripping accents, because Shopify only accepts lowercase letters, numbers and hyphens. SKUs are built per variant rather than repeated, so your inventory stays distinguishable. The download carries a byte order mark so accented product names survive being opened in Excel on the way through. And it warns you when you cross the hundred variant limit rather than letting the import discover it for you.
Who is this tool for?
Anyone launching a shop with more than a handful of products uses a CSV import rather than the admin form, because entering forty products by hand through a web interface is a day of work. This is equally the fastest way to add a new range to an existing shop, or to rebuild a catalogue after a supplier changes their line.
It is also useful as a template generator: produce one correct file, open it in a spreadsheet, and paste in the rest of your catalogue against columns you know are right. Our CSV viewer will open the result to check it before you upload, and the profit margin calculator is worth a visit before you commit to the prices.
Frequently asked questions
It is the product's identifier and the last part of its web address. Every row belonging to the same product must share it, which is how the importer knows six rows are six variants rather than six products. It must be lowercase letters, numbers and hyphens only.
Because that is what the importer expects. Product level information belongs on the first row, and the rows after it only carry the handle, their own option values and their own variant fields. Filling them all in creates duplicate products.
One image URL per product is supported here, on the first row. It has to be a publicly reachable http or https address, since Shopify fetches it during the import. For several images per product, add extra rows carrying only the handle, the Image Src and an Image Position.
One hundred, across a maximum of three options. The counter shows how many your combinations produce and warns you if you go over, which is easy to do with three options of five values each.
If a handle in your file matches an existing product, the import updates that product rather than creating a new one. That is useful for bulk price changes and dangerous if you reused a handle by accident, so preview the import before confirming it.
No, and it is not affiliated with or endorsed by them. It builds a file in the format their importer documents. Nothing you type is uploaded; the CSV is assembled in your browser.

