Shopify Variants Now Hold 20 Barcodes, Integrations Still Read One
Shopify variants now hold up to 20 barcodes, but channels, apps, and many 3PL syncs still read only the first one. What changed and what to check this week.
A case of candles shows up at your 3PL. The manufacturer’s UPC is printed on the carton. Your private-label EAN is on the unit sticker. The Amazon listing for the same candle is keyed to an ASIN.
Until this week, the Shopify variant for that candle had exactly one barcode field. You picked one identifier, and the other two lived in a spreadsheet, a metafield, or somebody’s head.
On September 8, 2026, Shopify announced multiple barcodes per variant. It closes a gap merchants have worked around for years. It also means the barcode list in Shopify can now hold more than the systems syncing from it can read.
What Changed
From the merchant changelog and the developer changelog:
- Up to 20 barcodes per variant, each up to 255 characters.
- Each barcode can have a type: UPC, EAN, ISBN, GTIN, ASIN, or Custom.
- You add, scan, and remove barcodes on the variant details page, and bulk edit across variants.
- CSV import and export use a new
Variant Barcodescolumn. - Admin search finds a variant by any of its barcodes, not only the first.
- POS scanning matches any barcode. That shipped a week earlier in Shopify POS v11.14.
- Nothing to migrate. The barcode you already had becomes the first one.
Channels and Apps Still Read Only the First Barcode
Channels and third-party apps keep reading the first barcode. The developer changelog puts it this way: once a second barcode is added, an integration reading only barcode “sees one of them with no signal that others exist.”
Scenario 1: The receiving mismatch. Your 3PL’s product sync pulled barcode from Shopify months ago and stored the manufacturer UPC. A new supplier ships the same item with a different UPC. You add it as a second barcode in Shopify and feel covered. At the dock, the 3PL scans the new UPC and gets no match, because their sync stored the value that was first at the time and nothing tells it a second one was added. Your retail POS finds the item fine, which makes the dock failure harder to diagnose.
Scenario 2: The reorder surprise. Someone on your team decides the private-label EAN should be primary and moves it to the top of the list. Every system that reads the first barcode picks up a different value on its next sync: your Google feed, your label app, possibly your 3PL. Nothing errors. The values just change.
Two API Rules That Can Wipe Barcodes
1. Sending barcodes replaces the whole set. On productSet, productVariantsBulkCreate, and productVariantsBulkUpdate, the barcodes input is a full replacement, not an append. An app that sends only its own barcode removes every other barcode on the variant. If more than one app touches barcodes in your store, ask each vendor how they write them.
2. You can’t send barcode and barcodes in the same variant input. Code that sets both is rejected, so an app has to pick one.
Availability is still settling. The developer changelog files the change under API version 2026-10. In a developer forum thread the same day, Shopify staff said the barcodes connection is on the unstable version for now, with stable versions exposing only the single barcode field. Staff also confirmed the existing barcode: search filter on the products query already matches every barcode on a variant:
query {
products(first: 5, query: "barcode:012345678905") {
nodes { id title }
}
}
Until barcodes reaches a stable API version, an app on a stable version can search by any barcode but read only the first. Expect a gap between what the admin shows and what your integrations see, and ask your vendors which API version they’re on.
Why This Keeps Happening: One-to-Many Data, One-to-One Integrations
We’ve written before about where to store 3PL SKUs in Shopify. The root issue is the same: one product has many identifiers, and the fields and integrations around it were built for one.
Shopify’s data model now stores many barcodes per variant. Each system that syncs from Shopify has to opt in to reading the full list, and until it does, it works from the first barcode.
Should You Put 3PL SKUs in the Barcodes List?
It’s tempting. There’s a Custom type, 20 slots, and search now finds them. We’d keep them out of it:
- Barcodes are for things you scan. A 3PL’s internal item code usually isn’t printed on the box. Adding it makes the list less useful to POS and receiving staff.
- A Custom barcode has no owner.
3PL-A-CANDLE-12in the list doesn’t say which 3PL assigned it or which warehouse uses it. - Any app that writes
barcodescan erase it. See rule 1 above.
ASINs are a closer call, since ASIN is one of Shopify’s barcode types. If you sell on one Amazon marketplace, keeping it in the list is reasonable. If you sell on several and your ASINs differ by marketplace, the list has no field saying which marketplace each one belongs to.
Quick Safeguards to Put in Place This Week
- Test with your 3PL. Add a second barcode to one variant, then ask them to scan that value at receiving. If it doesn’t match, their sync reads only the first barcode.
- Decide which barcode goes first for each product line, and write it down. For most brands that’s the manufacturer UPC or GTIN, because that’s usually the value your 3PL and marketplace listings were set up with.
- Limit who can reorder barcodes. Treat “move to first position” as a feed change, not a cosmetic edit.
- Export before any bulk edit. Keep the file as a backup in case an app or re-import replaces the full list.
Questions to Ask Your 3PL and App Vendors
- Does your Shopify sync read
barcodeorbarcodes? Which API version are you on? - If a variant has several barcodes, which one do you store, and what happens when the first one changes?
- When you write barcodes back to Shopify, do you send the full list or only yours?
- Can your receiving scanners match any barcode on a variant, or only the one you stored?
Where SKU Wrangler Fits
Multiple barcodes help any scanner find the right variant. Knowing that 3PL-A-CANDLE-12 and 3PL-B-VAN-12OZ are the same candle is a separate job, and it gets harder each time you add or switch a warehouse.
That’s the job SKU Wrangler does. Your 3PL SKU mappings sync back to Shopify as metafields, separate from the barcode list, so reordering or replacing barcodes doesn’t touch them.
Sorting out barcodes or SKUs across more than one 3PL? Reach us at hello [at] skuwrangler.com.