SKU Generator for Product Variants

A SKU is a prefix plus one short code per attribute, joined by one separator. 3 categories × 5 colours × 6 sizes gives 90 SKUs, from LST-TEE-BLK-XS to LST-SHT-SND-XXL, each 13–15 characters.

First SKU LST-TEE-BLK-XS 90 SKUs · 3 parent SKUs · 13–15 characters
Duplicates0
Over 16 chars0
Flagged0
Start from:
Sequence, parent SKU and auto-codes
FormatLST-[Category]-[Colour]-[Size]
Excel formula=UPPER("LST"&"-"&A2&"-"&B2&"-"&C2)

Codes in columns A, B, C from row 2. Fill the formula down.

All 90 variants, the full combination of your segment values.

The SKUs are generated and checked in your browser.

How to Generate SKU Numbers in 5 Steps

  1. Choose the segments. List the attributes that make one item different from the next: category, style, colour, size or pack.
  2. Give every value a short code. Two to four characters each. BLK for black, XL for extra large. Leave a code out and the generator takes the first letters.
  3. Pick one separator and one case. A hyphen or underscore between segments, and uppercase throughout.
  4. Add a prefix or sequence only if needed. A prefix separates brands. A sequence is for items whose attributes alone are not unique.
  5. Generate, check, export. Generate every combination, clear the duplicate and length flags, then download the CSV for your inventory system.
SKU count = values in segment 1 × values in segment 2 × … With 3 categories, 5 colours and 6 sizes that is 90. One more colour adds 18 SKUs (3 × 6), so plan the scheme for the catalogue you expect to have.

An Austin, Texas Apparel Brand: 90 SKUs Under 16 Characters

An apparel brand in Austin, TX launches its first range, stored at a 3PL. It uses the house prefix LST. These are the settings loaded in the generator above.

Prefix LST Category TEE, HDE, SHT Colour BLK, WHT, NVY, KHA, SND Size XS, S, M, L, XL, XXL Separator hyphen Limit 16 characters
90SKUs (3 × 5 × 6)
3parent SKUs, 30 children each
13–15characters per SKU
0SKUs over 16 characters
RowCategoryColourSizeParent SKUSKU
1 T-Shirt Black Extra Small LST-TEE LST-TEE-BLK-XS
2 T-Shirt Black Small LST-TEE LST-TEE-BLK-S
6 T-Shirt Black Double Extra Large LST-TEE LST-TEE-BLK-XXL
7 T-Shirt White Extra Small LST-TEE LST-TEE-WHT-XS
30 T-Shirt Sand Double Extra Large LST-TEE LST-TEE-SND-XXL
31 Hoodie Black Extra Small LST-HDE LST-HDE-BLK-XS
61 Shorts Black Extra Small LST-SHT LST-SHT-BLK-XS
90 Shorts Sand Double Extra Large LST-SHT LST-SHT-SND-XXL

Rows 1–6

One colour in every size. That block is what a stocktaker counts on one shelf.

Row 31

The hoodies start, so a sorted export groups each category as a buyer reads it.

With a 3-digit sequence

LST-TEE-BLK-XS-001 to LST-SHT-SND-XXL-090: 17–19 characters, and 90 of 90 SKUs pass 16.

A SKU Is Not a UPC, EAN or Barcode

You create a SKU yourself, for free, today. A retailer asking for a product ID usually wants a GTIN, which is a separate number with its own rules.

IdentifierWho issues itWhere it is usedFormat
SKUYou. No registry, no fee, no application.Internal: warehouse, 3PL, listings, reports.Any letters, digits and separator you choose.
GTIN (UPC, EAN)Built from a company prefix licensed through GS1.External: retailers, marketplaces, point-of-sale scanners.Fixed numeric lengths: GTIN-8, 12, 13 or 14 digits.
Barcode symbolPrinted by you from a number you already hold.The bars on the label, not the identity.Code 128, Code 39 or QR for SKUs; UPC or EAN for GTINs.

Print a SKU as a barcode

Warehouse bin and carton labels usually carry the SKU itself. Turn any code from this page into a Code 128 label with the barcode generator.

Need a UPC or EAN instead

Retail scanning needs a GTIN, not a SKU. Once you hold one, draw UPC-A, EAN-13 or GS1-128 with the GS1 barcode generator.

GS1 US describes a GTIN as "a GS1 identification key used to identify a trade item" and "a globally unique number". Source: GS1 US, What is a GTIN?, checked 2 October 2026.

How to Create SKU Codes in Excel

Put each segment's codes in its own column and join them with one formula. The generator writes it for whatever settings you choose.

Worked example, no sequence=UPPER("LST"&"-"&A2&"-"&B2&"-"&C2)
With a 3-digit sequence across the sheet=UPPER("LST"&"-"&A2&"-"&B2&"-"&C2&"-"&TEXT(ROW()-1,"000"))
Sequence restarting for each parent=UPPER("LST"&"-"&A2&"-"&B2&"-"&C2&"-"&TEXT(COUNTIFS($A$2:A2,A2),"000"))

The per-parent version counts how many rows above share the parent's codes, so LST-HDE-BLK-XS-001 starts the hoodies at 001 again.

Why SKUs lose their leading zeros

Microsoft states that Excel automatically removes leading zeros, and converts large numbers to scientific notation, like 1.23E+15, in order to allow formulas and math operations to work on them. Its list of automatic conversions also covers truncating long numbers to 15 digits and reading digits around the letter E as scientific notation.
FixHow
Import the column as textUse Get & Transform (Power Query) and set the column type to Text before loading.
Change the automatic conversion settingNewer Excel versions let you turn off the removal of leading zeros and the scientific-notation conversion.
Prefix with an apostropheType an apostrophe before the value and Excel stores it as text. One cell at a time.
Start every SKU with a letterA code that begins with a letter never looks like a number, so none of the numeric conversions apply.

Source: Microsoft Support, Keeping leading zeros and large numbers, checked 2 October 2026. The checker flags all-digit codes with a leading zero, digit strings over 15 characters and E-notation patterns.

Only Encode What Will Never Change

A SKU is a permanent name for a physical item. Each attribute you encode has to stay true for as long as you sell it.

Do not encodeWhy it breaksWhere it belongs
Price or costPrices move with promotions, currency and freight. The SKU outlives all three.The product record, where a change is one edit.
Supplier nameYou dual-source or switch vendor. The physical item did not change.A field on the purchase order and item master.
Stock quantity or binBoth change daily, so the code would be wrong within a week.The warehouse system. A SKU should never move.
Launch year or seasonFine for a one-season style, wrong for a staple you still sell years later.Only where the season defines a genuinely retired product.
Sales channelOne unit on two marketplaces becomes two SKUs and splits one stock count.One SKU per physical unit, mapped to each listing.

Order segments from most stable to least

PositionSegmentHow stableWhy it sits here
1Prefix or brandAlmost never changesGroups everything you own at the top of a sort.
2Category or familyRarely changesEvery tee sits together in a sorted export.
3Style or modelFixed once launchedThe natural boundary for a parent SKU.
4Colour or variantFixed per variantThe first variable axis; groups all sizes of one colour.
5Size, weight or packFixed per variantThe finest split, so a size run reads down the column.
6Sequence numberAssigned onceOnly when attributes alone do not make the code unique.
The size-run problem. Sorted as text, the sizes XS, S, M, L, XL, XXL come out as L, M, S, XL, XS, XXL. Use numeric size codes such as 01 to 06, or keep a separate size-order column next to the SKU.

Characters to Keep Out of a SKU

Labels are read by eye as well as by scanner. These characters are easy to misread or break files, and the generator flags each one.

CharactersWhat goes wrongWhat to do instead
O and 0The letter O and the digit 0 look alike on a small thermal label.Leave the letter O out of codes, for example LVE for olive.
I, 1 and lThree glyphs that collapse into one vertical line in many fonts.Leave I out and force uppercase so a lowercase l never appears.
SpacesTrimmed or split on import, and awkward in URLs and scanner input.Use a hyphen or underscore between segments.
Slash, comma, quote, hashA comma splits a CSV field. A slash breaks a file path or a URL.Restrict codes to A–Z, 0–9 and one separator.
Mixed caseCase-sensitive systems treat lst-tee-blk and LST-TEE-BLK as two items.Pick one case and enforce it when the SKU is created.

The Shopify Help Center advises avoiding a format where 0 and 1 can be confused with O and I, advises against special characters, symbols and spaces, and calls dashes and underscores useful separators. Source: Shopify Help Center, SKUs, checked 2 October 2026.

SKU Formats for Three Kinds of Catalogue

Each row is a preset in the generator, run through the same code. Encode the axis along which you hold separate stock, and nothing else.

CatalogueSegmentsValuesSKUsParentsFirst SKULengthOver 16
ApparelPrefix LST / Category / Colour / Size3 × 5 × 6903LST-TEE-BLK-XS13–150
SkincareRange / Product / Size / Formula2 × 3 × 2 × 2246HYD-SER-30-FF130
Food and drinkFlavour / Pack / Case / 2-digit sequence3 × 2 × 2123BBQ-150G-12-01140

Apparel

Two variant axes, colour and size, both in the code. No season code, so carry-over staples keep their SKUs.

Skincare

Volume and formula are separate stock. No prefix, because a single-brand catalogue gains nothing from one.

Food and drink

Pack and case size are what the warehouse counts. A 2-digit sequence numbers the line items.

Parent SKUs, Child SKUs and How Long to Go

Parent SKU

The family without the variant codes, such as LST-TEE. It groups listings and reports. Nothing is picked against it.

Child SKU

The full code with colour and size. This is the sellable unit that holds stock, and it must be unique across the catalogue.

Where to cut

The parent ends where the first variable segment starts. Build children by prefix, so trimming the tail returns the parent.

How long is too long. Limits differ between marketplaces, 3PL systems and accounting software. Design to the tightest one. As one published example, the Shopify Help Center suggests no more than 16 characters, which is why 16 is this tool's default.

Six SKU Mistakes the Checker Catches

Switch the tool to "Check a list" and paste your current SKUs. The figures below come from the sample list it loads.

1

Two values, one code

Green and Grey both auto-code to GRE from their first three letters. The generator lists repeated codes inside a segment.

2

Case and separator twins

In the sample list, 2 lines differ only by case or separator, such as lst-tee-blk-l and LST_TEE_BLK_L.

3

Codes past the limit

Adding a 3-digit sequence to the worked example puts 90 of 90 SKUs over 16 characters.

4

O, I and lowercase l

2 of the 10 sample lines contain one of them, such as OLV for olive. The checker flags each line.

5

All-digit codes in Excel

00412 opens as 412, and 1E5 is read as a number in scientific notation. 2 of the sample lines carry that risk.

6

Spaces and symbols

The sample has 1 line with a space and 1 line with a slash. Both break imports and URLs.

What Breaks When You Renumber a Live Catalogue

Changing a SKU is not a one-field edit. The old code sits in records you no longer control.

  • Historical orders and invoices keep the code they were raised with.
  • Open purchase orders were accepted by your supplier against the old code.
  • Labels already printed, and cartons already sealed in a warehouse, carry it.
  • Marketplace listings can lose their variant grouping when a SKU changes.
  • Your 3PL's item master needs the change loaded before the first receipt under the new code.
If you have to do it anyway. Keep a permanent old-to-new mapping, migrate one category at a time, and never reuse a retired code. Often the simpler route is to leave live SKUs alone and apply the new scheme to new launches.

SKU Generator Questions

Pick the attributes that separate your items, give each value a short code, and join the codes with one separator. 3 categories, 5 colours and 6 sizes give 3 × 5 × 6 = 90 SKUs, from LST-TEE-BLK-XS to LST-SHT-SND-XXL. The generator builds every combination and exports a CSV.
Yes. A SKU is an internal code that you assign, so there is no registry, fee or application. Your warehouse, 3PL and marketplaces use the code you give them. What matters is that it is unique across your whole catalogue and never reused.
You do not obtain a SKU from anyone; you create it with a generator like this one or a spreadsheet. The number a retailer may ask for is usually a GTIN, such as a UPC, which comes from a company prefix licensed through GS1.
Put each segment's codes in its own column, then join them with a formula. For the worked example, with codes in columns A to C from row 2, the formula is =UPPER("LST"&"-"&A2&"-"&B2&"-"&C2). The generator writes the formula for your settings.
A SKU is your internal code. GS1 US describes a GTIN as a GS1 identification key used to identify a trade item, and a globally unique number. A UPC-A barcode carries a GTIN-12, which is always 12 digits. Most sellers keep a SKU and a GTIN against each item.
Design to the tightest limit among the systems your SKUs enter. As one published example, the Shopify Help Center says to keep SKUs as short as possible, such as no more than 16 characters. The generator flags every SKU over the limit you set.
Only when the attributes alone do not make each item unique. Adding a 3-digit sequence to the worked example changes the lengths from 13–15 to 17–19 characters, and 90 of 90 SKUs then exceed 16.
A parent SKU names the product family, and child SKUs name the sellable variants under it. In the worked example the parent is the prefix plus category, such as LST-TEE, with 30 colour and size children under each.
Microsoft states that Excel automatically removes leading zeros, and converts large numbers to scientific notation, so that formulas and math work on them. A SKU of 00412 becomes 412. Import the column as text, or start every SKU with a letter.
You can, but treat it as a migration, not an edit. Orders, open purchase orders, printed labels, marketplace listings and your 3PL master data all hold the old code. Keep a permanent old-to-new mapping and never reuse a retired SKU.

SKUs Ready? Plan Where the Stock Goes

Talk to Locad about receiving, storage and fulfillment for your catalogue.