What changed
From Shopify's 2026-10 Admin GraphQL API, a ProductVariant can hold up to 20 barcodes instead of one. Developers read them through the new `barcodes` connection and write them through `barcodes` inputs on `productSet`, `productVariantsBulkCreate` and `productVariantsBulkUpdate`. Each barcode can optionally declare UPC, EAN, ISBN, GTIN or ASIN type, in which case Shopify validates the value against the corresponding standard; untyped values continue to be accepted. The existing singular `ProductVariant.barcode` field is deprecated but remains compatible for now: reads return the first barcode and writes modify that first position. Shopify has not yet announced the removal date.
Why it matters
The change fixes a real commerce-data mismatch—one physical variant can legitimately have several identifiers across manufacturers, markets and sales channels—but it creates a silent compatibility trap. An integration that only reads the legacy singular field will continue working while seeing only one identifier, with no indication that additional barcodes exist. That can cause incomplete ERP sync, marketplace listing, POS lookup, supplier matching or product-feed data without producing an obvious API error.
Variants now have a barcode set instead of one slot
The new `barcodes` connection can hold up to 20 values per variant, each up to 255 characters. Typed identifiers can be validated as UPC, EAN, ISBN, GTIN or ASIN; custom identifiers can remain untyped.
The legacy field degrades gracefully — which is also the risk
`ProductVariant.barcode` still returns the first item in the barcode set and can still update that first item. Existing integrations therefore do not fail loudly when merchants add a second identifier. Shopify explicitly warns that readers of the old field can silently truncate the product's identifier set.
Writes have replacement semantics
Sending the new `barcodes` input replaces the variant's entire barcode set, so callers need to include existing values they intend to preserve. A single variant input cannot set both the legacy `barcode` and the new `barcodes` input.
Shopify has started the deprecation clock without setting the removal date
The singular field is formally deprecated and the change is flagged action required. Shopify says a future announcement will provide the removal date with a full API-version notice.