← All notes

Do Shopify products need SKUs or barcodes?

Decide when a Shopify variant needs an internal SKU, an assigned barcode, both identifiers, or an intentional blank based on its sales and fulfillment path.

Shopify can store a product variant without a SKU or barcode. Whether that blank is safe depends on what happens after the product is created: internal picking, POS scanning, warehouse sync, wholesale distribution, and marketplace feeds all impose different identifier requirements.

Shopify does not require a SKU for every product

Shopify defines SKU as an optional code created by the business. A small catalog fulfilled by one person may operate without one, but the cost of a blank grows when staff, reports, locations, or connected systems need a stable way to match a variant. Some fulfillment services can also require a unique SKU even though the Shopify product editor does not.

Use a SKU when the variant needs an internal identity that survives title edits and distinguishes similar options. If you adopt one, give every operationally relevant variant a unique value rather than adding SKUs only to whichever rows caused the latest problem.

A barcode is needed only when the product has or needs one

A barcode field is often appropriate for a manufactured retail product with an assigned UPC, EAN, ISBN, or other GTIN. It can be required for a marketplace, wholesale customer, warehouse, or scanning workflow. Shopify notes that some sales channels require a GTIN before a product can be published.

Custom goods, art, handmade products, and some private-label items may have no assigned GTIN. Leaving the barcode blank is more accurate than inventing a plausible number. Google likewise advises merchants not to guess or substitute an internal SKU when an assigned identifier does not exist; review itsunique product identifier guidancefor the channel-specific alternative.

A blank field is not automatically an error. It becomes a problem when a documented destination requires the value. An invented barcode can be worse than a blank because it falsely identifies the product.

Decide by product path, not by one catalog-wide assumption

Map each product group to the systems it enters. A made-to-order collection may need internal SKUs for production tickets but no GTINs. Resold consumer goods may need both internal SKUs and manufacturer-assigned barcodes. A digital product may need neither unless an integration uses SKU as its matching key.

Apply the decision at variant level. Different sizes, colors, or packaged quantities are distinct items in inventory and can require distinct identifiers. One barcode copied across all variants can make the field look complete while leaving scanners and feeds unable to distinguish the actual item.

Turn the decision into a reviewable policy

Record which groups require SKU, which require barcode, who assigns each value, and which system is the source of truth. Then scan the current catalog for blanks only within those scopes. This keeps intentional blanks out of the repair queue while making operational omissions visible.

For a deeper field-by-field comparison, readSKU vs. barcode on Shopify. If values already exist, follow with acatalog-wide identifier auditbefore making bulk corrections.