SKU Generator

Design a SKU pattern once, then generate codes for a whole product list at once: attribute columns map straight into the pattern, the sequence zero-pads itself, collisions get flagged in red, and the result exports as CSV — with optional Code 128 barcodes rendered right here in your browser.

To create SKU numbers: combine a short product-line prefix, one or two attribute codes, and a zero-padded sequence — e.g. TS-BLK-M-001 Type a pattern above using {A}, {B} for pasted columns and {SEQ} for the running number, and every row of your product list gets a consistent, collision-checked SKU instantly.
{SEQ} = running number · {A} {B} {C} = columns from each product line · {A3} = first 3 characters of column A. Everything else is literal text.
Leave empty to build a single SKU from the pattern alone. Paste straight from a spreadsheet — tab-separated columns are detected automatically.

Your product list never leaves this page — no uploads, no servers, works offline once loaded.

[ Ad slot — replace with AdSense / Ezoic code ]

What makes a good SKU

A SKU (stock keeping unit) is a code you invent so that every distinct product variant has exactly one unambiguous name in your own system. Good SKUs share a structure: a short prefix that groups the product line, one or two attribute segments that encode what varies (color, size, material), and a sequence number that guarantees uniqueness even when attributes collide. TS-BLK-M-001 reads instantly as "t-shirt, black, medium, first of its kind" — which is the whole point. Practical rules that save pain later: keep SKUs to roughly 8–16 characters; use only letters, digits, and hyphens (spaces and slashes break imports and barcode fonts); start letters, not digits, so spreadsheets never mangle them into numbers; and never encode information that changes, like price or supplier — a SKU is an identity, not a description of current conditions.

SKUs on marketplace platforms

Shopify, eBay, and Etsy all accept seller-defined SKUs, and none of them cares about your format — the code exists for you, not the platform. What matters is consistency across platforms: if the same black medium tee is TS-BLK-M-001 everywhere, you can reconcile inventory and sales reports without a lookup table. On eBay the field is called "Custom label (SKU)" and is invisible to buyers; Shopify uses SKUs to track inventory per variant; Etsy shows the SKU field per listing variation. One caution: some platforms treat SKUs as case-sensitive in exports and case-insensitive in search, so picking one case (this tool defaults to UPPERCASE) and sticking to it avoids phantom duplicates.

Generating SKUs from a spreadsheet — without formulas

The usual way sellers batch-create SKUs is a spreadsheet formula chaining UPPER, LEFT, CONCAT, and a padded row number — which works until someone sorts the sheet and every sequence number silently reshuffles. This tool does the same job without formulas: copy the product columns from your spreadsheet, paste them here (tab separation is detected automatically), and the pattern is applied to every row with a stable sequence. The CSV download gives you the original columns back with the SKU appended, ready to paste into your inventory sheet or import file.

Collision detection

Two rows producing the same SKU is the failure mode that corrupts inventory counts, and it happens easily when a pattern doesn't include {SEQ} — two "Black / S" rows generate identical codes. The tool checks every generated SKU against all the others and flags duplicates in red the moment they appear, so you can fix the pattern before the codes ever reach your system. The fix is almost always adding {SEQ} or one more attribute segment.

SKU barcodes (Code 128)

If you print shelf or bin labels, tick Show Code 128 barcodes and each SKU is rendered as a scannable Code 128 barcode, generated entirely in your browser as an SVG you can download and drop into a label template. Code 128 is the right symbology for SKUs: it encodes letters, digits, and hyphens compactly and every ordinary retail scanner reads it. Two honest notes: print barcodes at least 25 mm wide with a few millimetres of quiet zone either side, or cheap scanners will struggle; and a Code 128 barcode of your SKU is not a UPC — see the FAQ below.

Frequently asked questions

What's the difference between a SKU and a UPC?

A SKU is your private, self-assigned code — free, any format, meaningful only inside your business. A UPC (or EAN) is a globally unique product identifier issued through GS1 for a fee, printed as the barcode on retail packaging, and identical for that product no matter who sells it. Marketplaces sometimes require a UPC for new branded products; they never require your SKU to be anything in particular. You can barcode a SKU (Code 128, as this tool does) for internal use, but it won't scan as a product in anyone else's system.

How long should a SKU be?

Aim for 8–16 characters. Long enough to encode line + one or two attributes + a sequence; short enough to read aloud over the phone, type into a search box, and fit on a small label. Past ~20 characters, error rates when humans transcribe them climb noticeably.

Letters, numbers, or both?

Both, with letters doing the meaningful work and numbers guaranteeing uniqueness. Avoid characters that cause trouble downstream: spaces, slashes, and commas break CSV imports; leading zeros vanish in spreadsheets unless the column is formatted as text; and the letters O/I are easily confused with 0/1 — some warehouses ban them from SKUs entirely, which is a reasonable house rule.

Can I change my SKUs later?

You can, but treat it like renaming a database key: every system holding the old code — marketplace listings, inventory sheets, printed labels, past order exports — keeps the old one unless updated, and your sales history splits across two identities. If a scheme has become genuinely unworkable, migrate deliberately: generate the new codes, keep a mapping of old → new, update platforms in one pass, and relabel physical stock as it's touched. For anything less than unworkable, live with the old scheme and apply the new one to new products only.

Is my product list uploaded anywhere?

No. Generation, collision checking, and barcode rendering all run in your browser tab — no server, no network request. The page keeps working offline once loaded.

[ Ad slot — replace with AdSense / Ezoic code ]

Related tools