Free Inventory Tool

SKU Generator

Design the SKU format first, then generate every variant from it. Define your segments, watch the code build as you type, and export the matrix as a CSV.

Build Your SKU Scheme

Each segment is one attribute of the product. Enter one value per line, with a short code after a comma. Leave the code out and one is derived for you.

Format

First SKU

Variants
SKU length
Duplicates
Over length

The matrix below is every combination of your segment values.

Everything runs in your browser. No sign-up, no server call, and nothing you type leaves the page. The CSV is written on your own machine.

A SKU Is Not a Barcode Number

Most sellers need two identifiers, and they do different jobs. Mixing them up surfaces at the worst moment, when a retailer rejects a listing.

IdentifierWho issues itWhere it is usedFormatChanging it
SKU You. No registry, no application. Internal: warehouse, 3PL, listings, reports. Alphanumeric, any structure you choose. Yours to change, at your own cost.
GTIN (UPC, EAN) GS1, which describes the GTIN as issued by GS1. External: retailers, marketplaces, scanners. Fixed numeric lengths: GTIN-8, 12, 13, 14. Tied to the product, not renumbered for convenience.
Barcode symbol Printed by you from a number you hold. The stripes on the label, not the identity. GS1 notes the GTIN is the number under the lines. Regenerate any time; the number stays put.

GS1 describes a GS1 GTIN as a unique, global, verifiable product identifier issued by GS1, and the number found under a barcode's black and white lines. GTIN-12 is commonly called a UPC and GTIN-13 an EAN. Source: GS1 Global Office support article, checked 14 August 2026.

What this means in practice

You invent your SKU today, free, with this page. A GTIN comes from GS1, a separate commercial process with its own timeline.

Keep both against the item, in two fields. A marketplace asking for a product identifier usually wants the GTIN; your 3PL wants the SKU.

Only Encode What Will Never Change

A SKU is a permanent name for a physical thing. Every attribute you encode promises to hold for the life of the item. These are the ones people regret.

Do not encodeWhy it breaksWhere it belongs instead
Price or cost Prices move with promotions, currency and freight. The SKU outlives all three. The product record, where a change is one edit.
Supplier name You dual-source or switch vendor. The physical item did not change. A field on the purchase order and item master.
Stock quantity or bin Both change hourly, so the SKU is wrong within a day. The warehouse system. A SKU should never move.
Launch year or season Fine for fashion, harmful for a staple you still sell in four years. Only where the season defines a genuinely retired product.
Customer or channel One unit on two marketplaces becomes two SKUs and splits your stock view. One SKU per physical unit, mapped to each listing.

Three tests catch most of it. Would a change make it a different item? Could a picker name the product from the code? Does the scheme hold at ten times the size?

The Characters That Cause Real Mispicks

Ambiguous glyphs on a thermal label at the end of a night shift produce wrong picks, and wrong picks produce returns. The generator flags each of these.

CharactersWhat goes wrongWhat to do instead
O and 0 A picker at 2am reads the letter O as a zero and picks the wrong bin. Ban the letter O. Olive becomes KHA, Locad becomes LCD.
I, 1 and l Three glyphs that collapse into one line on a thermal label. Ban the letter I, and uppercase everything so l cannot appear.
Spaces Break URL parameters and get trimmed silently on import. Use a hyphen or underscore, which Shopify names as useful separators.
Slash, comma, quote, hash A comma splits a CSV field. A slash breaks a file path. Restrict to A-Z, 0-9 and one separator. Shopify advises against symbols.
Lowercase mixed with uppercase Case-sensitive systems read lcd-tee-blk and LCD-TEE-BLK as two items. Pick one case and enforce it at creation, not at upload.

Shopify advises avoiding a format where 0 and 1 can be confused with O and I, advises against special characters, symbols and spaces, and names dashes and underscores as useful separators. Source: Shopify Help Center, "Using SKUs to manage your inventory", checked 14 August 2026.

Why Your SKUs Lose Their Leading Zeros

You export a clean file. Someone opens it in Excel, saves it, and every SKU starting with a zero is now shorter. Nothing warned anybody, and the file sent to the 3PL is wrong.

What Microsoft documents

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.

That is the whole cause. A SKU of 00412 looks numeric, so it becomes 412. The damage happens on open, before anyone types a thing.

FixHowCaveat
Import the column as text Use Get & Transform (Power Query) and set the column type to text before loading. Microsoft documents this for converting columns to text on import.
Turn off the automatic conversion Newer Excel versions expose an Automatic Data Conversions setting for leading zeros. Microsoft lists it among the default behaviours you can change.
Apply a custom number format Select the cells and enter a format code such as 000-00-0000. Microsoft warns it will not restore zeros already removed.
Prefix with an apostrophe Type an apostrophe before the value and Excel treats it as text. Microsoft gives this for long numbers. One cell at a time.

Source: Microsoft Support, "Keeping leading zeros and large numbers", checked 14 August 2026. The behaviour affects any column that looks numeric, which is why an all-digit scheme carries a risk an alphanumeric one does not.

Habits that prevent it entirely

  • Start every SKU with a letter. A code that begins with a letter is never read as a number.
  • Never double-click a SKU export. Import it, and set the column type to text first.

Order Segments From Most Stable to Least

Segment order decides how your catalogue sorts, and a sorted export is how buyers and stocktakers read inventory. Put what changes least on the left.

PositionSegmentHow stableWhy it sits here
1 Brand or business unit Changes almost never Groups everything you own at the top of a sort.
2 Category or product family Changes rarely Every tee sits together in a sorted export, which is how planners read one.
3 Style or model Fixed once launched Separates one product from the next. The natural parent SKU boundary.
4 Colour or variant Fixed per variant The first variable axis. Groups all sizes of one colour together.
5 Size or weight Fixed per variant The finest split. Put it here and a size run reads down the column.
6 Sequence number Assigned once Guarantees uniqueness. Never reused, even after an item retires.

The size-run problem

Sizes sort alphabetically as L, M, S, XL, XS. That is useless at a stocktake, where you count a run from smallest to largest.

Two fixes work. Use numeric size codes such as 01 to 06, or keep letter codes and sort by a separate size-order column carried alongside the SKU.

What Different Catalogues Actually Encode

There is no universal format. The right segments depend on which axis your catalogue varies along. Three shapes, and what each deliberately left out.

BusinessSegmentsExampleWhy these segmentsWhat they left out
Fashion brand Brand / Category / Style / Colour / Size LCD-TEE-CREW-BLK-M Variants explode on two axes at once, so both belong in the code. Colour then size is how a run is counted at stocktake. No season code. Carry-forward staples would look discontinued every January.
Skincare brand Brand / Range / Product / Size / Formulation AUR-HYD-SER-30ML-FRA Volume is the primary variant, and the fragrance-free version is a different item with its own paperwork and shelf life. No colour segment. It would be dead characters on every label.
Consumables brand Category / Product / Pack size / Unit count SNK-BBQ-150G-12 A 12-pack and a 24-pack are separate stock, separate cartons and separate freight. Pack configuration is the axis that matters. No brand prefix on a single-brand catalogue. It buys nothing.

The pattern across all three: encode the axis along which you hold separate stock, and nothing else. Two things in different bins, counted separately, need different SKUs.

An Apparel Seller: 3 Categories, 5 Colours, 6 Sizes

A US apparel brand launches its first range, fulfilled from a Texas warehouse across the US. These fields are loaded into the generator above by default.

Brand

1 value

Locad, coded LCD rather than LOC because the letter O is banned here. Room for a second label later.

Category

3 values

T-Shirt (TEE), Hoodie (HDE), Shorts (SHT). Three letters leave headroom for the next twenty categories.

Colour

5 values

BLK, WHT, NVY, KHA, SND. No letter O or I anywhere in the scheme.

Size

6 values

XS to XXL. Letter codes because that is what the label prints, plus a sequence number.

One brand times three categories times five colours times six sizes is 90 variants, each 17 to 19 characters, inside a 20-character limit. A slice of the generated matrix:

RowCategoryColourSizeSKU
1 T-Shirt Black Extra Small LCD-TEE-BLK-XS-001
2 T-Shirt Black Small LCD-TEE-BLK-S-002
3 T-Shirt Black Medium LCD-TEE-BLK-M-003
6 T-Shirt Black Double Extra Large LCD-TEE-BLK-XXL-006
7 T-Shirt White Extra Small LCD-TEE-WHT-XS-007
31 Hoodie Black Extra Small LCD-HDE-BLK-XS-031
46 Hoodie Navy Large LCD-HDE-NVY-L-046
61 Shorts Black Extra Small LCD-SHT-BLK-XS-061
89 Shorts Sand Extra Large LCD-SHT-SND-XL-089
90 Shorts Sand Double Extra Large LCD-SHT-SND-XXL-090

Rows 1 to 6 are one colour in every size, exactly the block a stocktaker counts. Row 31 starts the hoodies and row 61 the shorts, so a sorted export groups the catalogue as a buyer thinks about it.

Parent SKUs, Child SKUs and How Long to Go

Marketplaces group variants under a parent listing, and your warehouse counts stock against the children. Getting the boundary right early saves a relisting later.

Parent SKU

The style, without the variant segments. In the example above that is LCD-TEE-CREW.

It groups listings, images and reporting. Nothing is ever picked against it.

Child SKU

The full code including colour and size. This is the sellable unit that holds stock.

Every child must be unique across the whole catalogue, not just within its parent.

Where to cut

The parent ends where the first genuinely variable segment begins, which is usually colour.

Build children by prefix, so stripping the tail always returns a valid parent.

How long is too long

Length limits exist across marketplaces, 3PL systems and accounting software, and they vary. Check the documentation for every system your SKUs enter and design to the tightest.

One published example: Shopify recommends keeping SKUs as short as possible, such as no more than 16 characters. Treat that as one data point, not a universal rule.

What Breaks When You Renumber a Live Catalogue

Changing a SKU is not an edit to one field. The old code sits in records you no longer control, several of which cannot be updated at all.

Everything holding the old code

  • Historical orders and invoices, which keep the code they were raised with.
  • Open purchase orders your supplier has already accepted against the old code.
  • Barcode and pick labels already printed, and cartons already sealed in a warehouse.
  • Marketplace listings, where changing a SKU can reset ranking or break the variant grouping.
  • Your 3PL's master data, which needs the change loaded before the first mismatched receipt.

If you have to do it anyway

Keep a permanent mapping of old code to new code and never delete it. Reports spanning the cutover depend on it for years.

Migrate one category at a time, run both codes in parallel through a full replenishment cycle, and never reuse a retired SKU.

The cheaper option is usually to leave the existing catalogue alone and apply the new scheme to everything you launch from now on.

From SKU Scheme to Stocked Shelf

A SKU is the first entry in an item master. These tools cover the labels, barcodes and replenishment numbers that attach to it.

Size the buffer behind each code with the safety stock calculator, or browse the free tools hub. When the catalogue is ready to move, see how Locad handles warehousing and storage and multi-market fulfilment.

SKU Questions

Decide the segments that describe a product, such as brand, category, colour and size, and give each value a short code. Join the codes with one separator and add a sequence number for uniqueness. Generate every combination at once, then export it into your inventory system.
A SKU is an internal identifier you assign to a stock item so you can track it in your own systems. It should carry only attributes that are permanent for that item: category, style, colour, size. It should not carry price, cost, supplier, stock level or storage location, because those change while the item does not.
A SKU is internal and you create it yourself, with no registry and no application. GS1 describes a GS1 GTIN as a unique, global, verifiable product identifier issued by GS1, found under a barcode. GTIN-12 is commonly called a UPC and GTIN-13 an EAN. Most sellers need both.
Limits vary by platform. Check the documentation for every system your SKUs enter, including marketplaces, your 3PL and your accounting software, then design to the tightest limit. As one published example, Shopify recommends keeping SKUs as short as possible, such as no more than 16 characters.
A mix works well: letters are readable by staff, numbers keep the code short. Which characters you exclude matters more. Shopify advises avoiding a format where the numbers 0 and 1 can be confused with the letters O and I, advises against special characters, symbols and spaces, and names dashes and underscores as useful separators.
Microsoft states that Excel automatically removes leading zeros, and converts large numbers to scientific notation, in order to allow formulas and math operations to work on them. A SKU of 00412 becomes 412 on open, and saving makes it permanent. Import the column as text before you open the file.
No. Prices change with promotions, currency and freight, and suppliers change when you dual-source or a factory relocates. The item on the shelf is unchanged, so the SKU would now be wrong. Keep both as fields on the product record, where updating them is one edit.
A parent SKU identifies the product family, and child SKUs identify the sellable variants underneath it. In a clothing catalogue the parent is the style and the children are each colour and size combination. Stock is counted against the children, because that is what a customer buys.
You can, but treat it as a migration rather than an edit. Historical orders, open purchase orders, marketplace listings, labels already printed and your 3PL master data all reference the old code. Keep a permanent mapping of old to new, and never reuse a retired SKU.

A Clean Catalogue Is Easier to Fulfil

Once the SKUs are set, the next question is where the stock sits. Talk to Locad about warehousing and fulfilment for your stock.