Shopifyに商品登録CSVをインポートする前に、Handle・Title・Variant SKU・Variant Barcode・Option列など特定の列を確認しておかないと、商品名が消える、バリエーションが壊れる、JANコードの先頭0が消えるといった事故が起きます。投入前はCSVバックアップの運用と差分previewで見る列をセットにすると安全です。SKUとBarcodeの列の違いは別記事も参照してください。
インポート前の3つの前提 — バックアップ・差分確認・小規模テスト
商品CSVをインポートする前に、以下の3つを毎回必ず行います。バックアップ手順の詳細はCSVバックアップを取らずに一括更新しない運用、Google Sheetsで編集する場合はCSVをGoogle Sheetsで編集するときの注意も確認してください。
| 前提手順 | 何をするか | なぜ必要か |
|---|---|---|
| バックアップ | 現在の商品CSVをエクスポートして保存する | 上書き事故が起きた際に元に戻すため |
| 差分確認 | エクスポートしたCSVとインポート予定のCSVを比較する | どこが変わるかを事前に把握するため |
| 小規模テスト | 1〜5商品だけで試しにインポートする | 想定外の上書きや崩れを事前に見つけるため |
バックアップの手順:
- Shopify管理画面 > 商品 > エクスポート を開く
- 「すべての商品」を選択し、「エクスポート」をクリックする
- ダウンロードしたCSVファイルに日付を付けて保存する(例:
products_backup_20260521.csv)
Handle列 — 既存商品の更新か新規作成かを分ける
Handleは商品CSVで最も重要な列です。Handleが一致する既存商品がある場合は「更新」、一致しない場合は「新規作成」になります。ここがずれると、意図しない重複商品ができる原因になります。
| チェック項目 | 確認内容 | 事故の例 |
|---|---|---|
| 空欄がないか | Handleが空欄の行はないか | インポート時にエラーになる、または意図しない新規商品ができる |
| 重複がないか | 同じHandleが複数行にまたがっているか(バリエーション行は正常な重複) | 商品情報が統合されるべき行が分断される |
| 余分な空白がないか | Handleの前後にスペースが入っていないか | 別商品として新規作成される |
| 大文字小文字 | Handleの大文字小文字が既存商品と完全に一致するか | 一致しない場合は新規商品として作られる |
実務上の注意:
- バリエーションがある商品は、同じHandleで複数行になります。1行目が親商品、2行目以降がバリエーション行です
- HandleはURLの末尾(例:
my-product-name)として使われるため、SEO上の意味もありますが、本記事ではインポート時の整合性に焦点を当てます
Handleのズレを検出する例:
既存商品のHandle: organic-green-tea-50g
CSVのHandle: organic-green-tea-50g (末尾にスペースあり)
→ 別商品として新規作成される可能性がある
Title列とBody HTML列
Title列
| チェック項目 | 確認内容 | 事故の例 |
|---|---|---|
| 空欄がないか | 商品名が入っているか | 商品名なしの商品ができる |
| 文字化けしていないか | 日本語が正しく表示されるか | UTF-8以外で開いた場合に文字化け |
| HTMLタグが入っていないか | タイトルにHTMLが含まれていないか | 商品名にタグがそのまま表示される |
Body HTML列
| チェック項目 | 確認内容 | 事故の例 |
|---|---|---|
| HTMLの崩れがないか | 開始タグと終了タグがペアになっているか | レイアウト崩れ |
| 空欄の扱い | 空欄にした場合の挙動を確認する | 既存商品の説明文が消える可能性がある |
- 空欄にした場合、既存商品の説明文が消える可能性があります。空欄 = 「変更しない」ではなく、空欄 = 「説明文をクリア」として処理されることがあります
- ExcelでCSVを開くと、HTMLタグ内の特殊文字が変換されることがあります。テキストエディタで元の内容を確認してください
Variant SKU列とVariant Barcode列
この2つの列は混同しやすいため、特に注意が必要です。SKUは店舗内の管理番号、BarcodeはJANコード等の識別コードです。
Variant SKU列
| チェック項目 | 確認内容 |
|---|---|
| 店舗内で一意か | 同じSKUが別商品に割り当てられていないか |
| 空欄の意図 | 空欄は「変更しない」ではなく「空で上書き」の可能性がある |
| 形式 | 使用しているSKUの規則と合っているか |
Variant Barcode列(JANコード等)
| チェック項目 | 確認内容 | 事故の例 |
|---|---|---|
| 先頭0が消えていないか | Excelで開いた際に先頭の0が削除されていないか | 04901234567890 が 4901234567890 になる |
| 数字のみか | 数字以外の文字が含まれていないか | バーコードとして認識されない |
| 桁数 | JAN(13桁)またはUPC(12桁)の正しい桁数か | Merchant Centerのinvalid_gtinエラーになる |
| SKUと混同していないか | SKU列にJANコード、Barcode列に管理番号が入っていないか | Merchant Centerでgtinエラーになる |
先頭0対策:
- ExcelでCSVを開く前に、Variant Barcode列の書式を「文字列」に設定する
- または、テキストエディタでCSVを開いて先頭0が残っているか確認する
- Google Sheetsの場合も、インポート時に「文字列」として読み込む設定にする
Option列(Option1 Name / Option1 Value / Option2 Name / Option2 Value / Option3 Name / Option3 Value)
バリエーションを構成するOption列は、間違えるとバリエーションが消えたり、不要なバリエーションが増えたりします。
| チェック項目 | 確認内容 | 事故の例 |
|---|---|---|
| Option Nameの統一 | 「色」と「カラー」など、同じ軸の名前が統一されているか | 別軸として認識される |
| Option Valueの統一 | 「赤」と「レッド」など、同じ値の表記揺れがないか | 別バリエーションとして作られる |
| 行の並び順 | 同一Handle内でOption行が連続しているか | バリエーションが正しく紐づかない |
| Option列数 | 既存商品のOption数と一致しているか | 3つ目のOptionが消える、または増える |
実務上の注意点:
バリエーションを変更する場合(例: サイズ展開をS/M/LからXS/S/M/Lに増やす)、既存のバリエーション行を残したまま新しい行を追加する形にします。既存のバリエーション行をCSVから削除すると、そのバリエーションが消える可能性があります。バリエーション行の削除がどう扱われるかは、最新の公式ヘルプで確認してください。
Image Src列とVariant Image列
Image Src列
| チェック項目 | 確認内容 | 事故の例 |
|---|---|---|
| URLがhttpsか | httpのURLが含まれていないか | セキュリティ警告、画像が表示されない |
| URLにアクセスできるか | シークレットブラウザでURLを開いて画像が表示されるか | 画像が紐づかない |
| 同一Handleの画像行 | 同じHandleで複数の画像行がある場合、行が連続しているか | 画像の順序が入れ替わる |
Variant Image列
| チェック項目 | 確認内容 |
|---|---|
| 画像URLが正しいか | Variant Imageに指定したURLが存在するか |
| 商品画像と一致しているか | そのバリエーションに適切な画像か |
画像URLを確認する手順:
- CSVのImage Src列のURLをコピーする
- シークレットウィンドウ(Chromeの場合はCtrl+Shift+N)を開く
- URLをアドレスバーに貼り付けて画像が表示されるか確認する
- ログインが必要なページが表示される場合、そのURLは一般公開されていないためインポート後に画像が表示されません
Status列とPublished列
この2つの列は似ていますが、意味が異なります。混同すると公開中の商品が非公開になったり、意図と違う状態になったりします。
| 列名 | 値の例 | 意味 |
|---|---|---|
| Status | active / draft / archived |
商品の状態 |
| Published | TRUE / FALSE |
公開チャネルに表示するかどうか |
| チェック項目 | 事故の例 |
|---|---|
Statusをdraftにするつもりがarchivedになっている |
商品がアーカイブされてストアフロントに表示されなくなる |
PublishedをFALSEにするつもりがStatusをdraftにしている |
意図と違う非公開状態になる |
既存商品のStatusをactiveからdraftに変更する意図があるか |
公開中の商品が非公開になる |
Tags列
| チェック項目 | 確認内容 | 事故の例 |
|---|---|---|
| 既存タグの維持 | インポートCSVのTags列に既存のタグが含まれているか | 既存タグが消えて新しいタグだけになる |
| 区切り文字 | タグの区切りがカンマになっているか | 一つの長いタグとして登録される |
| 空欄の扱い | Tags列を空欄にした場合、既存タグが消えるか | フィルタや自動化に使っているタグが消える |
Tags列を空欄にした場合の挙動は、最新の公式ヘルプで確認してください。空欄 = 「変更しない」ではなく、空欄 = 「タグなしで上書き」になる可能性があります。
空欄列の扱い — 「変更しない」と「クリアする」の違い
CSVの空欄がどう扱われるかは、列によって異なります。この違いを理解しておかないと、意図せずデータを消してしまう事故につながります。
| パターン | 説明 | 例 |
|---|---|---|
| 空欄 = 上書き | 空欄にすると既存の値がクリアされる | Tags、Body HTML、Variant SKUなどで起きる可能性がある |
| 空欄 = 無視 | 空欄の場合は既存の値が維持される | 一部の列でこの挙動になることがある |
| 列ごと省略 | 列自体をCSVに含めない場合 | 省略した列の扱いは公式ヘルプで確認する |
不安な場合は、変更したい列だけを残したCSVを作るのではなく、エクスポートしたCSVの変更箇所だけを書き換えてインポートする方が安全です。
Excel / Google Sheetsで起きやすい変換事故
CSVをExcelやGoogle Sheetsで開いて編集すると、以下の事故が起きやすくなります。インポート前にテキストエディタで開いて確認することをお勧めします。
| 事故 | 原因 | 対策 |
|---|---|---|
| JANコードの先頭0が消える | Excelが数値として認識する | 列の書式を「文字列」にしてから開く |
| ハイフン区切りの値が日付になる | 1-2 等が日付として認識される |
列の書式を「文字列」にする |
| HTMLタグが崩れる | 特殊文字の自動変換 | テキストエディタで確認する |
| 文字化け | Shift-JISで保存される | UTF-8で保存する |
| 数式が入る | セルの自動補完 | CSV保存後にテキストエディタで確認する |
| 列ずれ | 共同編集時に列が挿入・削除される | インポート前に列数を行ごとに確認する |
インポート前チェックシート
CSVをShopifyにアップロードする前に、以下の項目を確認します。
| # | チェック項目 | 確認方法 |
|---|---|---|
| 1 | バックアップCSVをエクスポートした | 管理画面 > 商品 > エクスポート |
| 2 | Handleに空欄・前後スペースがない | テキストエディタで確認 |
| 3 | Handleの大文字小文字が既存商品と一致している | 既存CSVとの比較 |
| 4 | Titleが空欄でない | CSVで目視確認 |
| 5 | Body HTMLのHTMLタグが崩れていない | テキストエディタで確認 |
| 6 | Variant Barcodeの先頭0が残っている | テキストエディタで確認 |
| 7 | Variant SKUとVariant Barcodeを混同していない | 内容の確認 |
| 8 | Option列のName/Valueが既存と一致している | 既存CSVとの比較 |
| 9 | Image SrcのURLがhttpsでアクセス可能 | シークレットブラウザで確認 |
| 10 | StatusとPublishedの値が意図通り | 値の確認 |
| 11 | Tags列に既存タグが含まれている(タグを維持する場合) | 既存CSVとの比較 |
| 12 | 1〜5商品だけでテストインポートした | 管理画面 > 商品 > インポート |
| 13 | テスト後の結果を確認し、問題がないか確認した | 商品管理画面で確認 |
自動的に検出できる部分と人間の判断が必要な部分
自動検出しやすい項目
以下の項目は、CSVの値を機械的にチェックすることで事前に検出できます。
- Handleの空欄・重複・前後空白の検出
- Handleの大文字小文字の不一致検出(既存CSVとの比較)
- Title、Body HTMLの空欄検出
- Variant Barcodeの桁数チェック(12桁または13桁)
- Variant Barcodeの先頭0消失検出(数字のみで12桁または13桁に満たない場合)
- Variant SKUの重複検出
- Image SrcのURL形式チェック(httpsかどうか)
- Status列とPublished列の有効値チェック
- 文字コードの検出(UTF-8以外の可能性)
- 行数と列数の異常検出
- 更新前後差分の行番号付きレポート
人間の判断が必要な項目
以下は機械的なチェックだけでは判断できず、担当者の事業知識や判断が必要です。
- どの列を本当に更新するか(全列更新か、特定列のみか)
- 既存商品の更新か新規作成か
- Tags列の内容の取捨選択
- 商品説明文(Body HTML)の崩れの修正内容
- バリエーション構成の変更が事業上適切か
- 空欄にする列が本当にクリアしてよいか
- 復旧が必要になった時の判断
- インポート後の表示確認
関連して確認したい記事
CSVを送らなくても、列名・更新したい作業・不安な事故だけで確認順を整理できます。初回相談では機密CSVやスクリーンショットの送付は不要です。
相談時に用意するとよい情報
- 更新したい内容(新規商品追加 / 既存商品更新 / バリエーション変更など)
- 対象商品のおおよその件数
- 現在使っているCSVエディタ(Excel / Google Sheets / テキストエディタなど)
- 過去にCSV投入でトラブルがあった場合はその内容
Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。
無料診断を依頼する
