Product CSV Builder & Fixer for Shopify
One row per product in, import-ready rows for every variant out, checked and logged.
Free preview.
- Free preview: the summary and the check’s verdict for the whole result, with the first rows of the new CSV, of the check’s list and of the change log (up to 10 each).
- Locked until you unlock it: download.
- Unlock: Premium pass, ₹799 for 30 days, a one-time payment that never renews.
Ways to unlock shows how to get the full result.
Printing this result is locked in the free preview.
Your sheet or product CSV
Columns and options
What each column of your sheet is used as. A column used as an option holds a list (“S, M, L”); every combination becomes a variant.
| Column | Example | Use as | Option name |
|---|
{sku} {handle} {title} {option1} {option2} {option3} {option1:3} {n} — empty: only rows that make one variant get a SKU, their own from the SKU column.
What to fix
Columns Shopify doesn’t know
Shopify’s help: “The Collection column is the only column that you can add to the CSV file that doesn’t break the format.”
| Column | Example | Do this |
|---|
Images and file size
Add images from a list
Upload the photos first (Content › Files in Shopify, or any image host) and use links that open the image itself.
The new file
What changed
Rows of the new file
Check of the new file
Change log
| Row | Your row | Handle | Column | Before | After | Change |
|---|
MySmartCoPilot is not affiliated with or endorsed by Shopify. The files follow Shopify’s public help pages; check a few imported products in Shopify admin before importing the rest.
Locked in the free preview. Opens the ways to unlock this result.
Locked in the free preview. Batch runs unlock with a pass.
Locked in the free preview. Query results unlock with a pass.
About the Product CSV Builder & Fixer for Shopify
A product with 3 sizes and 4 colours is 12 rows in a Shopify product CSV, and every one must repeat the handle, leave the title empty and spell each option the same way. Here you keep a simple sheet instead — one row per product, with Size, Colour or any other option column holding a list such as “S, M, L” — and the builder writes the rows: every combination of the option values, SKUs from a pattern, weights in whole grams, prices as plain numbers, the product’s details on its first row and its images in order. Rows that share a handle or a title become one product, so a sheet with one row per variant, each with its own price, SKU and stock, works too, as does one with the title only on each product’s first row and its variants below it.
The same engine fixes a product CSV that the Product CSV Checker for Shopify found problems in: column names, the encoding, prices, weights, handles, units and rows a sort pulled apart are written again, and anything that needs your decision is left and listed. It also adds image links from a list and splits big files into parts under Shopify’s 15 MB limit without cutting a product in two. Every result comes with a preview, the checker’s verdict on it and a change log. Nothing is uploaded and nothing connects to your store: you import the file yourself. MySmartCoPilot is not affiliated with or endorsed by Shopify.
How to use it
- Load your sheet or CSV: an Excel or OpenDocument workbook, a CSV or TSV file, or rows pasted from a spreadsheet. Try a simple sheet and Try a CSV with mistakes show both ways of working, and the simple-sheet template downloads with or without a pass.
- The page tells a simple sheet (Build) from a Shopify product CSV (Fix); switch if it guessed wrong.
- To build, check what each column is used as (Title, an option such as Size, Price, SKU, Weight, Images…), the option names, the SKU pattern and the defaults for status, stock and shipping. To fix, choose the fixes (every safe one is on) and what happens to columns Shopify doesn’t know.
- If you like, add image links from a list (a handle or SKU, then the link) and split the result into files under 15 MB or with a set number of products.
- Press Build the CSV or Fix the CSV and look at the preview, the checker’s verdict and the change log. Without a pass the result stays a free preview with its first rows; the files unlock with a Premium pass.
- Import the file in Shopify under Products › Import, with “Overwrite products with matching handles” only when you are updating products that are already in your store.
Examples
Linen Shirt · Size: S, M, L · Colour: White, Sage · SKU LS · Weight (kg) 0.25 · Price 34.00
6 variant rows — LS-S-WHITE, LS-S-SAGE, LS-M-WHITE… — with Option1 name Size, Option2 name Colour, 250 grams each, and the title and description on the first row
Three rows titled “Tee” with Size S, M and L, each with its own price and SKU
One product with three variants that keep their own prices and SKUs
linen-shirt split up by a sort · Price “$34.00” · Weight “0.26 kg” · handle “Canvas Tote”
Rows back under their product · 34.00 · 260 · canvas-tote on both rows — each change in the change log
Split: files up to 15 MB
Files that each start with the column names, hold whole products and stay under 15 MB
Common uses
- Listing a new range from a supplier’s price list without typing a row per variant.
- Fixing an export before re-importing it, after the Checker found problems.
- Adding product photos from a list of image links to an existing export.
- Cutting a large catalogue into files that import under 15 MB.
What the builder writes
- Options: each column used as an option becomes Option1, Option2 or Option3 (up to three, Shopify’s limit), named after its heading. Values are split at commas, semicolons, vertical bars and line breaks, and every combination becomes a variant, the first option outermost: S/White, S/Sage, M/White… A product without options gets Option1 name “Title” and Option1 value “Default Title”.
- SKUs: a row that makes one variant keeps its SKU. A row that makes several gets SKUs from the pattern, in capitals with dashes (accents dropped, letters of other scripts kept):
{sku}the row’s SKU,{handle},{title},{option1}–{option3},{option1:3}for the first three letters,{n}for the variant’s number. Two variants with the same SKU are reported. - Weights: a “Weight” column is converted from the unit you choose (kg, lb, oz or g) to whole grams, as Shopify’s help asks (“5.125 kg → 5125”; “4 lb → 1814”), with 1 lb = 453.59237 g and 1 oz = 28.349523125 g; the unit is kept for display.
- Prices and stock: prices without currency symbols or thousands separators; a quantity sets the inventory tracker to shopify (unless you switch that off), with deny or continue for selling at zero stock.
- Details: the title, description, vendor, type, tags, category, status, SEO fields and collection go on the product’s first row; a plain-text description becomes HTML paragraphs.
- Images: every link of the product’s rows, each once, on the rows in order with its position (Shopify takes up to 250).
- Columns: only the columns that have values are written, so a file you import to update products doesn’t blank out columns you never filled.
What the fixer changes, and what it leaves
The fixer changes only what has one safe answer, and logs each change with its row: column names written exactly as Shopify writes them (and older names renamed if you ask), UTF-8 with commas, characters saved in the wrong encoding repaired, prices as plain numbers, quantities as whole numbers, weights in whole grams, TRUE and FALSE, status, deny or continue, units and fulfillment service handles, handles with letters, numbers and dashes (another product’s handle is never taken), rows whose handle differs only in capitals or spaces joined to their product, each product’s rows put together with the title row first, tags once each, image links with %20 for spaces, empty and repeated rows removed, and Option1 “Title / Default Title” for products without variants when the file has no Option1 columns.
It leaves what only you can decide, and the check of the new file lists it: two variants with the same options, a variant without one of its option values, a barcode Excel turned into scientific notation (its digits are gone), a compare-at price below the price, a category Shopify doesn’t have.
Splitting files under 15 MB
Shopify’s help: “Your product CSV can’t exceed 15 MB”, and a file that errors or stalls can be split and imported one part at a time. The split keeps every row of a product in the same file and starts each file with the column names, so the parts import like the whole file. Choose a size (15 MB is read as 15,000,000 bytes, the smaller reading) or a number of products per file. A single product bigger than the limit gets a file of its own and a warning.
Limitations
- No store connection: it doesn’t read your store or sync products, which needs a Shopify app; you import the file yourself.
- Products only: orders, customers, stock per location and metafield definitions aren’t made here, and converting another shop system’s product export into Shopify’s columns isn’t part of this tool.
- Files up to 80 MB are fixed in this browser; split bigger ones in your spreadsheet first. A product can have up to 2,048 variants, Shopify’s limit.
- Options come from up to three columns. A value that itself contains a comma needs a row of its own (one row per variant).
- The fixer changes only what has one safe answer; the check of the new file lists the rest for you.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot. The spreadsheet reader (SheetJS) and the ZIP writer download from this site once, only when you need them. Your sheet and files stay on your device and are never uploaded.
Frequently asked questions
What do I get without a pass?
Without a pass, Product CSV Builder & Fixer for Shopify shows the summary and the check’s verdict for the whole result, with the first rows of the new CSV, of the check’s list and of the change log (up to 10 each). Until you unlock it, the result can’t be downloaded. A Premium pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.
Is my sheet uploaded?
No. The sheet is read and the new file written in your browser. Nothing is sent to MySmartCoPilot, to Shopify or to anyone else.
Will Shopify accept the file?
The rows follow Shopify’s format and pass the same checks as the Product CSV Checker for Shopify, and the page shows that check. Shopify can still refuse values only it knows about, such as a category name its taxonomy doesn’t have or a metafield that isn’t defined in your store. Import a few products first and look at them in Shopify admin.
Does it change products that are already in my store?
Only when you import the file with “Overwrite products with matching handles” on; then the columns in the file replace the store’s values. A built file has only the columns you filled, so the others keep their values; a fixed file keeps your file’s columns. Shopify’s help warns that changing option values gives variants new IDs.
How are the SKUs made?
From the pattern under Build: by default {sku}-{option1}-{option2}-{option3}, so the row’s SKU LS with Size M and Colour Sage becomes LS-M-SAGE. Empty parts leave no double dashes. Rows that make one variant keep their own SKU.
Can it fix a file that isn’t UTF-8?
Yes. The file is read in the encoding it was saved in (Windows-1252 unless you choose another), and the new file is always UTF-8 with commas and LF line breaks, as Shopify’s help asks (“save your CSV file in UTF-8 format using LF-style linefeeds”).
Is this tool made by Shopify?
No. MySmartCoPilot is not affiliated with or endorsed by Shopify. Shopify is named only to describe the files it makes; the rules come from Shopify’s public help pages.