Generator

Shopify variant CSV generator.

Type your options once and get every combination with its SKU and price, ready to import into Shopify in the columns its own sample file uses. A plain CSV of the matrix works in any spreadsheet.

Shopify's CSV columns checked
The product

Left blank, it is made from the title: classic-tee

Every variant

Before any price change below.

Shopify's file takes weight in whole grams; the tool converts it and keeps your unit for display.

Options

Shopify allows up to 3 options and 2,048 variants per product. Leave an option empty to skip it.

  • S
  • M
  • L
  • XL
Price change per value
  • Navy
  • Sand
Price change per value
    Price change per value

    Add values to set a price change for any of them.

    Press Enter or type a comma after each value. Paste a list split by commas, or one value per line when a value holds a comma.

    SKUs

    Type separators such as - or _ between the parts. Add :4 inside a part to keep 4 characters of it, like {product:4}.

    Barcodes (optional)

    UPC, EAN and ISBN numbers have their check digit tested and go in with Shopify's type in front, like upc:036000291452. Need the bars too? The barcode generator prints them.

    The file
    Column names

    Current matches Shopify's sample file today. Legacy uses the older names (Handle, Variant SKU, Variant Price), which Shopify still imports.

    Your variants

    8 variants from 2 options. Ready to download.

      The plain CSV is the matrix alone (options, SKU, price), so it opens in any spreadsheet and suits any store or marketplace.

      #SizeColorSKUPrice
      1SNavyCLA-S-NAV$25.00
      2SSandCLA-S-SAN$25.00
      3MNavyCLA-M-NAV$25.00
      4MSandCLA-M-SAN$25.00
      5LNavyCLA-L-NAV$25.00
      6LSandCLA-L-SAN$25.00
      7XLNavyCLA-XL-NAV$27.00
      8XLSandCLA-XL-SAN$27.00

      The product, options and SKU pattern are written into the page address, so a shared link opens the same variants. Barcodes stay in the page and are not put in the address.

      SKU mode

      SKU generator for any list of products.

      Paste names from a spreadsheet, a supplier list or your own notes, one per line, and get a SKU for each from the same pattern. Nothing has to be a Shopify variant.

      Your names

      Up to 5,000 lines. Add parts after commas to fill {option1} to {option3}, or paste columns from a spreadsheet.

      Pattern

      Type separators such as - or _ between the parts. Add :4 inside a part to keep 4 characters of it, like {product:4}.

      Your SKUs

      5 SKUs. Every SKU is different.

      #NameSKU
      1Classic Tee, Navy, LargeACM-CLA-NAV-LAR
      2Classic Tee, Sand, SmallACM-CLA-SAN-SMA
      3Canvas Tote, NaturalACM-CAN-NAT
      4Enamel Mug, White, 12 ozACM-ENA-WHI-12O
      5Gift CardACM-GIF

      How the Shopify file is laid out.

      First row: all product fields plus the first image URL. Each following row: the same URL handle, with Title, Description, Vendor and Tags left blank, and that variant's details and image URL filled in. Shopify's sample file follows that pattern, and so does the file from this tool.

      The columns come in the order of Shopify's sample file, checked on October 23, 2026. The sample also has a column for one metafield, Color (product.metafields.shopify.color-pattern); metafield columns differ from store to store, so the tool leaves it out. Linked-to columns, which connect an option to a category metafield, stay blank.

      Shopify wants weight in whole grams with no unit, so 5.125 kg goes in as 5125 and 4 lb as 1814; the tool converts what you type and keeps your unit for display. Prices are written with two decimals. A value with a comma, a quote or a line break is wrapped in quotes, with any quote doubled, so it stays in its column.

      Variant-level columns (e.g. SKU, Weight value (grams)) need Option1 name and Option1 value in the file; without them Shopify creates a new default variant and deletes the existing variants.

      Columns the tool fills, with their older names
      Current nameOlder name
      URL handle Handle
      Title Title
      Vendor Vendor
      Type Type
      Tags Tags
      Published on online store Published
      Status Status
      SKU Variant SKU
      Option1 name Option1 Name
      Option1 value Option1 Value
      Price Variant Price
      Cost per item Cost per item
      Charge tax Variant Taxable
      Inventory tracker Variant Inventory Tracker
      Inventory quantity Variant Inventory Qty
      Continue selling when out of stock Variant Inventory Policy
      Weight value (grams) Variant Grams
      Weight unit for display Variant Weight Unit
      Requires shipping Variant Requires Shipping
      Fulfillment service Variant Fulfillment Service
      Gift card Gift Card
      Variant Barcodes (or Barcodes) Variant Barcode

      Shopify publishes no table pairing the old and new names. These pairs match the column descriptions on the current and the August 2025 versions of its help page.

      Option2 and Option3 follow the same pattern as Option1.

      Shopify's limits, and how the tool handles them.

      • 3 options per product. The tool has three option slots.
      • 2,048 variants per product. Up to that, the tool builds every one; past it, it shows the count and offers no file.
      • Past 100 variants the tool lists Shopify's notes: some third-party themes, theme app extensions, public apps, sales channels and custom apps may not support more than 100 variants; Stocky and the legacy Order Printer don't support more than 100 variants; custom apps on the REST Admin API must migrate to GraphQL for high variant counts.
      • 250 tags per product and up to 20 barcodes per variant.
      • Import files up to 15 MB. Shopify documents no row limit; split a bigger file into several.
      • Beyond the limits: more than 2,048 variants or more than 3 options needs an app, line item properties, or (Plus) Combined Listings.

      The starting product above has 8 variants from 2 options.

      Shopify product CSV

      From the file to your store.

      1. Download the Shopify CSV

        The file is UTF-8 with a comma between columns, one header row and one row per variant, in the order of the preview table. It has 60 columns, the ones in Shopify's sample file today, and the tool fills the ones it knows.

      2. Import it in your admin

        In Shopify, go to Products, then Import, and choose the file. Shopify shows a preview of the first product before anything is saved, so check the options and prices there.

      3. Updating a product? Read this first

        To change a product that already exists, keep its URL handle and tick "Overwrite products with matching handles". A blank cell in a non-required column overwrites the existing value with blank. Changing Option1/2/3 value deletes existing variant IDs and creates new ones.

      4. Add the photos and details in Shopify

        The file leaves images, the description, SEO fields and the product category blank, so add them in the product editor afterwards, or fill those columns in a spreadsheet before you import.

      Data and assumptions.

      Checked
      • The current column list is the header row of Shopify's sample product CSV, and the legacy list is the earlier sample file's, both read on October 23, 2026.
      • Booleans are written as true and false, status as active, draft or archived, and stock policy as deny or continue, the values Shopify's help page lists.
      • Inventory is tracked by Shopify when the box is ticked; fulfillment is manual.
      • Values listed twice in one option are used once. Combinations run with the first option changing slowest, as in Shopify's sample file.
      • A product with no options is written as one variant with Option1 name Title and value Default Title. Shopify's current page and its 2025 version describe this case differently; both forms import.
      • Barcodes are checked with the barcode generator's own rules. UPC, EAN and ISBN numbers get Shopify's type in front (upc:, ean:, isbn:) in the current format and go in plain in the legacy column; anything else goes in as a custom code.
      • Line endings are LF, which Shopify's help page names. The plain CSV uses the same.

      Sources

      Questions about variant files and SKUs.

      How do I make a Shopify product CSV with variants?

      Enter the product title, then each option and its values above. The tool lists every combination and writes them in the columns of Shopify's own sample file: the first row holds the product, and each following row repeats the URL handle with that variant's values, SKU and price. Download it and import it from Products in your admin.

      How many variants can a Shopify product have?

      Up to 2,048 variants and 3 options per product. Past 100 variants, some themes, apps and sales channels may not keep up, and Shopify names Stocky and the legacy Order Printer as two that do not. For more than 3 options or 2,048 variants, Shopify points to an app, line item properties or, on Plus, Combined Listings.

      What is the difference between the current and legacy CSV format?

      Shopify renamed its product CSV columns: Handle became URL handle, Body (HTML) became Description, Variant SKU became SKU, and so on. Exports and the sample file use the new names, and Shopify says it still imports the old ones. Pick Legacy if another tool or an old spreadsheet expects them.

      Why are the title and vendor blank on most rows?

      That is how Shopify's sample file lays out a product with variants. The first row carries the product's own fields; every row after it repeats only the URL handle, so Shopify knows the rows belong together, and fills in that variant's options, SKU, price and stock.

      What makes a good SKU?

      Short, unique and readable by the people who pick and pack: a product code, then the option values in a fixed order, such as TEE-NAV-M. Use letters, digits and a dash, keep the same length for each part, and avoid letters that look like digits (O and 0, I and 1). The tool flags any SKU that repeats.

      Can I make SKUs without building variants?

      Yes. The SKU generator further down takes any list of names, one per line, and makes a SKU for each with the same pattern controls. Put the parts after commas, like "Classic Tee, Navy, Large", to use them as {option1} to {option3}.

      Need the barcodes to go with them?

      Check each UPC or EAN, download the bars and print a sheet of labels for every variant.