
Fill in the codes you want, and leave anything you do not need blank.
Usually two to four letters.
The product type, such as TSH for t-shirt.
BLK, WHT, NVY and so on.
S, M, L, or any second variant code.
Pick one and keep it for the whole catalogue.
Up to 200 at a time.
Starting at 1001 keeps every code the same width.
1 to 8. Four digits covers 10,000 products.
Each segment is uppercased and stripped back to letters and numbers, so spaces, slashes and accents are removed rather than carried into your catalogue. Batches are capped at 200 SKUs, and padding is held between 1 and 8 digits.
SKUs are internal codes you invent, so nothing here is issued or registered to you the way a UPC or EAN is. The generator does not know what is already in your catalogue, so check for duplicates before importing, and keep one SKU per variant rather than per product.
See how Mage helps Shopify brands lift repeat purchase rate with loyalty, referrals and store credit.
A SKU, short for stock keeping unit, is the internal code you give a single sellable item so you can track it through stock, orders and reporting. It is yours to invent, and it exists so that a person or a system can identify exactly which product and variant is being counted. Good SKUs are readable at a glance, which is why most of them encode brand, category and variant rather than being random numbers.
It cleans each segment down to letters and numbers, uppercases it, drops anything you left blank, joins the rest with your separator, then appends the sequence number padded to the width you chose. With the defaults that gives MAGE, TSH, BLK and M joined by hyphens, followed by 1001 padded to four digits, so the first code is MAGE-TSH-BLK-M-1001 at 19 characters. The counter then increments on every row, giving MAGE-TSH-BLK-M-1002, MAGE-TSH-BLK-M-1003 and so on.
A SKU is internal and you invent it, so no two retailers need to agree on it. A UPC or EAN is externally issued: the number comes from a GS1 company prefix that is licensed to you, and it is what a retailer scans at a till. An ASIN is Amazon's own product identifier, assigned by Amazon rather than by you. A barcode is simply a printed symbol that encodes one of those numbers, and it can encode your SKU just as easily as a UPC.
Short, readable and predictable. Someone should be able to look at MAGE-TSH-BLK-M-1001 and know it is a black medium t-shirt without opening a spreadsheet. Keep the segment order identical across the catalogue, use the same width for each code, and avoid characters that a scanner, a spreadsheet or a URL might mangle.
Because they are almost indistinguishable from zero and one in most fonts, and warehouse staff read SKUs off printed labels under bad lighting. A picker who reads OI0 as 010 pulls the wrong item, and the error only surfaces when the customer complains. Substitute a different letter, for example use BLU rather than BLO, or drop the vowels from your category codes entirely.
No. A SKU should encode only things that never change about the item, and price is one of the first things you will change. The same applies to supplier, season, promotional status and stock location. If any of those are in the code you eventually face a choice between a misleading SKU and reissuing codes across your whole history, and both are painful.
Roughly 8 to 16 characters suits most catalogues, and going beyond about 20 starts to hurt. Too short and you run out of room to tell variants apart, too long and it stops being readable on a label or in a picking list. The defaults here produce 19 characters, so trimming a segment or shortening the sequence padding is worth doing if your codes need to fit a small label.
Yes, and the unit of uniqueness is the variant rather than the product. A t-shirt in three colours and four sizes is one product but twelve sellable units, so it needs twelve SKUs. Reusing a SKU across two variants breaks stock counts, picking and every sales report that groups by SKU.
Keep the product portion identical and vary only the attribute segments, so the family sorts together alphabetically. MAGE-TSH-BLK-S, MAGE-TSH-BLK-M and MAGE-TSH-BLK-L sit next to each other in any list, which makes stock counts far easier to eyeball. Decide the attribute order once, colour before size or the reverse, and never change it.
Starting at a number that already fills the padding width means every code is the same length, in this case all the way to 9999, which keeps labels and columns aligned. It also avoids the spreadsheet habit of stripping leading zeros, which turns 0001 into 1 and quietly breaks a matching import. If you would rather start at 1, keep the padding at four digits so the code reads 0001.
Shopify holds a SKU field on every product variant, under inventory, and it is what powers stock tracking, reports and most third-party apps. To load a batch, download the CSV here and paste the codes into the Variant SKU column of a Shopify product import, matching one row per variant. Shopify does not enforce uniqueness for you, so check for duplicates before you import.
Yes. The download gives you a file with a single sku header row followed by one code per line, which opens cleanly in Excel, Google Sheets or Numbers. From there you can paste the column straight into a product import template, or add your own columns for title, price and stock alongside it.
Avoid it wherever you can. A SKU is the thread that ties historical orders, stock movements, supplier purchase orders and reports together, so changing one splits the item's history in two. If a code is genuinely wrong, retire it and issue a new one rather than editing in place, and keep a note of the mapping.
Yes. No signup, no email, and no limit on how many batches you generate, and everything runs in your browser rather than on a server. It is built by Mage Loyalty, a loyalty, referrals and store credit app for Shopify.
Mage is a loyalty, referral and store credit app built for Shopify. Reward repeat purchases, run VIP tiers, and give customers a reason to come back, without writing a line of code.