The two fields
SKU and Barcode are not the same thing
The SKU is yours. It is an internal code you invent, used for picking, counting and reporting, and nobody outside your business needs to recognise it.
The Barcode (ISBN, UPC, GTIN) field is for a globally unique product identifier. Shopify passes it to sales channels such as Google Shopping, Facebook and marketplace integrations, which validate it against the GS1 registry. Putting your internal SKU in this field is a common and costly mistake: the listings syndicate, fail validation and get suppressed.
The safe rule: if you manufacture the product and hold a GS1 prefix, put the GTIN in the Barcode field. If you resell, use the manufacturer's GTIN. If neither applies, leave it empty and use the SKU field alone.
At the till
Making labels Shopify POS can scan
Shopify POS looks up a scanned string against the variant's barcode field first and the SKU field second, so a label carrying either will find the product. Whichever you choose, be consistent across the whole catalogue — a mixed shelf where some labels carry GTINs and others carry SKUs produces scans that miss for no obvious reason.
Encode retail GTINs as EAN-13 or UPC-A so the same label also works in any other retail system. Encode internal SKUs as Code 128, which handles letters and is far more compact than Code 39. Scanners paired with POS behave like keyboards, so what matters is that the decoded string matches the field exactly — including case and any leading zeros.
Workflow
From spreadsheet to printed labels
For a handful of new products, generate each symbol here, download the SVG and drop it into your label template. For a larger run the pattern most small stores settle on is: export variants from Shopify to CSV, decide which field the label should carry, then generate the symbols you need and lay them out in a document or label-printing app.
Whatever the volume, print one label first and scan it with the actual scanner and the actual POS device before you commit to a batch. Check three things: the string that lands in the search box matches the field exactly, the quiet zones are intact, and the label is readable after it has been handled for a week.
Avoid these
Four mistakes that cause real damage
- Internal SKUs in the Barcode field. They syndicate to Google and marketplaces and fail validation there.
- Recycled GTINs. Reassigning a retired product's number to a new item confuses every channel that cached the old listing. GS1 asks you to wait years before reuse.
- Lost leading zeros. Spreadsheets strip them from GTINs relentlessly. Format the column as text before you import, and check a 12-digit UPC has not become 11 digits.
- Same barcode on multiple variants. Each size and colour needs its own value, or your stock counts and your till both pick the wrong one.
Questions
Frequently asked questions
Can I put my SKU in the Shopify barcode field?
You can, but do not if you use sales channels. That field syndicates to Google Shopping and marketplaces, which validate it as a real GTIN and suppress listings that fail.
Does Shopify generate barcodes for me?
Shopify stores the value but does not draw the symbol. Generate the image here or use a label app from the Shopify app store.
Which format works with Shopify POS?
Any format your scanner reads. Use EAN-13 or UPC-A for retail GTINs and Code 128 for internal SKUs.
Do I need a GTIN to sell on my own Shopify store?
No. Selling direct requires no product identifier. You need one for retail distribution, Amazon, and most shopping feeds.
How do I stop Excel eating my leading zeros?
Format the column as text before pasting, or import the CSV with the column typed as text. Verify a 12-digit UPC is still 12 digits after the round trip.
Can two variants share a barcode?
No. Each variant a customer can buy separately needs its own value, otherwise inventory and POS lookups become ambiguous.