How to create SKUs: a naming system that scales (2026)
A practical SKU naming system for small shops: the structure, a code dictionary, worked examples for variants and bundles, and the rules that stop SKUs breaking later.
Key Takeaways
- One SKU per thing you count separately. Every size, colour or pack size that has its own stock gets its own SKU. If you count it separately, it needs its own code.
- Category, attributes, then a sequence number. A pattern like CND-LAV-08 or TSH-BLK-M reads left to right from broad to specific, sorts sensibly and leaves room to grow.
- Keep it short and plain. Shopify recommends no more than 16 characters, no spaces or special symbols, and avoiding formats where 0 and 1 can be confused with O and I.
- Never put changeable facts in a SKU. Price, supplier and location change. A SKU should outlive all of them, so store those in separate fields.
- Write the dictionary down. A one-page list of every code segment means anyone can create a new SKU the same way and read an existing one.
Quick-Start Prioritization Framework
| Decision | Recommended default | Why |
|---|---|---|
| Structure | Category – attribute(s) – sequence | Broad to specific; sorts by category |
| Length | 8 to 14 characters | Short enough to type and print, room for detail |
| Separator | Hyphen | Readable and widely used; avoid spaces and slashes |
| Characters | Capital letters A–Z (except O and I) and digits | No case or look-alike confusion |
| Leading zero | Never start a SKU with 0 | Spreadsheets drop leading zeros |
| Retired SKUs | Never reuse | Old sales and counts stay meaningful |
A SKU (stock keeping unit) is the short code you give each thing you stock so you can count it, reorder it and report on it. Unlike a UPC barcode, nobody issues SKUs to you; you design them. That freedom is why so many shops end up with codes like “BLUE-SHIRT-NEW2”. This guide sets out a structure that stays readable at 50 items and at 5,000, with a code dictionary, worked examples for sizes, colours and bundles, and a plan for moving an existing catalogue over without losing history.
What a SKU is, and what it isn’t
A SKU is your own internal code for a product or a specific variant. Shopify’s help centre describes SKUs as codes you use internally to track inventory and report on sales.
SKU vs UPC, EAN and GTIN
A UPC or EAN is a global product number (a GTIN) licensed through GS1 and printed as a barcode. The manufacturer usually assigns it, and it is the same in every shop that sells the item. Your SKU is yours alone. A shop can stock the same jar of honey as a shop across town, with the same UPC and completely different SKUs.
SKU vs serial number
A SKU identifies a type of item: every 250 g bag of house blend shares one. A serial number identifies one individual unit, such as a specific bicycle frame. Most small shops need SKUs for everything and serial numbers only for high-value or warrantied items.
SKU vs supplier part number
Your supplier has its own code for each item. Store it in a separate field so you can put it on purchase orders, but don’t use it as your SKU. If you switch supplier, your SKU, and all the sales history attached to it, should stay the same.
The structure: broad to specific
The most durable pattern reads from left to right, from the broadest grouping to the most specific detail. Shopify’s own example is TSH-M-BLK-COT-001: category, size, colour, fabric and a running number.
Segment 1: category
Two or three letters for the category you most often report on: CND for candles, MUG for mugs, TSH for T-shirts, CRD for greeting cards. Because it comes first, sorting by SKU groups the category together.
Segments 2 and 3: the attributes that define a variant
Only the attributes that create separately stocked versions: scent, colour, size, pack size. Two or three characters each. If an attribute doesn’t change stock, such as a seasonal display tag, leave it out.
Final segment: a sequence number
A two- or three-digit number makes each code unique where the attributes alone would collide, such as two different lavender candles from two makers. Use two digits if you’ll never have more than 99 in a group, three if you might.
Build a code dictionary first
The dictionary is the one page that makes the system work. Every code segment is listed once, with its meaning, so the same thing is always written the same way. Shopify’s guidance makes the same point: if BLK means black on one product, it must mean black on all of them.
| Segment | Code | Meaning |
|---|---|---|
| Category | CND | Candles |
| Category | MUG | Mugs |
| Category | TSH | T-shirts |
| Scent | LAV | Lavender |
| Scent | CED | Cedar |
| Colour | BLK | Black |
| Colour | NVY | Navy |
| Size | S, M, L, XL | Clothing sizes |
| Pack size | 08, 16 | Ounces (8 oz, 16 oz) |
Rules for codes
Fixed length within each segment where you can. All capitals. No letter O or I, because they are easily read as 0 and 1; Shopify’s help centre gives the same advice. Write numbers with leading zeros inside the code (08, not 8) so they sort correctly, but never at the very start of the SKU.
Who can add codes
One person owns the dictionary. Anyone can create SKUs from existing codes, but a new category or colour code goes through the owner. That small bit of control is what stops BLK, BLA and BK appearing side by side.
Worked examples
Here is the system applied to a small gift shop’s catalogue.
| Item | SKU | How it reads |
|---|---|---|
| Lavender soy candle, 8 oz | CND-LAV-08-01 | Candle, lavender, 8 oz, first of its kind |
| Lavender soy candle, 16 oz | CND-LAV-16-01 | Same candle, larger size |
| A second maker’s lavender candle, 8 oz | CND-LAV-08-02 | Sequence number keeps it unique |
| Navy T-shirt with shop logo, medium | TSH-NVY-M-01 | T-shirt, navy, medium |
| Black mug, 12 oz | MUG-BLK-12-01 | Mug, black, 12 oz |
| Gift box: 8 oz candle + mug | KIT-GB-001 | Kit, gift box, number 1 |
Variants
The 8 oz and 16 oz candles are variants of the same product with separate SKUs, because they are counted and reordered separately. Shopify requires each variant to have its own SKU, and the same principle applies in any system.
Bundles and kits
A gift box gets its own SKU, and its record lists the component SKUs and quantities. When you sell one, the system deducts one candle and one mug. Whether the kit is pre-assembled or put together at the till, the components are what you count.
Made-to-order and raw materials
Workshops often stock materials as well as finished goods. Give materials their own category codes, such as WAX, WCK for wicks or JAR, so purchasing and production reports separate cleanly from finished stock.
What to leave out of a SKU
Every piece of information you encode into a SKU is a promise that it will never change. Most information can’t keep that promise.
Price and cost
Prices change with every supplier increase and sale. A SKU containing “2499” becomes wrong the day you reprice.
Supplier and location
You may switch supplier or move the item to the storeroom. Both belong in fields, not the code.
Dates and words like NEW or OLD
“NEW” stops being new within a season. If you need to tell a reformulated product apart, give it a new sequence number and retire the old SKU.
Rolling it out without breaking history
If you already have a catalogue with messy codes, you can move to a clean system without losing your sales history.
Keep the old code in its own field
Add a column called legacy SKU and copy the existing codes into it before you change anything. Reports and old receipts can still be matched.
Generate new SKUs with a formula
In a spreadsheet, put each segment in its own column (category, attribute 1, attribute 2, sequence) and join them with a formula such as =A2&"-"&B2&"-"&C2&"-"&TEXT(D2,"00"). This keeps codes consistent and lets you fix a segment in one place.
Check for duplicates and look-alikes
Add a column with =COUNTIF(E:E,E2) and filter for anything above 1. Then search for the letters O and I in the SKU column. Shopify notes that SKUs are case-sensitive in its admin, so also make sure everything is in capitals.
Switch over on a quiet day
Import the new SKUs, print new shelf labels for the items you count most, and keep the legacy column searchable for a few months while staff get used to the new codes.
Common mistakes
These are the SKU problems that show up years later and are expensive to unwind.
- One SKU for an item that comes in several sizes or colours, so stock can’t be counted per variant.
- Starting SKUs with a zero, which spreadsheets silently remove on import and export.
- Using the supplier’s part number as your SKU, then changing supplier.
- Encoding price or cost in the SKU.
- Reusing a retired SKU for a new product, which mixes two products’ sales history.
- Abbreviations invented on the spot, so the same colour has three codes.
- Codes so long they don’t fit on a shelf label or get mistyped at the till.
Frequently Asked Questions
How do I create a SKU number?
Decide on a structure (category, attributes that create variants, then a sequence number), write a dictionary of codes for each segment, and combine them, for example CND-LAV-08-01 for an 8 oz lavender candle. Keep it under 16 characters with no spaces or special symbols.
Do I need a SKU for every size and colour?
Yes, if you stock and count them separately. Every variant you count on its own needs its own SKU, otherwise you can’t tell how many medium blue shirts you have left.
Is a SKU the same as a barcode or UPC?
No. A UPC is a global product number licensed through GS1 and usually assigned by the manufacturer. A SKU is your own internal code. You can print your SKU as a barcode for in-store use, but it isn’t a UPC.
Should SKUs be numbers only or letters and numbers?
Either works. Letters and numbers are easier for people to read at a glance (CND-LAV-08), while numbers only are quicker to type on a keypad. Shopify allows both. Pick one style and apply it everywhere.
How long should a SKU be?
Shopify recommends keeping SKUs as short as possible, such as no more than 16 characters. Eight to fourteen characters is a comfortable range for most small shops.
Can I change my SKUs later?
Yes, but keep the old code in a separate legacy field so past sales and counts can still be matched, and never reuse an old code for a different product.
Sources
- Shopify Help Center, SKUs, 2026 https://help.shopify.com/en/manual/products/details/sku
- Shopify, What Is a SKU Number, 2026 https://www.shopify.com/blog/what-is-a-sku-number
- GS1 US, What is a GTIN?, 2026 https://www.gs1us.org/upcs-barcodes-prefixes/what-is-a-gtin