catalog.csv

SKU Generator (Free) – Shopify, WooCommerce & Excel

Build variant SKUs in this tab from a prefix, a short product name, color and size, and a padded number. Paste a list or drop a Shopify product CSV. Blank Variant SKU cells are filled. Existing SKUs stay put. Nothing is uploaded.

Before you import, run the file through the free Shopify CSV validator. Handles and option columns still have to be right. Shopify does not match products by SKU.

SKU pattern

Separator
Pattern NAME-OPT-### — Updates as you edit the pattern. Nothing is uploaded.

Bulk list or CSV

One product per line. Put options after a vertical bar or a tab: Classic Cotton Tee | Black | Medium. Lines with no bar are name only. A sequential number makes each row unique; turn it off, or paste SKUs you already use, to see duplicate highlighting.

How the code is built

SKU best practices

What makes a good product SKU?

Keep it short and stable: letters, numbers, and a single separator. Identify the product and the variant (color, size), not the price, a sale name, or a date. Use ASCII characters so the code survives Excel, barcodes, and imports. Once a SKU is on an order, a label, or a shelf, do not reuse it for a different item.

How should color, size, and other options appear in a SKU?

Give every variant its own SKU. Put option values in their own fields (Option1 Value, Option2 Value, or columns after the product name) so Black becomes BLK and Extra Large becomes XL, instead of burying them in the title. A shirt in three sizes needs three SKUs.

Will this overwrite SKUs I already assigned?

No. On a Shopify product CSV the page finds Handle or URL handle, Title, Option1 Value, Option2 Value, and Variant SKU (or SKU). It fills Variant SKU only when the cell is blank and leaves any existing SKU as it was typed. Extra image rows with no title, no option values, and no price are left blank so an import does not create a fake variant.

How are duplicate SKUs handled?

Codes are compared without regard to letter case, against SKUs already in the file, against any list you paste, and against codes generated earlier in the same run. Collisions are highlighted. With auto-dedupe on, a numeric suffix is added until the code is free. Turn auto-dedupe off to inspect collisions without changing them. Shopify will import duplicate SKUs, but inventory tools often update the wrong variant. WooCommerce search can return two products. Unique is the safer default.

How do I use the generated SKUs in Shopify?

Export your products to CSV, upload that file here, and download the Shopify CSV. Blank Variant SKU cells are filled and every other column is preserved, with normal CSV quoting and UTF-8. Import it from Shopify admin. Shopify matches products by Handle (URL handle), not by SKU, so do not delete the handle or the option columns. Check the file with the free Shopify CSV validator before you import.

How do I add these SKUs in WooCommerce?

On a simple product, open the product, go to Inventory, and paste the SKU. For a variable product, set a SKU on the parent if you want one, then open each variation and set that variation's own SKU. To update in bulk, use Products, Export, put the codes in the SKU column, and import the CSV. WooCommerce does not require SKUs, but stock sync and most plugins match on them.

How do I use this with Excel?

Paste a product list here or upload a CSV. In Excel, use File, Save As, CSV UTF-8 (Comma delimited) before uploading. A .xlsx workbook is not read. Download the generic CSV (name, options, sku) and open it with Data, From Text/CSV, encoding UTF-8, delimiter comma. Format the SKU column as Text before you paste values into an existing sheet so Excel does not turn MAR-10 into a date or a long number into scientific notation.

Does the spreadsheet leave my browser?

No. The generator runs entirely in this tab. There is no upload, no account, and no request that sends your file. Download the CSV when you are done. Closing the tab discards the list.

Which separator and letter case should I pick?

A hyphen is the usual choice and is safe in Shopify and WooCommerce. An underscore also works. No separator makes a shorter code that is harder to read. Uppercase keeps barcodes and search consistent. Turn it off only if the prefix must keep the case you typed. Avoid spaces, slashes, and characters that Excel or a barcode font will change.

How are the abbreviations chosen?

A fixed list covers common colors and sizes: Black is BLK, White is WHT, Navy is NVY, Small is S, Extra Large is XL, and similar codes. Any other phrase uses the first letters of the significant words, up to the length you set. Stop words such as the and for are skipped. The live preview shows the exact code before you generate the list. Lengthen the name or option setting if two products collapse to the same letters, and keep auto-dedupe on.

Need the file cleaned for you?

If the catalog is past a SKU fill — broken handles, missing option columns, a supplier sheet that is not a Shopify CSV — catalog.csv maps it to an import-ready product file. File-only, no store login. Free 2-row test, then you pay only after it imports.

Hire a Shopify CSV cleanup