この記事でわかること
この記事の目次Contents閉じる開く
2026年9月8日、Shopifyは同じ機能について2本の記事を公開しました。
マーチャント向けの1本は、こう締めくくられています。「your labels, sales channel feeds, and apps keep working exactly as they do today.」
開発者向けの1本には、こういう見出しがあります。「Be aware of potential silent truncation.」
どちらも間違っていません。同じ仕組みを、逆の端から説明しているだけです。
実際に出荷されたもの
9月まで、Shopifyの商品バリアントが持てるバーコードは1つだけでした。同じ商品が、箱にはメーカーのUPC、棚札には自社プライベートブランドのEAN、マーケットプレイスのリスティングにはASINという状態で届いても、どれか1つを選んで残りはスプレッドシートに置くしかありません。
マーチャント向けchangelogは解決策を1行で書いています。「Now you can add up to 20 barcodes to a variant, and any of them identifies the product.」
一方開発者向けchangelogには、Shopifyが対応の必要な変更にだけ付けるフラグが2つ立っています。Deprecation announcement と Action required、対象はAPIバージョン2026-10です。ProductVariantに新しいbarcodesコネクションが追加され、連携が長年読んできた単数フィールドProductVariant.barcodeは「Deprecated fields」の一覧へ移りました。
削除日はまだ決まっていません。告知にあるのは「with a full API version of notice before the field goes away」という一文だけです。
上限も明記されています。1バリアントにつき最大20個、1つあたり最大255文字。さらにヘルプセンターは「the same barcode value can't be used twice on the same product or variant」と書いています。
検証機能は実在する。ただし既定ではオフ
マーチャント向けの告知は、型指定を精度の話として売り込んでいます。型を付ければ「we'll check the value against that standard's format, so a mistyped digit gets caught as you enter it」。
これは正確ですが、同じ段落にさらっと書かれた条件が付きます。独自コードにはCustomを選べる、というものです。そしてヘルプセンターによれば、既定のバーコード型はCustomです。
APIも同じことをスキーマの言葉で言っています。BarcodeTypeの値はちょうど5つ、ASIN、EAN、GTIN、ISBN、UPCだけで、Customは含まれていません。Customは型ではなく、型が無いことだからです。
If no
BarcodeTypeis provided, then no standard was declared and the value is stored as entered.
つまり、新しい欄に20個の番号を貼り付けて型のドロップダウンに一度も触らなかったマーチャントが手にするのは、検証されていない20個の文字列です。Shopifyが宣伝しているチェックディジット検証は、明示的に分類したバーコードにしか走りません。
分類した場合の長さの規則は、ヘルプセンターによると以下のとおりです。
| 型 | 受け付ける長さ |
|---|---|
Custom(既定) | 任意の値、最大255文字 |
GTIN | 8桁、12桁、13桁、14桁 |
UPC | 8桁または12桁 |
EAN | 8桁または13桁 |
ISBN | 10文字または13文字(Xを含んでよい) |
ASIN | 英数字10文字 |
もう1点、APIドキュメントが直接触れている厄介さがあります。「A single value can satisfy more than one standard, so declare the standard that the merchant or supplier assigned.」12桁のUPCはGTIN-12でもあります。Shopifyが求めているのは書式の判定ではなく、その番号が誰から割り当てられたかの記録です。
1番目のバーコードが、互換性のすべて
マーチャント向けの記事で実質的な仕事をしているのは、機能として書かれたこの一文です。「Channels continue to read the first barcode provided.」
同じ事実の開発者向けの書き方はこうです。
The first barcode you send is what the existing
barcodefield returns, and it sorts first in thebarcodesconnection.
まだ移行していないもの、つまりセールスチャネル、ラベルプリンター、ERP連携、仕入先フィード、マーケットプレイス系アプリは、依然として値を1つだけ読みます。どの値かは並び順だけで決まります。そのうえで警告が続きます。
Once a second barcode is added to a variant, an integration reading only
barcodesees one of them with no signal that others exist.
エラーも、フラグも、件数も返りません。読み取りは成功し、文字列が返ります。だからtruncationはsilentで、「今日は何も壊れない」と「注意せよ」が両立します。9月8日時点で壊れないのは、まだどのバリアントにも2個目のバーコードが無いからです。リスクは誰かが2個目を足した瞬間から始まります。
一括編集の前に押さえておきたい挙動がいくつかあります。
barcodesへの書き込みは集合ごと置き換える。 開発者向け告知より。「Sendingbarcodesreplaces the variant's entire set, so include the barcodes you want to keep.」- 1つのバリアント入力で
barcodeとbarcodesの両方は設定できない。 移行途中で両方を送るアプリは、マージではなく拒否されます。 barcodeを空にすると次が繰り上がる。 空値の送信は「clears the first barcode and replaces it with the next barcode in the set until there are no barcodes remaining」。空のbarcodeを書き込む古い連携は、バリアントを空にするのではなく、他のすべての連携が見る値を入れ替えます。- 検索はむしろ良くなった。
productsおよびproductVariantsクエリのbarcodeフィルターは、バリアント上のどのバーコードにも一致するようになりました。
1番目にASINが入るとどうなるか
Shopifyが機能紹介に使っているそのままの状況を考えます。メーカーのUPC、自社EAN、マーケットプレイスのASINが1つのバリアントに載っている。ここでGoogleが何を期待しているかを見ます。
GoogleのGTIN仕様が認めている識別子はUPC(GTIN-12)、EAN(GTIN-13)、JAN、ISBN、ITF-14です。ASINは含まれていません。書式の上限は「0, 8, 12, 13, or 14 digits」で、GS1の正しいチェックディジットが必須です。ASINは英数字10文字で、どの条件も満たしません。
Googleは推測についても率直です。「Don't submit a GTIN for a product that doesn't have one.」Amazonの識別子をgtinとして送るのは不足ではなく誤った値であり、Googleのトラブルシューターは無効なGTINを露出の問題として扱います。
もう1つのずれも見ておく価値があります。Googleのgtin属性は repeated field, up to 10、つまり1商品につき最大10個まで受け取れます。一方でShopifyのチャネルが読むのは1番目だけです。20個の識別子を保管できるようになったプラットフォームが、10個受け取れる相手に1個だけ渡している構図です。
インポートが失敗するCSV列
多くのマーチャントが実際にこの変更と出会う場所は商品CSVで、ヘルプセンターの列リファレンスはすでに書き換えられています。
旧来の Barcode 列は Barcodes になりました。複数値はセミコロン区切り、型は接頭辞とコロンで宣言します。
gtin:00012345678905; upc:012345678905; INTERNAL-123
型の無い値(上のINTERNAL-123)はCustomとしてインポートされます。値の中でバックスラッシュ、セミコロン、コロンを使うには\\、\;、\:とエスケープします。
この項目には、二度読む価値のある行が2つあります。
1つ目。「If you previously used a CSV file that had the old singular Barcode column, then it's updated to Barcodes on the next occasion that you export a products CSV file.」エクスポートのテンプレートが、こちらが頼まなくても形を変えます。
2つ目。「Your CSV file can't have both the Barcode column and the Barcodes column. A file that has both columns fails to import.」
現実的な事故はこちらです。チームが保存済みテンプレートや仕入先シート、Barcodeを出力するスクリプトを持っている。そこへBarcodesになった最新のエクスポートを貼り付ける。インポートは丸ごと失敗します。ただしこれは良い方の結末です。失敗が目に見えるからです。
静かな方の危険は、変わっていないのに代償だけが大きくなったCSVの上書き規則です。「If a non-required column in the import CSV file is blank, then the matching value in the product list is overwritten as blank.」Barcodes のセルが空だと、以前は識別子1つを失うだけでした。いまは最大20個を失います。
アプリは実際に何を読んでいるのか
どのchangelogも答えてくれないのがここです。インストール済みのアプリがbarcodeを読んでいるのかbarcodesを読んでいるのかは、リスティングページからは分かりません。App Storeで数千件のレビューを持つ2本のアプリについて、2026年9月16日時点の公開ドキュメントが移行のギャップをよく示しています。
Matrixify

出典: Shopify App Store(Matrixify、2026-09-16時点)
ITissible開発のMatrixifyは、標準の商品CSVでは足りないストア向けの一括インポート/エクスポートアプリです。App StoreのリスティングにはBuilt for Shopifyバッジ、評価4.9(レビュー1,635件)、プランはFree、$20/month、$50/month、$200/monthと表示されています。
同社のProductsドキュメントは、いまも単数の Variant Barcode 列を記載し、注記はこうです。「Shopify officially supports UPC or ISBN barcode types, but you can put here any other barcode format.」Variant Barcodes列も、型の接頭辞も、記載されている書式にはありません。
より重要なのは、Matrixifyがバーコードを識別子として使っている点です。Variant CommandのMERGE、UPDATE、DELETEはいずれも、Variant ID、Variant SKU、Variant Barcode、またはオプション値で対象バリアントを特定します。バリアントが複数のバーコードを持つようになったストアで、バーコードをキーにした更新がどの値に一致するのか、REPLACEが残りの集合に何をするのかは、現在のドキュメントからは判断できません。ここは推測せず、バーコードをキーにしたインポートを流す前にサポートへ確認すべき箇所です。
Shopify Marketplace Connect

出典: Shopify App Store(Shopify Marketplace Connect、2026-09-16時点)
旧Codisto、Shopify自身が開発するShopify Marketplace Connectは、Amazon、Target Plus、eBay、Walmartへリスティングを同期します。インストールは無料で、リスティングには月50件までのマーケットプレイス同期注文は無料、それを超える同期注文には1%の手数料、上限は$99/monthと記載されています。評価は4.1(レビュー2,106件)です。
同アプリのproduct identifiersに関するヘルプ記事は、フィールドが1つしかなかった世界に向けて書かれた明確な指示を出しています。「it is important that you upload your codes to Shopify into the 'barcode' field. This ensures Shopify continues to be the 'source of truth' of your product data.」
同じ記事は、そのフィールドがAmazonで何を左右するかも説明しています。「Without a GTIN/product identifier on Amazon, you will not be able to list your products unless you successfully apply for a GTIN exemption.」つまりAmazonへ届く識別子がリスティングの成立そのものを決めるわけですが、複数バーコードのバリアントでは、その識別子はたまたま先頭に並んだものになります。
どちらのアプリにも落ち度はありません。この調査日の8日前まで唯一の選択肢だったフィールドを、そのまま記載しているだけです。
POSだけは、すでに正しく扱っている
例外なので触れておきます。Shopify POSはAPIより1週間早い9月1日、POS v11.14で複数バーコードのスキャンに対応しました。スタッフは「using any of its associated barcodes, including identifiers such as GTIN, EAN, ASIN, or SKU-based codes」でスキャンや検索ができ、どれを使っても正しいバリアントに解決されます。
POSは集合を読み、チャネルは1番目を読む。この差が、移行そのものの縮図です。
ここから何をするか
1番目に何を置くかを、商品タイプごとに意図して決める。 これはデータ入力の細部ではなく、経路の設計判断になりました。そのバリアントがGoogle Shoppingへ行くなら、先頭はGoogleの書式を満たすGS1識別子であるべきで、ASINでも社内コードでもありません。移行していないものはすべて、そこに置いた値を引き継ぎます。
Customのままにせず、型を付ける。 既定のままだと、検証の無い255文字のテキスト欄です。GTIN、UPC、EAN、ISBN、ASINの宣言が長さとチェックディジットの規則を有効にし、同時に「どの規格に由来する値か」を機械可読で残す唯一の手段でもあります。
次の一括編集の前にCSVの運用を直す。 商品CSVをエクスポートし、ヘッダーが Barcodes になっていることを確認したうえで、Barcode を出力し続けているテンプレート、スクリプト、仕入先シートを更新してください。両方の列があるファイルはインポートに失敗し、Barcodes が空のセルは集合ごと消します。
フィード、ERP、マーケットプレイスの各アプリに1つだけ質問する。 「複数バーコードに対応していますか」ではありません。ProductVariant.barcodeとbarcodesコネクションのどちらを読んでいるか、そして書き込み時に何が起きるかを聞いてください。barcodeを書くアプリは1番目を更新して残りを保持し、barcodesを書くアプリはすべてを置き換えます。事後に知るには差が大きすぎます。
まず1バリアントだけに2個目を足す。 そのうえで、Google Merchant Center、マーケットプレイスのリスティング、ラベルのテンプレートに実際に何が届いたかを確認します。「何も変わらない」というShopifyの保証は、バリアントが2個目のバーコードを持つまでちょうど成立します。そしてその瞬間を知らせる仕組みは、ドキュメント上どこにも記載がありません。
機能自体は素直に良いものです。解決しようとしている複数識別子の問題は実在し、POSはすでに新しいデータを正しく読んでいます。ただShopifyは初日に保存層だけを出荷し、読み取り層を後回しにしました。そのうえでその隙間を、マーチャントには継続性として、開発者には危険として説明しています。どちらの読者も本当のことを伝えられています。確認するよう言われているのは、片方だけです。
出典
- Variants now support multiple barcodes — Shopify developer changelog、2026年9月8日
- Product variants now support multiple barcodes — Shopify Changelog、2026年9月8日
- Scan and search variants with multiple barcodes — Shopify Changelog、2026年9月1日
BarcodeType、ProductVariantBarcode、ProductVariant— GraphQL Admin API 2026-10- Product details page — Shopifyヘルプセンター
- Using CSV files to import and export products — Shopifyヘルプセンター
- GTIN
[gtin]— Google Merchant Center Help - Shopify Products import / export template & guide — Matrixifyドキュメント
- Product Identifiers: UPCs, EANs, ISBNs, GTINs and ASINs — Amazon by Codisto ヘルプセンター
- Matrixify、Shopify Marketplace Connect — Shopify App Store、2026-09-16時点
Shopifyは2025年8月25日、在庫CSVにBin name列を追加しました。バリアントごと・ロケーションごとに1つのビンを持ち、作成はCSVインポートのみ、Order Printerのピックリストに印字されます。できないのは、Shopifyの外に出ることです。Shopifyのスタッフは開発者フォーラムで2025年10月と2026年1月に、このフィールドへの公開APIアクセスが存在しないと明言し、開発者フォーラムでは2026年6月時点でも未対応のままだと報告されています。この1点がカテゴリ全体の設計を決めています。EasyScanとiPackyはビンをmetafieldに保存し、Bins-USAとShelfPilotは自前のデータベースに保存し、無料アプリのSimple Bin Locationsはmetafieldのビンを注文メモへ複写して納品書に出します。Shopify自身のマルチビンモデル、つまりビン単位の数量とunbinnedQuantityフィールドを持つ構造は、現時点では開発ストア限定のフィーチャープレビューとしてしか存在しません。料金、プランの壁、各アプリがビンデータをどこに置くかを、Shopify App Store、Shopifyヘルプセンター、shopify.dev、Shopifyコミュニティフォーラムで2026年9月18日に確認しています。