A SKU, or stock keeping unit, is the unique identifier for one specific sellable variant: this product, in this size, in this colour. It is the key everything else joins on. Inventory counts, purchase orders, picking, reporting and supplier communication all depend on the SKU meaning exactly one thing, which is why a bad structure is expensive to live with and painful to change later.
In more detail
A SKU identifies a variant, not a product. A shirt is not a SKU; a shirt in medium in navy is. Getting this wrong at the start produces inventory that cannot be counted and orders that cannot be picked without a human interpreting them.
The structure question is whether the code should be readable by a person or meaningless and stable. Readable codes help pickers and buyers; meaningless codes never become wrong when a product changes. Most small stores are better served by a partly readable code, because the people using it are humans rather than systems.
Whatever you choose, the expensive mistake is reusing a code. A retired SKU brought back for a different product corrupts every historical report that touches it, silently.
Where people get it wrong
- Reusing a retired SKU. This corrupts history and is nearly impossible to unpick later.
- Encoding things that change, such as price, season or supplier, into the code.
- Using the supplier's code as your own. Suppliers change theirs, and you may source the same item from two of them.
- One SKU covering several variants, which makes accurate counting impossible.
Common questions
What is the difference between a SKU and a barcode?
A SKU is your internal identifier and you control it. A barcode such as a UPC or EAN is a standardised external identifier, often assigned by the manufacturer, and the same product carries the same one across every retailer.
How should I structure SKU codes?
Partly readable is usually best for a small team: a short product identifier plus variant attributes. Never encode anything that changes, such as price, season or supplier.
Can I reuse a SKU after discontinuing a product?
Avoid it. The old code appears throughout historical sales, purchasing and inventory records, and reusing it silently merges two different products in every report.