Shopify SKU system guide: naming conventions that scale past 10,000 products

Building a Shopify SKU system is one of those things you can get correct on day one and avoid throwing money at on day 800. While the name suggests it’s just an identifier for your products, your SKU actually forms the backbone of your business around inventory, fulfillment, reporting, returns, and a whole host of other systems and processes that interact with your store and your product catalog. Get the underlying pattern wrong and future products will often fight against your existing systems instead of helping to strengthen them.

This guide outlines the nomenclature that will actually scale for your brand with strategies for using a brand prefix and category code as well as color and size suffixes. It will also outline the pitfalls that may force you to renumber at 5,000 products. We will also provide examples in the apparel, electronics and cosmetics categories that you can copy and modify for your brand.

In this post

What a SKU actually is

SKU – What is a SKU? SKU stands for Stock Keeping Unit. A SKU is a unique identifier for your store to keep track of different items. For example, if you sell blue t-shirts in small, medium, large, etc. – each one would be a different SKU. Within a product, each color and size would be a different SKU. (Shopify stores SKU at the variant level, so if you had a product with 4 colors and 5 sizes, that would equal 20 SKUs).

A SKU is not a UPC or EAN code (though a SKU may include one of those) and is not a barcode (though a SKU may display externally as a barcode which is then scanned by the outside world). A SKU is something you invent. It is your own code, which you can name or re-name as you will. You can even break a SKU (please don’t, but it is technically possible).

Structure of a good SKU

Sku-attributes-A good SKU is short, human-readable, hierarchical, and machine-parseable. The pattern that survives growth is usually:

BRAND-CATEGORY-PRODUCT-COLOR-SIZE

For an example, see CS-TEE-0017-BLK-M. All of the essential information about a product (Craftshift brand, T-shirt category, Product Number 17, color: black, size: medium) is contained in one string of text that a warehouse picker, an accountant, or even a spreadsheet can easily read without referring to an index. A free SKU generator on this site generates a pattern like this automatically.

Length: SKUs should be 10 to 20 characters long. Anything shorter has too much ambiguity, and anything longer is too long for shipping labels and for printing on warehouse bin tags.

Naming rules that prevent future pain

  • Uppercase only. Mixed case causes CSV import bugs.
  • No spaces. Use hyphens or underscores, pick one and stick with it.
  • No special characters (no slashes, no ampersands, no periods).
  • Zero-pad numbers. 0017, not 17. Otherwise 10 sorts before 2.
  • Never reuse a retired SKU. Ever. That way leads to refund chaos.
  • Do not embed price, vendor, or season in the SKU. Those change. SKUs do not.

Nobody likes to include the year in the SKU, but it gets nasty when you decide to roll to a new year. S24 in the SKU for Spring 2024 looks nice, but then next year every restock with that base name will have to be renamed. Better to embed the wholesale price and then when the cost increases you can rename the SKU. The SKU should outlast any characteristic that is not included in the SKU.

Apparel example

FieldCodeExample
BrandCSCraftshift
CategoryTEE, HDY, JKTT-shirt, Hoodie, Jacket
Product ID0001-9999Unique per style
ColorBLK, WHT, NVY, REDBlack, White, Navy, Red
SizeXS, S, M, L, XLStandard sizes

This is the full SKU for the women’s Hayley hoodie in light blue: CS-HDY-0042-NVY-L. If you’re a apparel store with lots of colors, you might pair this with a simple swatch system on your store’s frontend. See the color swatches guide and the accessibility post for how to do this without being a jerk.

Electronics example

Electronics need the model number, capacity and occasionally the region. Following this pattern: BRAND – CATEGORY – MODEL – CAPACITY – REGION.

Example: CS-PHN-X12-128-EU. CS Custom Parts phone part X12 (128 GB) for Europe. Other items including laptops, cameras and accessories can be specified in a similar way, with variant axes such as capacity and region.

Cosmetics example

Cosmetics come in different shades and finishes. Pattern: BRAND-CATEGORY-PRODUCT-SHADE-FINISH. Most brands will have 50+ shades of foundation.

Example: CS-FND-0003-N20-MAT. Concealer, foundation level 3, Neutral 20 Matte finish. The shade code N20 is portable which means that the same shade code will be used in other similar products launched by the company, i.e. CS-FND-0002-N20-AD for a water based foundation with the same shade.

Instead of making different variants for all the different colors of a cosmetics product, many brands list each color individually. The Rubik Combined Listings extension will allow you to group all the listings for a single product with combined information on the catalog and shopping cart pages, and this cosmetics variant images idea for merchandising will help you show all the different colors to your customers on the store view.

Common mistakes that force a renumber

The renumber is the worst day of a catalog manager’s year. Here’s how to avoid the integration meltdown, the incorrectly stuffed orders, and the returns nightmare that comes with it by learning from our mistakes.

  • Starting sequential numbers at 1 instead of 0001 (sort order dies at 10 products).
  • Encoding the current year or season into every SKU.
  • Reusing SKUs from discontinued products (returns get applied to the wrong item).
  • Mixing hyphens and underscores inconsistently across categories.
  • Using the manufacturer SKU verbatim (breaks when you switch suppliers).
  • Assigning SKUs per product instead of per variant (Shopify stores them per variant).

Once you have a good pattern, use the SKU generator to generate the entire range of SKUs in seconds. It handles prefixes, category codes, zero padding and the variant axes for you.

See the live demo store, watch the tutorial video, or read the getting started guide.

FAQ

How long should a Shopify SKU be?

10 codes consist of to 20 characters, being short enough to be printed on a label on the product, yet having enough characters to be uniquely identifying and descriptive.

Can I change a SKU after it is created?

Yes, you should change it, but not if you don’t have to. Every report, integration and fulfillment sheet will be referring to the old field name (if you change it). So try to avoid renaming a field unless it is absolutely necessary.

Should SKUs be at the product or variant level on Shopify?

Variant level. Many online retailers don’t realize that Shopify associates a unique SKU with every variant of a product (i.e. white t-shirt, black t-shirt, etc.). As a result, every color and size combination should be inventoried as a separate item.

What characters are safe in a SKU?

Upper case letters A to Z, digits 0 to 9 and hyphens only. No spaces, backslashes, dots, ampersands or lower case letters.

Should I reuse SKUs from retired products?

Never reuse SKUs. Reusing SKUs can cause Prophets to generate rogue inventory ghost entries, returns to be applied to the wrong product, and cause reporting confusion between years.

Is the manufacturer SKU good enough?

Only if you are a single-supplier brand. If you ever plan to switch suppliers or carry multiple brands, use your own SKU system and map manufacturer SKUs to it. It’s a little extra work up front, but it will be worth it in the end.

How do I generate SKUs in bulk?

Use our Free SKU generator tool. Choose a pattern, select your variant parameters. Then generate and download a CSV which you can then import into Shopify.

Co-Founder at Craftshift