CSVインポートエラー解決
Shopify「The variant 'Default Title' already exists」の真因と完全攻略
商品CSVをインポートした瞬間、全行が同じエラーで真っ赤になる── Validation failed: The variant 'Default Title' already exists. この記事だけで真因と直し方が完全にわかります。結論から言うと、ほぼ100% 「バリアント行に 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ごとに連続させる)。空白行で分断しない。
無料のプリフライトに直したCSVをドロップすると、Titleが残ったバリアント行を行番号で名指しします。 取込前に「あと何行でコケるか」がゼロ件になったのを確認できます。完全ブラウザ内・アップロード無し。
CSVをドロップして確認する →よくある質問
Default Titleなんて設定していないのに、なぜ出るの?
オプションの無い商品の唯一のバリアントに、Shopifyが自動で付ける内部名が「Default Title」です。同じHandleの行が2つ以上それに対応してしまうと「すでに存在する」と衝突します。
ちゃんとバリアントがあるのにエラーになります。
バリアント行の Option1 Name / Option1 Value が空、または全行で同じ値になっていないか確認してください。値が区別できないとShopifyは全部を「Default Title」として扱います。
この修正で既存の商品データは消えませんか?
CSVの構造を直すだけで、Shopify上の既存データは消えません。心配な場合は管理画面から現在の商品をエクスポートしてバックアップを取ってください。