Skip to content Skip to footer

Shopify Variants Now Hold Up to 20 Barcodes

Summarise this article with
Shopify 2

Shopify variants now hold up to 20 barcodes

Released on , Shopify has lifted the one barcode per variant limit and now lets a single variant carry up to 20 barcodes, each tagged with the standard it belongs to. Read the Shopify Changelog release note here.

The old limit was one of those constraints that looked reasonable in the data model and caused constant low-level friction in the warehouse. A variant had exactly one barcode field. Real stock does not co-operate with that. The same physical item can arrive with a manufacturer's UPC printed on the outer box, carry your own private-label EAN on the shelf tag, and appear on a marketplace listing under an ASIN. All three identify the product. Shopify would only store one of them.

So merchants picked whichever code mattered most to the system they used most, and the rest went into a spreadsheet, a note field, or a member of staff's memory. That worked until someone scanned the wrong code at goods-in and got no result, or until a stock take turned up cases labelled with a supplier code the store had never recorded. The fix is unglamorous and overdue: keep all of them, in one place, on the variant.

How it works

Barcodes are managed on the variant details page in the Shopify admin, and from the Shopify app on a phone, which is where the scanning actually happens. You can add, scan and remove codes in either place. The cap is 20 per variant, and any barcode on a variant will identify the product when you search for it, which is the substantive change for anyone working with a scanner in their hand.

Each barcode is given a type. The supported standards are UPC, EAN, ISBN, GTIN and ASIN, plus a Custom option for internal codes that follow no public standard. Choosing a type is not just labelling: Shopify validates the value against that standard's format as you enter it, so a transposed or missing digit is caught at the point of entry rather than surfacing three weeks later as a feed rejection. Custom exists precisely because internal warehouse or bin codes have no format to check against.

For anyone maintaining a catalogue at scale, the two important surfaces are the bulk editor and the product CSV. Barcodes can be updated across many variants at once in the bulk editor, and the full set imports and exports through a Variant Barcodes column in the CSV. That means a catalogue-wide backfill from an existing spreadsheet is an import job rather than thousands of manual edits.

One rule governs everything downstream, and it is the detail worth reading twice: channels continue to read the first barcode provided. Wherever a single barcode is expected, whether that is a printed label, a sales channel feed or a third-party app, Shopify still hands over the first one on the variant. The other 19 are stored, searchable and available to you, but they are not broadcast.

Examples and use cases

The clearest case is a retailer who buys branded stock and relabels it. A case of goods arrives with the manufacturer's UPC on the carton. The shop's own shelf-edge label carries an EAN registered to the shop. Before this change, goods-in staff scanning the carton got nothing back unless the manufacturer code happened to be the one stored. Now both codes sit on the same variant and either scan resolves to the same product.

Multichannel sellers get the second obvious win. A merchant listing on a marketplace as well as their own store can hold the ASIN alongside the EAN that their Shopping feed uses, without one displacing the other. Booksellers and media retailers have the same shape of problem with ISBN sitting next to a distributor's own code. In each case the point is not that the extra code does anything automatically. It is that the record is complete and searchable, so a human or an app can find the product by whatever number is physically in front of them.

The Custom type covers the messier reality of a working warehouse. Internal bin codes, refurbishment batch numbers, codes inherited from a legacy system during a migration: none of these are valid UPCs or EANs, and previously they either occupied the single barcode slot or lived outside Shopify entirely. Storing them as Custom keeps them attached to the variant while keeping the standards-compliant codes free to do their job.

There is a quieter benefit in the search behaviour. Because Shopify now finds products by any barcode on a variant rather than only the first, a customer service enquiry that starts with a number read off a returned item resolves without anyone having to guess which numbering system it came from. The same applies to order lookups and stock queries. Previously, searching a supplier's code returned nothing at all, which is indistinguishable from the product not existing and is exactly the sort of dead end that turns a two minute job into an escalation.

What this means for UK merchants

UK retail runs on EAN-13, while Google Shopping and most comparison surfaces want a GTIN, and Amazon sellers work with ASINs. A UK merchant selling across their own Shopify store, Google Shopping and a marketplace has therefore always been juggling at least two identifiers for the same item. Being able to store them together removes a genuine source of error in the part of the operation that is hardest to audit, which is the gap between what is printed on a box and what is recorded in the system.

The feed implication deserves attention, because it is the one that can quietly cost money. Google's product data specification treats the GTIN as required for most products that carry one, and a missing or malformed value is a common cause of disapproved items in Merchant Center. Since Shopify passes only the first barcode to channels, the order of the list is now effectively a feed configuration decision. If the value in first position is an internal Custom code or a marketplace identifier rather than the GTIN, that is what the feed will carry. For anyone running Google Ads for a Shopify store, that ordering is worth checking before it shows up as a drop in eligible products.

The reassuring part is that nothing breaks on day one. Existing barcodes are already in place and stay in first position, so labels, channel feeds and apps behave exactly as they did before the change. There is no migration to run and no deadline attached. The risk arrives later, when someone adds a second or third code to a variant and does not think about where it lands in the order. Getting that order right is a catalogue structure decision as much as an admin one, and it is the kind of groundwork our Shopify web design team sets up when building or reworking a store.

Practical considerations

Format validation is a spelling check, not a fact check. Shopify confirms that a value matches the shape of the standard you assigned it, which catches typos and truncation. It cannot confirm that the code is registered to your business, that it belongs to this product rather than a similar one, or that a supplier has not reused it across a range. GS1 remains the authority on what a given GTIN actually refers to, and a well-formed number can still be the wrong number. Treat a green tick as evidence the digits are plausible, not that the product is correctly identified.

Third-party apps are worth a thought before a bulk import. Anything that reads the barcode field, whether that is a POS integration, a warehouse management tool or a stock sync app, still receives the first barcode and nothing else. Adding codes will not confuse those apps, but it will not enrich them either, so an integration that needs a second identifier still needs it passed some other way. The upgrade is to Shopify's own record keeping rather than to what the ecosystem around it can see.

The second consideration is discipline. Twenty slots per variant is generous enough that a catalogue can accumulate stale supplier codes, dead marketplace identifiers and half-remembered internal references, at which point the searchable-by-any-code benefit turns into ambiguity about which code is authoritative. Agree a convention before the backfill: GTIN first because that is what channels consume, then the codes staff actually scan, then anything historical. It is a five minute decision now and a catalogue clean-up later if it is skipped. This is a familiar pattern from Shopify's recent admin work, much as the dedicated dashboard for agentic storefronts gave merchants a single place to see how external channels were reading their catalogue.

For a more recent change to how external channels read the catalogue, see our coverage of Meta arriving as an AI channel in the Shopify admin.

FAQ

How many barcodes can a Shopify variant hold now?

Up to 20. Each one can be assigned a type of UPC, EAN, ISBN, GTIN or ASIN, or marked as Custom for internal codes that do not follow a public standard. Any barcode on the variant will find the product when you search, not just the first one.

Do I need to migrate my existing barcodes?

No. Shopify has confirmed that existing barcodes are already in place, so there is nothing to move and no deadline to work to. Your current code stays in first position, which means labels, sales channel feeds and apps carry on working exactly as they do today.

Which barcode does my Google Shopping feed use?

The first one on the variant. Channels continue to read the first barcode provided, wherever a single barcode is expected. That makes the order of the list a feed decision: if you add codes to a variant, make sure the GTIN is the one sitting in first position rather than an internal or marketplace identifier.

Can I update barcodes in bulk rather than one at a time?

Yes. Barcodes can be edited across many variants at once in the bulk editor, and the complete set imports and exports through a Variant Barcodes column in the product CSV. For a catalogue-wide backfill from an existing spreadsheet, the CSV route is the practical option.

Does Shopify check that a barcode is correct?

It checks the format, not the fact. When you assign a type, Shopify validates the value against that standard's format as you enter it, so a mistyped or truncated digit is caught immediately. It cannot verify that the code is registered to you or that it identifies this particular product, so a well-formed number can still be the wrong one.

Can I scan barcodes from a phone?

Yes. Barcodes can be added, scanned and removed from the variant details page in the admin or from the Shopify app on a phone. Scanning from the app is the more useful route at goods-in, since staff can now scan whichever code is physically printed on the packaging and still land on the right variant.

Want help with your own marketing?

Get a free audit, we will tell you what is working, what is not, and what to do about it.

Get a free audit