CSVインポートエラー解決
Shopify「The variant 'Default Title' already exists」の真因と完全攻略
商品CSVをインポートした瞬間、全行が同じエラーで真っ赤になる── Validation failed: The variant 'Default Title' already exists. この記事だけで真因と直し方が完全にわかります。結論から言うと、最も多い原因は 「バリアント行に Title が残っている」ことです。
なぜ「Default Title」が衝突するのか
Shopifyは商品CSVをHandle列を軸に読みます。あるHandleが最初に登場した行を 「商品本体」として扱い、Title・Body・Vendor・Type を取り込みます。 そして同じHandleの2行目以降を「バリアント(オプション違い)」として扱います。
オプション(サイズ・色など)を持たない商品の唯一のバリアントに、Shopifyは内部的に Default Title という名前を自動で付けます。 ここで問題が起きます──2行目以降にも Title が入っていると、Shopifyはそれを 「もう一つの商品/もう一つのDefault Titleバリアント」を作ろうとして、 すでに存在する Default Title と衝突する。これがエラーの正体です。
典型的な発生源は3つ:(1) Excelで各行にTitleをコピーして埋めてしまった、 (2) バリアント行に Option1 Name / Option1 Value が無い(または全行同じ値)、 (3) オプションの無い商品なのに同じHandleで複数行を作ってしまった。
壊れているCSV(よくある形)
Handle,Title,Option1 Name,Option1 Value,Variant SKU,Variant Price tshirt,定番Tシャツ,Size,Small,TS-S,1980 tshirt,定番Tシャツ,Size,Medium,TS-M,1980 ← 2行目にTitleが残っている tshirt,定番Tシャツ,Size,Large,TS-L,1980 ← これがDefault Title衝突を誘発
正しいCSV(このまま直せばOK)
Handle,Title,Option1 Name,Option1 Value,Variant SKU,Variant Price tshirt,定番Tシャツ,Size,Small,TS-S,1980 tshirt,,Size,Medium,TS-M,1980 ← Titleは空(同じHandle=バリアント) tshirt,,Size,Large,TS-L,1980 ← Titleは空
60秒で直す手順
- 各Handleの「先頭行」だけに Title / Body (HTML) / Vendor / Type / Tags を入れる。
- 2行目以降(バリアント行)は Title を空にする。Handleは同じまま。
- バリアント行には必ず Option1 Name(例: Size)と重複しない Option1 Value(Small / Medium / Large)を入れる。
- オプションが無い商品は、そのHandleの行を1行だけにする(重複させない)。
- 同じHandleが離れた場所で再登場しないようにする(Handleごとに連続させる)。空白行で分断しない。
✓ 直ったか確認:バリアント行のTitleを空にしたCSVを当ツールにドロップし、Title混入の指摘が0件になればOKです。
無料のプリフライトに直したCSVをドロップすると、Titleが残ったバリアント行を行番号で名指しします。 取込前に「あと何行でコケるか」がゼロ件になったのを確認できます。完全ブラウザ内・アップロード無し。
CSVをドロップして確認する →次回から「Default Title」を出さない作り方
直すだけでなく、CSVの作り方を変えれば再発しません。次の運用にすると、このエラーはほぼ起きなくなります。
- テンプレはShopifyのエクスポートを土台にする。既存商品を1つ書き出し、その列構成をそのまま使えば列名ズレが起きない。
- Titleは各Handleの先頭行だけ。2行目以降は空のまま。Excelのオートフィル(下方向コピー)でTitleを全行に伸ばさない。
- オプションが無い商品は1Handle=1行。同じHandleを複数行に増やさない。
- 編集は「エクスポート→編集→インポート」の往復で行い、ゼロから手打ちしない。
- 大量更新の前に数件でテストインポートし、1件成功を確認してから全件に進む。
よくある質問
Default Titleなんて設定していないのに、なぜ出るの?
オプションの無い商品の唯一のバリアントに、Shopifyが自動で付ける内部名が「Default Title」です。同じHandleの行が2つ以上それに対応してしまうと「すでに存在する」と衝突します。
ちゃんとバリアントがあるのにエラーになります。
バリアント行の Option1 Name / Option1 Value が空、または全行で同じ値になっていないか確認してください。値が区別できないとShopifyは全部を「Default Title」として扱います。
この修正で既存の商品データは消えませんか?
CSVの構造を直すだけで、Shopify上の既存データは消えません。心配な場合は管理画面から現在の商品をエクスポートしてバックアップを取ってください。