Designing an SKU system you will not regret
What belongs in a product code and what does not, why encoding price or supplier goes wrong, and how to keep a scheme extendable as the range grows.
4 min read · updated
An SKU is an internal handle for a product. Its only real job is to be unique, readable by a human under pressure, and stable for the life of the product. Most bad schemes fail the third test, because they encode something that later changes.
What belongs in the code
Attributes that define the item and never change: category, style, colour, size. A blue shirt in medium is SHRT-BLU-M and stays SHRT-BLU-M whatever else happens to it.
| Segment | Example | Why it is safe |
|---|---|---|
| Category | SHRT | A shirt does not become a shoe |
| Colour | BLU | Fixed attribute of the variant |
| Size | M | Fixed attribute of the variant |
What does not belong
- Price. It changes, and then your code lies. Every discount would need a new SKU.
- Supplier. You may switch, and the same product would end up with two codes.
- Season or year, unless the item is genuinely retired at the end of it.
- Stock location. Stock moves; the product does not change identity when it does.
Keep it mechanical
The scheme should be a pattern, not a series of decisions. If adding a colour means inventing a new convention, the scheme has already failed. Generate codes from a fixed pattern so a new variant extends the system instead of breaking it, and so two people entering stock independently produce the same code.
Generate SKUs from a patternBuild consistent SKU codes from product attributes.SKU and barcode are different things
The SKU is yours and can contain letters. A barcode is what a scanner reads, and the symbology constrains it: EAN-13 takes exactly thirteen digits with a check digit, while Code 128 accepts letters and so can carry your SKU directly. If you want to scan your own codes rather than manufacturer barcodes, Code 128 is usually the answer.
Print barcode labels from a SKU listPrint sheets of barcode labels for your stock.Once codes are stable, counting stock becomes arithmetic rather than archaeology. Opening balance plus receipts minus issues gives a closing figure you can check a physical count against, and disagreements point at a specific movement instead of a general suspicion.
Track stock movementTrack stock movements with inward, outward and balance.