Category: CSV・データ処理

  • Variant Barcodeを入れる前に確認したいJANコードの持ち方

    Variant Barcodeを入れる前に確認したいJANコードの持ち方

    Variant Barcode列にJANコードを入力する前に確認すべきは、「そのJANは親商品につくものか、それとも色・サイズ別のvariantごとに割り当てられたものか」です。親商品のJANをvariant行に転記してしまうと、在庫連携やPOS連携で意図しない挙動になります。本記事では、JANコードの持ち方を整理し、CSV入力時の落とし穴を自動チェックと人間の判断に分けて解説します。


    Variant Barcodeとは何を入れる列か

    Shopify商品CSVのVariant Barcode列には、そのvariant(色・サイズなどの組み合わせ)に対応するバーコード番号を入力します。多くの場合、日本ではJANコード(GTIN-13またはGTIN-8)が該当します。

    重要なのは、この列が「親商品(Product)」単位ではなく「variant(Variant)」単位であることです。たとえばTシャツ商品で「赤・S」「赤・M」「青・S」の3variantがある場合、それぞれに異なるJANコードが割り当てられていれば、3つのvariant行にそれぞれ別のJANを入力します。

    親商品JANとvariant JANの違い

    項目 親商品JAN variant JAN
    割り当て単位 商品全体(色・サイズ問わず) 色・サイズの組み合わせごと
    CSVでの入力場所 1行目(Handleの先頭行)のVariant Barcode 各variant行のVariant Barcode
    POSでの用途 商品検索のヒント程度 スキャン時に特定variantを確定
    在庫管理との関係 直接連動しない 特定variantの在庫と紐づく

    自社でJANを付与している場合は、規格別にJANを発行しているか、それとも商品全体で1つのJANにしているかを、まず商品マスタで確認してください。


    典型的な3パターン ― あなたのショップはどれ?

    パターンA:variantごとに個別JANがある

    アパレルや雑貨でよくあるケースです。色・サイズごとにJANが発行されており、variant行ごとに異なる13桁(または8桁)のコードが入力されます。このパターンでは、各variant行のVariant Barcode列にそのままJANを入力します。

    パターンB:親商品JANのみ、variantにはJANがない

    食品や日用品で多いケースです。商品全体で1つのJANが付いており、色やサイズのバリエーションがあってもJANは共通です。この場合、先頭行(最初のvariant行)にJANを入力し、残りのvariant行は空欄にするか、同じJANを入力します。ただし、同じJANを複数variantに入れると、POSスキャン時にどのvariantが選ばれるかは環境に依存する点に注意が必要です。

    パターンC:JANコードを一切持っていない

    オリジナル商品やハンドメイド品などで、JAN未登録のケースです。Variant Barcode列は空欄で問題ありません。空欄でもShopify上の商品表示や販売には影響しませんが、POSレジでのバーコードスキャン検索はできなくなります。


    Excelで起こりやすい2つのトラブル

    CSVをExcelで開いてJANコードを編集すると、以下の問題が頻発します。どちらも「データの見た目は合っているが、実際の値が壊れている」ため、アップロード後に不具合として発覚します。

    先頭ゼロが消える

    JANコードの先頭が「0」の場合(たとえば 0454991111111)、Excelはこれを数値として扱い、先頭のゼロを削除して12桁にしてしまいます。対策は以下のいずれかです。

    • CSVをテキストエディタで開いて確認する
    • Excelの「データ」タブから「テキストとして読み込む」で列の書式を「文字列」に指定する
    • 入力前にセルの書式を「文字列」に変更する

    指数表記(E表記)になる

    13桁の数字はExcelで 4.54991E+12 のように指数表記に変換されることがあります。見た目だけでなく、保存時の実際の値も丸められているため、そのままアップロードすると「無効なバーコード」エラーになります。

    この問題も、CSVをExcelで開かずにテキストエディタで確認することで確実に防げます。


    SKU・Barcode・JANの役割まとめ

    CSV入力時に混同しやすい3つの識別子を整理します。

    識別子 CSV列名 役割 重複可否 必須か
    SKU Variant SKU 社内在庫管理コード ショップ内で一意推奨 任意
    Barcode Variant Barcode POSスキャン用バーコード番号 GTIN体系内で一意 任意
    JAN(GTIN-13) Variant Barcodeに入力 日本の流通用商品識別番号 全局で一意 任意

    SKUは社内の都合で自由に付与できるコードで、JANは(一財)流通コードセンターが管理する全球規格です。「SKUにJANを入れている」という運用は技術的には可能ですが、役割が異なるため、列は分けて管理することをおすすめします。


    JANコードの桁数チェック ― 自動で確認できる部分

    JANコードにはGTIN-13(13桁)とGTIN-8(8桁)の2種類があります。CSVに入力する前に、以下のチェックを自動化できます。

    チェック手順

    1. 文字列長が13または8であることを確認する
    2. すべての文字が数字であることを確認する
    3. チェックデジット(最後の1桁)が正しいことを確認する

    チェックデジットの計算方法(GTIN-13の場合)

    12桁の数字について、以下の計算を行い、結果が最後の1桁と一致すれば有効です。

    1. 左から奇数桁(1、3、5…桁目)を合計する
    2. 左から偶数桁(2、4、6…桁目)を合計し、3倍する
    3. 1と2を足す
    4. 10から3の1の位を引く(0の場合は10に)
    5. 結果が13桁目と一致すれば有効

    この計算はスプレッドシートの数式や簡単なスクリプトで自動化できます。CSV入力前に一括検証しておくと、アップロード後のエラーを減らせます。


    自動チェックと人間の判断の切り分け

    確認項目 自動チェック可能 人間の判断が必要
    桁数が13または8か ○ —
    数値のみか(空白・記号がないか) ○ —
    チェックデジットが正しいか ○ —
    先頭ゼロが欠落していないか ○ —
    variantごとのJANが正しい割り当てか — ○(商品マスタと照合)
    親商品JANをvariantに入れていないか △(重複検知は可能) ○(意図の確認)
    SKUとBarcodeを混同していないか — ○(運用ルールの確認)
    Barcode列を空欄にするか共通JANを入れるか — ○(ビジネス判断)

    自動チェックはスプレッドシートやスクリプトで一括実行できます。「このJANは本当にこのvariantに対応しているか」の確認は、商品マスタ(またはJAN発行元の台帳)と見比べる必要があるため、担当者の目視確認が基本になります。


    Variant Barcodeが空欄のときどうなるか

    Variant Barcodeを空欄のままにしても、Shopifyストアフロントでの商品表示や購入には影響しません。空欄になるケースと、その影響を整理します。

    • POSレジでのスキャン不可:バーコードがないため、物理スキャナーで商品を特定できません。POS運用がある場合は必須です。
    • Google Merchant Centerの警告:Google Shoppingフィードで gtin が欠落していると警告が出ることがあります(gtinはBarcodeから取得されます)。
    • 在庫連携での不一致:外部倉庫やERPとJANベースで連携している場合、Barcode空欄のvariantはマッチングされません。

    「当面は空欄で問題ないが、将来のPOS導入や外部連携に備えておきたい」という場合は、一旦空欄でアップロードし、後からCSVで一括追記する運用も可能です。


    相談時に用意するとよい情報

    • 商品マスタのJANコード割り当てルール(variantごと or 親商品ごと)
    • 現在の商品CSV(Variant Barcode列の状態がわかるもの)
    • POSまたは外部システム連携の有無
    • 使用しているスプレッドシート編集ツール(Excel / Googleスプレッドシート / その他)
    • JANコードの発行元(自社発行 / メーカー付与 / GS1 Japan)
    • 特に困っている症状(桁数エラー / 先頭ゼロ消失 / スキャン不可など)

    初回相談では機密CSVやスクリーンショットの送付は不要です。まずは現在の運用方法と課題を言葉で共有していただければ、具体的な確認手順をご案内できます。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • Image SrcとVariant Imageを混同すると商品画像がどうずれるか

    Image SrcとVariant Imageを混同すると商品画像がどうずれるか

    Shopifyの商品CSVで画像がずれる原因の大部分は、Image Src列とVariant Image列の役割を混同することにあります。Image Srcは「商品に属する画像の一覧」を定義し、Variant Imageは「その画像のうちどれをどのバリエーションに割り当てるか」を指定します。この2つの関係を正しく理解すれば、CSV一括登録での画像ずれを防げます。

    Image SrcとVariant Imageは何が違うのか

    Shopifyの商品CSVには画像に関連する列が複数あります。よく混同される2つの列を整理します。

    Image Src(商品レベルの画像URL)

    Image Srcは、商品に紐づく画像ファイルのURLを記述する列です。1つの商品に5枚の画像を登録する場合、同じHandleの5つの行にそれぞれ異なるURLを書きます。Image Srcで指定された画像は商品ページのギャラリーに表示されます。

    • 画像のURL(https://cdn.shopify.com/... など)をそのまま記述
    • Image Position列で表示順を制御(1, 2, 3…)
    • Image Alt Text列で代替テキストを設定
    • 商品全体の画像リストを構成する

    Variant Image(バリエーションに割り当てる画像URL)

    Variant Imageは、特定のバリエーション(色違いやサイズ違い)に「どの画像を表示するか」を指定する列です。ここに書くURLは、必ずいずれかのImage Srcと一致している必要があります。

    • バリエーション行に記述する画像URL
    • 記述したURLは商品画像ギャラリーのどこかの画像と一致する必要がある
    • 空欄の場合、variant画像が未指定になり、テーマや商品ページ、連携先によっては代表画像が表示されることがあります
    • バリエーション選択時にハイライトされる画像を決定する

    4つの画像関連列の比較表

    列名 対象レベル 役割 必須
    Image Src 商品 商品に属する画像のURL 画像を登録するなら必須
    Image Position 商品 画像の表示順(1, 2, 3…) 推奨
    Image Alt Text 商品 画像の代替テキスト 任意(アクセシビリティ上推奨)
    Variant Image バリエーション バリエーションに割り当てる画像URL 任意(空欄ならvariant画像未指定)

    CSVの複数行構造と画像の関係

    Shopify商品CSVは1商品につき複数行で構成されます。1行目が商品本体、2行目以降がバリエーションです。画像行も同じ構造の中に含まれます。

    正しい行構造の例

    Tシャツ(赤・青の2色)に画像3枚を登録する場合を考えます。赤の画像、青の画像、ロゴ画像の3枚です。

    Handle,Title,Variant 1,Image Src,Image Position,Variant Image
    tshirt,Tシャツ,赤,https://cdn.shopify.com/red.jpg,1,https://cdn.shopify.com/red.jpg
    tshirt,,青,https://cdn.shopify.com/blue.jpg,2,https://cdn.shopify.com/blue.jpg
    tshirt,,,https://cdn.shopify.com/logo.jpg,3,
    

    3行目はバリエーションではなく画像の追加行です。Variantの列(Variant 1など)が空で、Image Srcだけが埋まっている行は「この商品にもう1枚画像を追加する」という意味になります。

    混同で起きる典型的な画像ずれパターン

    パターン1:Variant Imageを空欄にしたままImage Srcだけ入力

    Variant Imageを空欄にすると、variant画像が未指定の状態になり、テーマや連携先の表示によっては代表画像が表示されることがあります。色違い商品でVariant Imageを書き忘れると、青のバリエーションを選んでも赤いTシャツの画像が表示されます。

    Handle,Title,Variant 1,Image Src,Variant Image
    tshirt,Tシャツ,赤,https://cdn.shopify.com/red.jpg,
    tshirt,,青,https://cdn.shopify.com/blue.jpg,
    

    この場合、赤も青もred.jpgが表示されます。正しくは青の行に https://cdn.shopify.com/blue.jpg をVariant Imageに記述します。

    パターン2:Image SrcとVariant Imageで違うURLを書く

    Variant Imageには「商品画像として登録済みのURL」を書く必要があります。Image SrcにないURLをVariant Imageに書くと、意図しない挙動になります。

    Handle,Title,Variant 1,Image Src,Variant Image
    tshirt,Tシャツ,赤,https://cdn.shopify.com/red.jpg,https://cdn.shopify.com/red.jpg
    tshirt,,青,https://cdn.shopify.com/blue.jpg,https://example.com/another-blue.jpg
    

    another-blue.jpgはImage Srcに存在しないため、正しく紐付かない可能性があります。Variant ImageのURLは必ずいずれかのImage Srcと完全一致させる必要があります。

    パターン3:Image SrcのURLを差し替えてVariant Imageを更新し忘れる

    画像を差し替える際、Image Src列のURLを新しいものに変更したのにVariant Image列を古いURLのままにしてしまうケースです。

    列 変更前 変更後(誤り)
    Image Src https://cdn.shopify.com/old-red.jpg https://cdn.shopify.com/new-red.jpg
    Variant Image https://cdn.shopify.com/old-red.jpg https://cdn.shopify.com/old-red.jpg(更新忘れ)

    結果としてVariant Imageが存在しないURLを指すことになり、バリエーション画像が表示されなくなります。

    正しいCSV入力のチェック手順

    CSVをアップロードする前に、以下の順序で確認します。

    1. Image Srcの重複確認 — 同じHandle内で同じURLが複数回出現していないか確認
    2. Image Positionの連番確認 — 1, 2, 3… と飛ばしなく連続しているか確認
    3. Variant ImageのURL照合 — Variant Imageの各URLが、同じHandle内のImage Srcのいずれかと完全一致するか確認
    4. 空欄の意図確認 — Variant Imageが空欄の行は、意図的に空欄にしたものか確認
    5. 拡張子の統一 — URLの大文字小文字、クエリパラメータまで含めて完全一致しているか確認

    自動チェックで検出できることと人間の判断が必要なこと

    画像ずれの確認には、機械的に検出できる部分と人間の目が必要な部分があります。

    自動チェックで検出できる項目

    チェック項目 方法
    Variant ImageのURLがImage Srcに存在するか URL文字列の完全一致検索
    Variant Imageが空欄のバリエーションがあるか 空欄セルの検出
    Image Positionの重複・欠落 数値の連番チェック
    Handleごとの画像枚数とPositionの整合 行数カウントと数値の照合
    URL形式の妥当性(httpsで始まるか) 正規表現マッチ

    これらはスプレッドシートの関数や簡易スクリプトで検出できます。たとえばGoogleスプレッドシートなら VLOOKUP や COUNTIF を使って、Variant Image列のURLがImage Src列に存在するか確認できます。

    人間の判断が必要な項目

    確認項目 理由
    画像の内容がバリエーション名と一致しているか 「赤」というバリエーションに赤い画像が割り当たっているかは目視が必要
    Alt Textが画像の内容を適切に説明しているか 文脈の理解が必要
    画像の画質・構図が商品ページに適しているか 審美的な判断
    画像の表示順(Position)がユーザーにとって自然か UX上の判断

    画像ずれが起きてしまった場合の復旧手順

    CSVアップロード後に画像がずれてしまった場合の手順です。

    1. 現状の確認 — Shopify管理画面で該当商品を開き、どのバリエーションにどの画像が割り当たっているか確認
    2. CSVの再エクスポート — 管理画面から「エクスポート」で現在のCSVをダウンロードし、実際のImage SrcとVariant Imageの状況を把握
    3. Variant Image列の修正 — ダウンロードしたCSVでVariant Image列を正しいURLに修正
    4. Image Srcとの整合確認 — 修正したVariant ImageのURLがImage Src列に存在することを確認
    5. 再インポート — 修正したCSVをアップロード(上書きインポート)
    6. 管理画面での最終確認 — 各バリエーションを選択し、意図した画像が表示されるか確認

    よくある質問

    Variant Imageを空欄にしておくとどうなりますか?

    空欄の場合、そのバリエーションの画像は未指定になります。テーマや商品ページ、連携先によっては代表画像が表示されることがありますが、すべてのバリエーションで同じ画像を表示したい場合にも、各Variant Image列に同じURLを明示的に記述することをおすすめします。

    画像URLはどこで確認できますか?

    すでに登録済みの商品なら、CSVをエクスポートしてImage Src列を確認するのが確実です。新規登録の場合は、画像を事前にShopifyのファイル管理(Settings > Files)にアップロードし、そのURLをImage Srcに記述します。

    同じ画像を複数バリエーションに割り当てられますか?

    はい、可能です。複数のバリエーション行のVariant Imageに同じURLを記述すれば、同じ画像が複数バリエーションに割り当たります。たとえばS・M・Lサイズで同じ画像を使う場合、3行とも同じURLを書きます。

    まとめ:画像ずれを防ぐ3つのポイント

    • Image Srcは商品の画像リスト、Variant Imageはバリエーションへの割り当て — 役割を明確に分けて理解する
    • Variant ImageのURLは必ずImage Srcのいずれかと完全一致させる — クエリパラメータや大文字小文字の違いにも注意
    • CSVアップロード前にURLの照合チェックを必ず行う — 自動チェックで機械的な誤りを検出し、目視で内容の整合を確認する

    機密CSVやスクリーンショットの送付は不要です。記事の内容について気になる点があれば、URLと具体的な疑問点をお知らせください。

    CSV入力でお困りの際は以下の情報をご用意のうえご相談ください。

    • 対象の商品CSVファイル(画像列の 部分)
    • ずれが発生している商品のHandle
    • 期待する画像とバリエーションの紐付け
    • 使用しているCSVエディタ(Excel / Googleスプレッドシート / その他)
    • 商品のバリエーション構成(色展開 / サイズ展開 / 両方)

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • Shopify CSVのMetafield列を触る前に決めること

    Shopify CSVのMetafield列を触る前に決めること

    Shopifyの商品CSVでMetafield列を一括編集する前に、まず確認すべきことがあります。namespaceとkeyの対応、データ型の一致、そして空欄が「値の削除」なのか「変更しない」なのかの違いです。これらを押さえずにCSVをアップロードすると、意図しないデータ消失や型エラーの原因になります。

    Metafield列の構造を知る

    Shopify商品CSVでは、Metafieldは列名(ヘッダー)で識別されます。列名のフォーマットは次のようになります。

    metafield.namespace.key

    たとえば custom.brand_name という列があれば、custom がnamespace、brand_name がkeyです。この構造によって、どのMetafield定義に値を書き込むかが決まります。

    namespaceとは

    namespaceはMetafieldをグループ化する識別子です。標準機能で作成したカスタム項目は custom というnamespaceに属することが多いです。アプリが独自に作成したMetafieldは、アプリごとに異なるnamespace(app.bundler や my_fields など)を使います。

    keyとは

    keyはnamespace内での項目名です。たとえば custom.warranty_months なら、warranty_months がkeyで、「保証月数」を表すMetafieldへの書き込みを意味します。

    データ型とCSV入力形式の対応表

    Metafieldには型(type)があり、CSVに入力する値もその型に合わせる必要があります。代表的な型とCSVでの入力例をまとめました。

    型(type) 意味 CSV入力例 注意点
    single_line_text_field 1行テキスト 夏季限定 改行を含めない
    multi_line_text_field 複数行テキスト 素材: 綿100%<br>产地: 日本 引用符で囲む
    number_integer 整数 12 小数を入れない
    number_decimal 小数 3.5 小数点はピリオド
    boolean 真偽値 true / false 空欄は不可
    url URL https://example.com http/httpsで始める
    color カラーコード #FF5500 16進数6桁
    date 日付 2026-06-01 ISO 8601形式
    product_reference 商品参照 gid://shopify/Product/12345 GraphQL IDが必要

    CSV上のMetafield列と管理画面の定義の違い

    ここを混同しやすいので整理します。

    • 管理画面のMetafield定義: 「設定 → カスタムデータ → 商品」で定義するnamespace、key、型のセット。これが存在しないと、CSVに列を追加しても値は保存されません。
    • CSVのMetafield列: ヘッダー行に metafield.namespace.key 形式で列を追加し、その下に値を書き込む仕組み。

    つまり、CSVでMetafieldを編集する前提として、管理画面側に同名の定義が存在する必要があります。定義がない状態でCSVに列を追加しても、Shopifyはその値をどこに保存してよいか分かりません。

    空欄の意味——削除か、変更なしか

    CSVのMetafield列を空欄にした場合、Shopifyの挙動は次のようになります。

    • 列自体が存在しない: そのMetafieldは変更されず、既存の値が保持されます。
    • 列が存在し、値が空欄: そのMetafieldの値が削除(クリア)されます。

    この違いは非常に重要です。「変更したくない項目」の列までCSVに含めて空欄にすると、意図せず値が消えることがあります。変更対象のMetafield列だけをCSVに含めるか、変更しない項目は現在の値をそのまま記載するか、方針を決めておきましょう。

    CSV編集前に確認すべきチェックリスト

    実際にCSVを開く前に、次の項目を確認します。

    確認項目 確認方法
    編集対象のnamespaceとkey 管理画面「設定 → カスタムデータ → 商品」で一覧確認
    各Metafieldの型 定義画面の「タイプ」欄
    現在の値 商品編集画面の下部「Metafield」セクション、または1件だけCSV書き出し
    空欄にする意図があるか 値のクリアが必要な商品と不要な商品を仕分け
    CSVに含めるMetafield列の範囲 変更しない項目の列を含めない方針にする
    バックアップの有無 編集前に現在のCSVを書き出して保存

    自動で確認できること vs 人間が判断すること

    CSV編集の品質を保つには、機械的にチェックできる部分と人間が判断する部分を分けておくと効率的です。

    自動チェックで確認できること

    • 列名が metafield.namespace.key の形式に従っているか
    • namespaceとkeyが管理画面の定義に存在するか
    • 値が定義された型と一致しているか(数値列に文字がないか、booleanが true/false かなど)
    • 必須項目が空欄になっていないか
    • 文字数上限を超えていないか

    これらはスプレッドシートのデータバリデーションや、スクリプトで事前に検証できます。

    人間が判断すべきこと

    • そのMetafield項目の本来の目的(たとえば「ブランド名」欄にカテゴリ名を入れていないか)
    • 空欄にしてよいか、それとも誤入力が疑われるか
    • 値の統一表記のルール(「有」「無」か「true」「false」か、「あり」「なし」か)
    • 複数担当者間で入力基準が揃っているか

    型ミスマッチが起きたときの挙動

    CSVで型と合わない値を入力した場合、Shopify側では次のような扱いになります。

    • 数値型に文字を入れた: インポート時にエラーとなり、その行のMetafield値は更新されません。
    • boolean型に true/false 以外を入れた: 同様にエラー扱いで更新がスキップされます。
    • URL型に不正な文字列を入れた: 一部は保存されるものの、管理画面で表示エラーになることがあります。

    エラーがあった行はインポート結果画面で確認できますが、一部だけ更新されて一部がスキップされる「部分成功」の状態になるため、事前の型確認が重要です。

    実務での進め方——3ステップ

    ステップ1: 現状を書き出して確認

    管理画面から商品CSVを書き出し、対象のMetafield列の現在値を確認します。このとき、列名の namespace.key が定義と一致しているかも併せて確認します。

    ステップ2: 編集方針を決める

    次の方針を決めます。

    1. 変更するMetafield列だけをCSVに残す(空欄による誤削除を防ぐ)
    2. 型のバリデーションルールをスプレッドシートに設定する
    3. サンプル5〜10行でテストインポートして挙動を確認する

    ステップ3: 本番CSVをインポート

    テストで問題なければ、全量のCSVをインポートします。インポート後、結果画面でエラーや警告がないか確認し、必要に応じて商品詳細画面も開いて値が反映されているか目視で確認します。


    まとめ

    Shopify商品CSVのMetafield列を編集する前に確認すべきポイントをまとめます。

    • 列名の metafield.namespace.key 形式を理解し、管理画面の定義と一致させる
    • データ型(single_line_text_field、number_integer、boolean など)に合った値を入力する
    • 空欄は「値の削除」を意味するため、変更しない項目の列はCSVに含めない
    • CSVのMetafield列は、管理画面に定義が存在することが前提
    • 自動チェック(形式・型)と人間の判断(目的・表記揺れ)を分けて品質を保つ

    相談時に用意するとよい情報

    Metafieldの一括編集について相談する際は、次の情報があると話が進めやすくなります。

    1. 編集したいMetafieldのnamespaceとkey(管理画面の定義名)
    2. 現在の値のサンプル(数件で構いません)
    3. 変更後の値のイメージ(表記ルールや単位など)
    4. 対象商品の件数
    5. 使用しているCSV編集ツール(Excel、Googleスプレッドシート、その他)

    機密CSVやスクリーンショットの送付は不要です。上記のテキスト情報だけで対応可能です。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • 商品説明HTMLをCSVで更新するときの崩れやすいポイント

    商品説明HTMLをCSVで更新するときの崩れやすいポイント

    Shopifyの商品CSVにあるBody HTML列をスプレッドシートで開くと、改行がずれて列が崩れたり、HTMLタグが書き換わったりするトラブルがよく起こります。この記事では、どうして崩れるのか、どう防げばよいかを具体例つきで整理しました。

    結論から言うと、Body HTML列をExcelやGoogleスプレッドシートで直接編集するのは避け、テキストエディタや専用ツールを使うのが一番安全です。それでもスプレッドシートを使いたい場合は、CSVではなくTSV形式で扱うか、インポート時に「テキストとして」読み込むことで大部分の崩れを防げます。

    本記事の対象読者は、商品説明を一括で更新する担当者です。CSVの基本操作には触れますが、HTMLの基礎知識があることを前提としています。


    Body HTML列の正体

    Shopifyの商品CSVにはBody HTMLという列があり、ここに商品説明ページのHTMLがそのまま入っています。具体的には次のようなタグが含まれます。

    • <p> … 段落
    • <strong> … 太字
    • <ul> / <li> … 箇条書き
    • <a href="..."> … リンク
    • <img src="..."> … 画像埋め込み
    • <br /> … 改行

    つまりBody HTML列の中身は生のHTMLコードであり、CSVの1セルに複数行のタグが詰め込まれています。これがトラブルの根本原因です。

    CSV上ではどう見えるか

    テキストエディタでCSVを開くと、Body HTML列の中身はダブルクォートで囲まれて1行に収まっています。

    "Handle","Title","Body HTML",...
    "my-product","商品名","<p>説明文</p><ul><li>項目1</li><li>項目2</li></ul>",...

    このように、改行を含まない1行の文字列として保存されていれば正常です。しかしスプレッドシートで開いた瞬間に、この構造が壊れ始めます。


    Excelで開いたときに起きる3つの崩れ

    1. 改行による行ズレ

    Body HTML内に <br /> や </p> の前後に改行文字が含まれていると、Excelはそれをセルの区切りではなく行の区切りとして解釈します。結果として、1つの商品のデータが複数行に分断され、列がずれてしまいます。

    特に他のシステムからエクスポートしたCSVや、手作業で改行を入れたCSVで顕著に発生します。

    2. HTMLタグの自動変換

    Excelはセル内のテキストを自動判定するため、HTMLタグやエンティティを意図せず変換することがあります。

    元の文字列 Excelでの変換結果 影響
    &amp; & 再保存時に & だけになり、HTMLとして不正になる
    &lt; < タグのエスケープが外れて表示崩れ
    &gt; > 同上
    &quot; " CSVの区切り文字と衝突して列崩れ
    <br /> 実際の改行 行が分断される

    この変換はセルの表示上だけの問題ではなく、CSVとして再保存した時点で元に戻らないことがあります。

    3. リンクタグの切断

    <a href="https://example.com">リンクテキスト</a> のようなタグは、URL内の特殊文字や改行の影響で簡単に壊れます。具体的には次のようなパターンがあります。

    • URLが途中で改行され、<a href="https://example. と com"> に分断される
    • クォート (") がExcelのCSV区切りと誤認され、タグ構造が壊れる
    • 埋め込み画像の src URLが同様に切断される

    リンクが壊れた状態でインポートすると、商品ページ上でクリックできないリンクや、画像のリンク切れが発生します。


    崩れパターン一覧表

    よくある崩れとその原因をまとめました。更新前にこの表を確認しておくと、事故を減らせます。

    症状 原因 発生しやすい状況
    商品データが複数行に分かれる HTML内の改行が行区切りとして扱われた Excelで直接開いたとき
    & だけが残る &amp; が自動変換された 再保存時
    リンクがクリックできない <a> タグが切断された URLが長い、または改行を含む
    画像が表示されない <img src> のURLが壊れた CDATAセクションや改行の影響
    レイアウトが崩れた 閉じタグ (</ul> 等) が欠落した 手動編集時の誤削除
    CSVインポートでエラー 列数が合わない 行ズレの結果、全体的に列がずれた
    日本語が文字化け 文字コードの不一致 (UTF-8 vs Shift-JIS) Excelのデフォルト設定

    安全な編集ワークフロー

    崩れを防ぐための推奨手順を説明します。ここではExcelを使わない方法と、どうしてもExcelを使いたい場合の方法の両方を紹介します。

    方法A:テキストエディタで直接編集(推奨)

    1. Shopify管理画面からCSVをエクスポート(管理画面 → 商品 → エクスポート)
    2. VS Codeやサクラエディタなどのテキストエディタで開く
      • UTF-8エンコーディングで開くことを確認
      • カンマ区切りのハイライトがあれば有効にする
    3. Body HTML列の該当箇所を検索して編集
      • 検索機能で Handle 値を探し、同じ行のBody HTML列を書き換える
      • 改行は n ではなく <br /> で表現する
      • タグの対応(開始タグと閉じタグ)を崩さない
    4. CSVの構造が壊れていないか確認
      • 各行のカンマ数がヘッダー行と同じか確認
      • ダブルクォートのペアが正しく閉じているか確認
    5. Shopify管理画面からインポート

    テキストエディタを使えば、Excelによる自動変換が一切起きないため、最も安全です。

    方法B:スプレッドシートを使う場合

    やむを得ずExcelやGoogleスプレッドシートを使う場合は、次の手順で崩れを最小限に抑えます。

    1. CSVではなくTSV形式で扱う
      • Googleスプレッドシートにインポートする際、「テキストとして貼り付け」を選ぶ
      • Excelの場合は「データ」→「テキストから」でインポートし、各列を「テキスト」として指定する
    2. Body HTML列を一切編集しない
      • 商品名や価格など、HTMLを含まない列だけをスプレッドシートで編集する
      • Body HTML列の編集はテキストエディタに戻って行う
    3. エクスポート時にCSV形式を選ぶ
      • スプレッドシートから「CSVとしてダウンロード」する
      • 文字コードがUTF-8であることを確認する

    チェックリスト:インポート前の確認項目

    # 確認項目 方法
    1 行数がエクスポート時と同じか テキストエディタで行数カウント
    2 各列のカンマ数がヘッダー行と一致するか テキストエディタで確認
    3 文字コードがUTF-8 (BOMなし) か テキストエディタのステータスバー
    4 Body HTML内に未エスケープの " がないか 検索で確認
    5 リンクのURLが途中で切れていないか href= を検索して目視確認
    6 画像の src URLが有効か src= を検索して確認
    7 閉じタグが欠落していないか タグの開閉ペアを数える

    自動で検出できる問題と人間の目で確認すべき問題

    HTMLの崩れには、ツールで自動検出できるものと、人間の判断が必要なものがあります。両方を組み合わせることで、見落としを大幅に減らせます。

    自動チェックで対応できること

    次の項目はスクリプトやオンラインツールで機械的に検出できます。

    • 閉じタグの有無:HTMLバリデータや正規表現で <ul> に対する </ul> などの存在を確認
    • HTMLエンティティの不正なデコード:& が &amp; として正しくエスケープされているか
    • URLの形式:href= や src= の値が https:// で始まる有効なURLか
    • CSVの構造整合性:各行の列数がヘッダー行と一致するか
    • 文字コードの確認:UTF-8であることの検証

    これらは簡易スクリプト(PythonやPHP)で数百行も書かずにチェックできます。CSV更新を定期的に行うなら、専用のバリデーションスクリプトを用意しておくと安心です。

    人間の目で確認すべきこと

    一方で、次の項目は自動判定が難しく、実際の商品ページを見て確認する必要があります。

    • レイアウトの見え方:タグは正しくても、意図した見た目になっているかはブラウザで確認が必要
    • 画像の適切さ:画像URLは有効でも、正しい画像が表示されているかは人が判断する
    • リンクの遷移先:URLが正しくても、リンク先のページが意図したものかは確認が必要
    • 文章の自然さ:HTML構造は問題なくても、日本語として不自然な部分がないか
    • モバイルでの表示:PCでは問題なくても、モバイルで崩れていないか

    自動チェックをパスしたCSVをインポートした後、最低でも3〜5商品をサンプリングして実際のページを開き、PCとモバイル両方で表示を確認することをおすすめします。


    よくある質問

    Googleスプレッドシートなら安全ですか?

    いいえ、Googleスプレッドシートでも同様の崩れが起きます。スプレッドシートはセル内の改行を許容しますが、CSVとしてエクスポートする際に改行の扱いが変わるため、Excelと同じ問題が発生します。Body HTML列の編集はテキストエディタで行うのが確実です。

    すでにExcelで開いて崩れてしまったCSVはどうすればいい?

    崩れたCSVからの復元は難しいため、元のCSVを再度エクスポートし直すのが最も早いです。バックアップを取っていなければ、Shopify管理画面から再エクスポートしてください。その上でテキストエディタを使って編集し直します。

    Body HTMLを丸ごと差し替えても大丈夫ですか?

    構造上は可能ですが、既存の画像URLやリンクを失うリスクがあります。差し替え前に、現在のBody HTMLをバックアップとして別ファイルに保存しておくことを推奨します。


    まとめ

    Shopify商品CSVのBody HTML列を編集する際は、次の3点を押さえておけば大きなトラブルを防げます。

    1. スプレッドシートで直接開かない — 改行やHTMLエンティティの自動変換が原因で崩れる
    2. テキストエディタで編集する — UTF-8対応のエディタを使えば、HTML構造をそのまま維持できる
    3. インポート後にサンプリング確認する — 自動チェック+目視確認の組み合わせで見落としを防ぐ

    商品数が多い場合は、編集前に少数商品でテストインポートを行い、問題がないことを確認してから本番に反映すると安心です。


    相談時に用意するとよい情報

    商品CSVの更新でつまずいた際、次の情報があるとスムーズに状況を把握できます。

    • 崩れが出ている商品のHandle
    • どの部分が崩れているかの説明(レイアウト、文字化け、リンク切れなど)
    • 使用したエディタ
    • インポート時のエラーメッセージ(もしあれば)
    • Body HTML列の一部を伏せ字にした例(特定できない範囲で構いません)

    初回相談では機密CSVやスクリーンショットの送付は不要です。商品名やHandleなど、テキストで伝えられる情報でご相談いただけます。必要になった場合に後からスクリーンショットを確認することがあります。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • SKUとBarcode(JAN)の違いをCSV列で混同しないための確認

    SKUとBarcode(JAN)の違いをCSV列で混同しないための確認

    Shopifyの商品CSVを編集するとき、Variant SKU列とVariant Barcode列の違いが曖昧になり、JANコードをSKU列に入れたり、その逆が起きがちです。SKUは社内の在庫管理番号、Barcode(JAN)は商品を識別する国際標準コードで役割が異なります。列を間違えるとmissing GTINやinvalid GTINの原因になります。CSV投入前はShopifyの商品登録CSVの事前確認も合わせて行ってください。


    SKUとBarcode(JAN)はそもそも何が違うのか

    SKU(Stock Keeping Unit)は、店舗や倉庫が内部管理のために自由に付けるコードです。法則は運営者が決められ、同じ商品でもカラーごと・サイズごとに別々のSKUを割り当てるのが一般的です。

    Barcode(JAN / EAN / UPC)は、商品パッケージに印字されているバーコードの数字です。日本ではJANコード(13桁)が主流で、GS1 Japanが発行する全球共通の識別番号です。SKUのように自社で自由に決められるものではありません。

    両者の役割を整理すると次のようになります。

    項目 SKU Barcode(JAN)
    目的 社内在庫管理 商品の世界的識別
    発行主体 自社で自由に決定 GS1 Japan等の機関が発行
    桁数 自由(空白も可) JAN: 8桁または13桁
    重複の可否 原則ユニーク推奨 世界中で一意(重複不可)
    例 TS-BLK-M 4901234567890

    Shopify商品CSVで該当する列はどれか

    Shopify管理画面から [設定] > [データ形式] > [商品をエクスポート] で出力したCSVには、SKUとBarcodeそれぞれに専用の列があります。該当列と周辺列をまとめました。

    CSV列名 目的 入力内容の例
    Handle 商品のURL識別子。同一Handleで複数バリエーション行をまとめる black-t-shirt
    Option1 Name 第一オプション名(例: サイズ) Size
    Option1 Value 第一オプション値(例: M) M
    Option2 Name / Option2 Value 第二オプション(例: カラー) Color / Black
    Variant SKU 社内管理コード TS-BLK-M
    Variant Barcode JAN / EAN / UPCコード 4901234567890
    Variant Grams バリエーションの重量(グラム) 250
    Variant Inventory Tracker 在庫追跡サービス shopify

    ポイントは、Variant SKUとVariant Barcodeはバリエーション行ごとに設定する列だということです。1つの商品に3つのサイズ展開があれば、Handleは同じまま3行分のバリエーション行が並び、それぞれにSKUとBarcodeを記載します。


    列を間違えて入力したときに何が起きるか

    SKU欄にJANコードを入れてしまった場合

    Variant SKU列に 4901234567890 のようなJANコードを入力すると、次のような問題が起きます。

    • 社内在庫システムで「どの商品か」を判別するコードとして、JANコードが使われてしまい、社内コード体系と不一致になる
    • Google Merchant Centerのフィードで、mpn(メーカー型番)フィールドにJANコードが入り、審査で「mpnとgtinが同じ値です」という警告が出ることがある
    • 複数カラー・サイズで同じJANをSKU欄に入れてしまうと、在庫連携ツールがSKUの重複を検知してエラーを返す

    Barcode欄にSKUを入れてしまった場合

    逆に、Variant Barcode列に TS-BLK-M のような社内コードを入力すると、次のような問題が起きます。

    • Google Merchant Centerのフィードで、gtinフィールドに不正な値が入り、「GTINが無効です」という不承認理由になる
    • POSレジでのバーコードスキャン時に商品がヒットせず、店頭販売に支障が出る
    • マーケットプレイス連携(Amazonや楽天)でJANコードとして送信され、出品エラーになる

    Excelで先頭ゼロが消える問題

    JANコードをExcelで開くと、4901234567890のような数値が指数表示(4.90123E+12)になったり、先頭ゼロのあるコード(00012345)のゼロが欠落したりします。これはBarcode列特有の事故で、SKU列では起こりにくいトラブルです。

    対策として、CSVをExcelで開く前にメモ帳などで開いて列の内容を確認するか、Excelのインポート機能でVariant Barcode列を「文字列」として指定して読み込んでください。


    CSVインポート前の確認手順

    自動でチェックできる項目

    CSVをShopifyにインポートする前に、スプレッドシートの関数や簡易スクリプトで次の項目を機械的に確認できます。

    チェック項目 確認方法 期待される結果
    Variant SKUの重複 COUNTIF関数などで重複を抽出 同一SKUが複数行に存在しない
    Variant Barcodeの桁数 LEN関数で8桁または13桁か確認 8桁または13桁の数値文字列
    Variant Barcodeの先頭ゼロ欠落 セルの表示形式が文字列か確認、または数値化された行を検出 ゼロから始まるコードが保持されている
    Variant Barcodeの文字種 正規表現 ^[0-9]{8}$|^[0-9]{13}$ で検証 数字のみで構成されている
    Variant SKUの空欄 空白セルをフィルタで抽出 在庫管理に使うSKUが空欄ではない
    Handleとバリエーション行の整合 同一Handle内でOption列の組み合わせが重複していないか確認 同じバリエーションが2行以上存在しない

    Googleスプレッドシートを使っている場合は、次のような数式でBarcodeの桁数チェックが可能です。

    =IF(OR(LEN(TRIM(K2))=0, LEN(TRIM(K2))=8, LEN(TRIM(K2))=13), "OK", "桁数要注意")
    

    ここで K2 はVariant Barcode列のセルを指します。空白(Barcodeを使わない商品)は許容するため、空文字もOKとしています。

    人の判断が必要な項目

    機械的なチェックでは判断が難しい項目もあります。インポート前に必ず目で確認してください。

    • 更新対象の列が正しいか: 今回のCSV更新でSKUだけを変更するのか、Barcodeだけを変更するのか、両方を変更するのかを明確にする。意図しない列に値が入っていないか確認する。
    • 新規商品か既存商品か: 既存商品のHandleと同一Handleを使うと上書き更新になる。新規商品のはずが既存Handleと重複していないか確認する。
    • BarcodeにJAN以外の体系を含むか: 一部の商品だけUPC(12桁)を使っている場合、桁数チェックの基準を調整する必要がある。
    • SKU体系の変更意図: 既存のSKU命名規則を変更する場合、在庫連携先(倉庫システムや会計ソフト)でもSKUの紐付け更新が必要になるか確認する。
    • Barcode空白の可否: バリエーション商品で、親商品にBarcodeを設定せずバリエーション行のみに設定する設計が多い。空白のまま意図的に残しているか、入力漏れかを判断する。

    実務での入力ワークフロー例

    新商品を一括登録する場面を例に、SKUとBarcodeを正しく入力する手順を示します。

    1. 元データを準備する: 商品マスタからSKU、JANコード、商品名、オプション値を抽出し、1行1バリエーションで並べる
    2. 列ヘッダーをShopify形式に合わせる: 社内マスタの「管理コード」列をVariant SKUに、「JANコード」列をVariant Barcodeにマッピングする
    3. Barcode列を文字列として保存する: Excelの場合はBarcode列全体を選択し、セルの書式を「文字列」に設定してから値を貼り付ける
    4. 自動チェックを実行する: 前述の桁数チェック・重複チェック・文字種チェックを実行し、エラー行を修正する
    5. サンプル行を目視確認する: 最初の5〜10行について、SKU列に管理コードが入っていること、Barcode列にJANコードが入っていることをヘッダー名と照合しながら確認する
    6. テストインポートする: 全行ではなく一部の商品(3〜5商品)だけを含むCSVで試しにインポートし、管理画面でSKUとBarcodeがそれぞれ正しい欄に反映されているか確認する
    7. 本番インポートする: テスト結果に問題がなければ全体をインポートする

    この手順の中で特に時間をかけるべきなのは手順5の目視確認です。自動チェックを通過していても、列のマッピング自体が逆になっていれば全行が間違ったままインポートされてしまいます。


    CSV列の混同を防ぐためのチェックリスト

    最後に、CSVを編集・インポートする際の確認項目をチェックリスト形式でまとめます。インポート前に一読してください。

    No. 確認項目 確認手段
    1 Variant SKU列に社内管理コードが入っている ヘッダー行と照合
    2 Variant Barcode列にJAN/EAN/UPCが入っている ヘッダー行と照合
    3 SKUとBarcodeで値の体系が逆転していない サンプル行の目視
    4 Barcode列で先頭ゼロが欠落していない LEN関数・文字列表示確認
    5 Barcodeが8桁または13桁の数字のみである 正規表現またはLEN関数
    6 SKUがバリエーション行ごとにユニークである COUNTIF関数・重複抽出
    7 Handleが既存商品と意図せず重複していない 既存CSVとの突合
    8 更新対象列だけが変更されている(意図しない列の値が書き換わっていない) 変更前後CSVの差分確認

    相談時に用意するとよい情報

    CSVの編集やインポートでつまずいた際、サポートに相談する前に次の情報を手元に用意しておくと、やり取りがスムーズに進みます。

    • 現在使用している商品CSVのサンプル(商品名や金額をマスキングしたもので構いません)
    • SKUとBarcodeのどちら(または両方)を変更・登録しようとしているか
    • インポート時に表示されたエラーメッセージの全文(テキストで貼り付けるだけで構いません)
    • 現在の管理画面でのSKU・Barcodeの表示状態(項目名と値をテキストで知らせるだけで構いません)
    • 使用している在庫連携ツールやGoogle Merchant Centerフィードの有無
    • 商品のバリエーション構成(オプション名と値の組み合わせ)

    関連して確認したい記事

    CSVを送らなくても、列名・更新したい作業・不安な事故だけで確認順を整理できます。初回相談では機密CSVやスクリーンショットの送付は不要です。

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • Shopify商品CSVと在庫CSVの違い: インポート前に混同しないための確認

    Shopify商品CSVと在庫CSVの違い: インポート前に混同しないための確認

    ShopifyのCSV作業でよくある事故が、商品CSVと在庫CSVを同じものとして扱ってしまうことです。どちらもCSVですが、更新する対象が違います。商品名や画像を直したいのか、ロケーション別の在庫数を直したいのかを分けないと、意図しない上書きが起きます。

    まず何が違うか

    商品CSVは、商品タイトル、説明、Handle、Option、Variant SKU、価格、画像URLなど、商品情報全体を扱います。在庫CSVは、商品バリエーションとロケーションごとの在庫数量を更新するためのCSVです。複数ロケーションを使っている店舗では、この違いが特に重要です。

    混同すると起きること

    • 商品CSVで直すつもりのない列まで空欄で上書きする
    • 在庫CSVで更新すべき数量を商品CSV側で探して迷う
    • ロケーション別在庫を無視して、全体在庫だけを見て判断する
    • SKUやOption列のずれで、別バリエーションの在庫を触る
    • 商品移行用CSVを、日々の在庫更新に使ってしまう

    確認する列

    商品CSVでは、Handle、Title、Option1 Name、Option1 Value、Variant SKU、Variant Price、Image Srcを先に見ます。在庫CSVでは、Handle、SKU、Location、On hand (current)、On hand (new)など、在庫数量とロケーションに関係する列を見ます。

    手作業で進める場合

    まず目的を一文で書きます。「価格を変えたい」「画像URLを差し替えたい」なら商品CSV寄りです。「東京倉庫の在庫を20にしたい」なら在庫CSV寄りです。次に、Shopifyから最新のCSVをエクスポートし、編集する列だけを決めます。投入前には、対象商品を数件に絞ったテスト用CSVで差分を確認します。

    小さく自動化できる部分

    CSVの列名を見て、商品CSVなのか在庫CSVなのかを判定するチェックは自動化できます。さらに、更新対象外の列に値が入っていないか、HandleとSKUが重複していないか、ロケーション名が既存設定と合っているかも事前確認できます。ただし、どの列を正として残すかは作業目的によって変わります。

    注意点

    CSV投入は一括で反映されるため、間違えると広範囲に影響します。この記事は確認手順の整理であり、復元や在庫数の正しさを保証するものではありません。作業前のエクスポート保存と、少件数での確認は省かない方が安全です。

    相談前に整理しておくこと

    • 商品情報を直したいのか、在庫数を直したいのか
    • 複数ロケーションを使っているか
    • 更新したい列名
    • 過去にCSV投入で壊れた内容

    Shopify CSVの投入前チェックや、壊れそうな列の整理について相談できます。初回相談では機密情報を含むCSVを送る必要はありません。更新したい列や不安な作業だけでも整理できます。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • Shopify CSVインポート後に在庫が0になる原因と確認列

    Shopify CSVインポート後に在庫が0になる原因と確認列

    Shopify CSV で在庫が0になる原因は、商品CSVと在庫CSVのどちらを使ったかで切り分けます。商品CSVでは Variant Inventory Qty、Variant Inventory Tracker、Variant SKU の扱いを確認し、在庫CSVでは SKU、Location、On hand / Available の列を見ます。空欄・0・未更新は同じ意味ではないため、投入前にバックアップを取り、差分を確認することが事故防止の基本です。特に商品CSVで在庫数を更新する場合と、在庫CSVで更新する場合とで、影響範囲が異なります。

    在庫が0になる原因は商品CSVと在庫CSVで分ける

    Shopify では在庫数の更新に2種類のCSVが使われます。どちらのCSVを使ったかによって、在庫が0になる原因と確認すべき列が変わります。

    2種類のCSVの違い

    CSVの種類 主な用途 在庫関連の列 注意点
    商品CSV(Products CSV) 商品情報の全体的な更新 Variant Inventory Qty、Variant Inventory Tracker、Variant SKU 在庫数以外の列もまとめて更新される
    在庫CSV(Inventory CSV) 在庫数に特化した更新 SKU、Location、On hand、Available 在庫数だけを更新するが、列の指定を間違えると事故になる

    まず確認すること: 在庫が0になったのは、商品CSVをインポートした後か、在庫CSVをインポートした後か。これによって原因の切り分け方が変わります。

    どちらのCSVを使うべきか

    • 商品情報(タイトル、説明、価格、画像など)も一緒に更新する場合:商品CSVを使う
    • 在庫数だけを一括更新したい場合:在庫CSVを使う(影響範囲が在庫に限定されるため、事故リスクが下がる)

    在庫数の更新だけが目的であれば、在庫CSVを使う方が安全です。商品CSVは更新対象が多く、意図しない列の上書きが起きやすくなります。

    商品CSVで見る列

    商品CSVをインポートして在庫が0になった場合、次の列を確認します。

    Variant Inventory Qty

    この列は、variant の在庫数量を指定します。

    値 意味 Shopify側の動作
    数値(例:10) 指定した数量に設定される 旧い数量は上書きされる
    0 在庫0に設定される 「在庫切れ」の表示になる
    空欄 列の値が無視される(と見せかけて、CSVのバージョンや設定によって動作が変わる場合がある) 空欄の取り扱いは公式仕様を確認
    列ごと省略 在庫数は変更されない 他の列だけが更新される

    よくある事故: Variant Inventory Qty 列に 0 を入れたつもりがないのに、空欄を 0 として扱ってしまったケース。スプレッドシートで編集していると、空白セルが意図せず 0 に変換されることがあります。

    Variant Inventory Tracker

    この列は、在庫管理を Shopify で行うかどうかを指定します。

    値 意味 在庫への影響
    shopify Shopify で在庫を管理する Variant Inventory Qty の値が反映される
    空欄または未設定 Shopify で在庫を管理しない 在庫数の表示・更新が行われない
    null トラッキングなし 在庫管理の対象外

    よくある事故: Variant Inventory Tracker を shopify に設定せずに Variant Inventory Qty に数値を入れても、在庫として反映されない。逆に、Tracker を空欄にしたことで、既存の在庫管理が解除されてしまうこともあります。

    Variant SKU

    在庫CSVと連携するためのキーとなるのが Variant SKU です。SKU が一致しないと、在庫CSVでの更新が正しく反映されません。

    確認ポイント:

    • SKU に余分なスペースが入っていないか(前後にスペース)
    • 全角・半角が統一されているか
    • 同じ SKU が複数の variant に割り当てられていないか(重複 SKU)

    在庫CSVで見る列

    在庫CSV(Inventory CSV)は、商品CSVとは列構成が異なります。在庫に特化した列を確認します。

    在庫CSVの主要列

    列名 内容 よくある事故
    SKU 在庫更新の識別キー SKU不一致で更新されない。空欄の行があるとスキップされる
    Location 在庫を管理するロケーション名 別のロケーションの在庫だけ更新してしまう
    On hand 実在庫数 0にすべきでない商品を0にしてしまう
    Available 販売可能在庫数 On hand と Available の違いを理解せずに更新する

    On hand と Available の違い

    この2つの列は似ていますが、意味が異なります。公式ヘルプでの定義を確認することが重要ですが、大まかな違いは以下のとおりです。

    • On hand:倉庫に実際にある在庫数
    • Available:On hand から予約済み(受注済みで未出荷など)を引いた、販売可能な数

    どちらの列を更新すべきかは、運用方針によります。間違った列を更新すると、受注残との整合性が崩れる可能性があります。

    Location の確認

    複数のロケーション(倉庫・店舗など)を持っている場合、在庫CSVの Location 列で更新先を指定します。

    • 間違ったロケーションを指定している:A倉庫の在庫を更新したいのに、B店舗の在庫を0にしてしまう
    • ロケーション名の表記ゆれ:CSVの Location 列の値が、Shopify に登録されているロケーション名と一致しないと更新されない
    • 新規ロケーション:CSV上のロケーション名が Shopify に存在しない場合、更新自体がスキップされることがある

    空欄・0・未更新の違いを確認する

    在庫が0になった原因を切り分ける際、空欄・0・未更新は明確に区別して考えます。

    状態 CSV上の見え方 Shopify側の動作 意図した更新か
    意図的に0にした 0 在庫0として設定 はい(はず)
    空欄のつもりが0になった 空欄 → 0 に変換 在庫0として設定 いいえ
    列を省略した 列なし 既存の値が維持される 更新されない
    行を省略した 行なし そのvariantは更新されない 更新されない
    SKUが不一致 値は正しいがSKUが違う 更新されない 別のvariantが更新されている可能性

    スプレッドシートでの空欄→0変換に注意:
    Google スプレッドシートや Excel でCSVを編集する際、空欄のセルに 0 が自動入力される設定になっている場合があります。特に、数式で値を生成している場合、空白セルが 0 扱いになることがあります。CSVを保存する前に、空欄のセルが本当に空欄のままかを確認してください。

    投入前に差分previewを作る

    在庫が0になる事故を防ぐため、CSVをインポートする前に差分を確認します。この作業は「更新前在庫」「更新後在庫」「差分」を並べたpreview(確認用シート)を作ることです。

    差分previewの作り方

    1. 現在の在庫データを取得する:Shopify 管理画面から在庫CSVをエクスポートする
    2. 更新用CSVを作成する:エクスポートしたCSVをコピーし、更新したい値を書き換える
    3. 差分列を追加する:スプレッドシートで「更新前在庫」「更新後在庫」「差分」の3列を並べる
    4. 急減アラートを設定する:差分が一定数以上(例:在庫が10以上減少)の行を条件付き書式で強調表示する

    差分previewのイメージ

    SKU 更新前在庫 更新後在庫 差分 備考
    SHIRT-BLK-M 25 20 -5 正常な販売による減少
    SHIRT-WHT-S 15 0 -15 要確認
    SHIRT-BLK-L 8 8 0 変更なし
    BAG-RED 30 0 -30 要確認

    このように差分を可視化しておくと、「意図せず在庫が0になる」行をインポート前に発見できます。差分が急激に減少している行(特に0になる行)は、インポート前に個別に確認してください。

    バックアップの重要性

    CSVをインポートする前に、必ず現在の在庫データをエクスポートして保存します。これにより、事故が起きた場合に元の値に戻すことができます。バックアップがない状態でCSVをインポートするのは避けてください。

    自動化できる部分

    • 0になっている行の検出:更新用CSVで、在庫数が0になる行を自動抽出
    • 空欄と0の区別:CSV上で空欄のセルと 0 が入力されたセルを区別してチェック
    • SKU 不一致・重複 SKU の検出:更新用CSVの SKU が Shopify 側の SKU と一致しない行、同じ SKU が複数行にある行を検出
    • Location 不一致の一覧化:更新用CSVの Location 値が Shopify に存在しない場合に警告
    • 更新前後差分の作成:更新前CSVと更新用CSVを比較し、差分行を自動抽出

    人間判断が必要な部分

    • 0にすることが意図した更新か:在庫切れ商品として0にするのか、事故なのかは意図の確認が必要
    • 予約販売・取り寄せ・在庫切れの運用方針:在庫が0になった商品をどう扱うかは、店舗の運用方針によります
    • どのロケーションを正とするか:複数倉庫がある場合、どの倉庫の在庫を優先するかはビジネス判断
    • SKU の表記ゆれをどう統一するか:全角・半角、スペースの有無など、命名規則の決定

    注意点

    • Shopify の商品CSVインポート仕様、在庫CSV仕様は更新される可能性があるため、操作時の公式ヘルプで確認してください
    • Inventory tracker、Location、On hand、Available の仕様・動作は、Shopify のプランや設定によって異なる場合があります
    • CSVのインポートは元に戻す(アンドゥ)ことができないため、必ずバックアップを取ってから実行してください
    • 大量のCSVインポートは、テスト用の少量データで動作確認してから本番に適用することをお勧めします

    CSV投入後に在庫が0になるのが不安な場合や、商品CSVと在庫CSVのどちらを使うべきか迷っている場合はご相談ください。更新したい列・対象件数・ロケーション数をお伺いすれば、確認すべきポイントをご案内します。初回相談では、機密CSVやスクリーンショットの送付は不要です。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • Shopify商品CSVのHandleがずれると何が壊れるか

    Shopify商品CSVのHandleがずれると何が壊れるか

    Shopifyの商品CSVでは、Handle が商品を見分ける重要な列です。タイトルやSKUを直しただけのつもりでも、Handleが変わっていると、既存商品の更新ではなく別の商品として扱われたり、画像やバリエーションの対応が崩れたりします。

    まず何が起きているか

    Handleは商品ページURLにも使われる識別子です。CSVで既存商品を更新するとき、同じ商品として扱いたい行のHandleが既存データと一致しているかを確認します。商品名を変更したからといって、Handleまで毎回変える必要があるとは限りません。逆に、移行作業で複数商品に同じHandleが入っていると、意図しないまとまり方になります。

    Handleずれで起きやすいこと

    • 更新したつもりの商品が新規商品として作られる
    • 同じ商品内に入るはずのバリエーションが別商品に分かれる
    • 画像行が別の商品に紐づく
    • 旧URLを前提にした内部リンクや広告URLの確認が必要になる
    • 在庫CSV側のHandleと商品CSV側のHandleが一致しない

    確認する列

    商品CSVでは Handle、Title、Option1 Name、Option1 Value、Variant SKU、Image Src を並べて見ます。単品商品なら1つのHandleに1行だけの場合もありますが、色やサイズのバリエーションがある商品は、同じHandleの複数行で構成されます。画像だけの行があるCSVでは、Handleのずれが画像紐づけのずれとして出ることもあります。

    手作業で直す場合

    まず管理画面から現在の商品CSVをエクスポートし、更新用CSVのHandleと突き合わせます。既存商品を更新したいなら、既存CSVのHandleを基準にします。新しい商品として作りたいものだけ、新しいHandleにします。表計算ソフトでタイトルからHandleを再生成する場合は、既存商品まで一括で変換しないように、更新対象を別シートで絞ってから作業します。

    自動化できる部分

    投入前チェックでは、Handleの重複数、空欄、全角文字やスペースの混入、既存CSVに存在しないHandle、既存CSVにはあるが更新CSVにはないHandleを一覧化できます。また、同じHandleの中でOption列の組み合わせが重複していないかも機械的に確認できます。ただし、URLを変更してよいか、SEOや広告リンクの影響をどう扱うかは店舗側の判断です。

    注意点

    Handleを直せばすべて元通りになるとは限りません。すでにインポート済みで新規商品が作られている場合は、重複商品の削除、在庫、画像、公開状態の確認が別途必要になります。公式サポートの代行ではなく、CSV上で何が起きそうかを整理する実務メモとして扱ってください。初回相談では、Handle列の例を数行だけ伏せ字で共有できれば十分な場合があります。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • Shopify CSVでバリエーションが壊れる前に見るOption列とVariant列

    Shopify CSVでバリエーションが壊れる前に見るOption列とVariant列

    Shopifyの商品CSVで色やサイズを触るときは、商品名よりも Option 列と Variant 列の関係を見る必要があります。価格だけ更新したつもりでも、Optionの値が少し変わると別バリエーションのように扱われ、SKUや在庫、Barcodeとの対応が崩れることがあります。

    まず何が起きているか

    Shopifyでは、同じ商品に複数の選択肢がある場合、Optionの組み合わせごとにバリエーションが作られます。たとえば「色」と「サイズ」がある商品なら、赤/S、赤/M、青/Sのような組み合わせがVariantになります。CSVではこの組み合わせを行で表すため、1つのセルだけでなく行全体の対応を見ます。

    よくある原因

    • Option1 Name を「Color」から「カラー」に変えて、既存データとずれる
    • Option1 Value の表記ゆれで同じ色が別扱いになる
    • SKU列だけ並べ替えられ、Option列との対応が崩れる
    • 価格、Barcode、重量などのVariant列を別バリエーションに入れてしまう
    • 単品商品からバリエーション商品へ変える作業を一括で行う

    確認する列

    まず Handle ごとに行をまとめます。その上で Option1 Name、Option1 Value、Option2 Name、Option2 Value、Option3 Name、Option3 Value を見ます。次に Variant SKU、Variant Price、Variant Barcode、Variant Inventory Tracker を横に並べ、Optionの組み合わせと一致しているか確認します。

    手作業で直す場合

    いきなり全商品を修正せず、代表的な1商品を管理画面で開き、現在のバリエーション一覧をCSVと照合します。Option名は既存の商品に合わせ、値の表記も「S」「M」「L」なのか「Small」「Medium」なのかを揃えます。SKUやBarcodeはOption列から自動で推測せず、仕入れ元データや現行エクスポートを正として見比べます。

    自動化できる部分

    チェックツール化しやすいのは、同一Handle内のOption組み合わせ重複、Option名の表記ゆれ、SKU空欄、SKU重複、Barcodeの桁や先頭0の欠落、価格の空欄です。投入前に「このHandleではバリエーション数が何件から何件に変わるか」を出すだけでも、事故はかなり見つけやすくなります。商品の選択肢をどう設計するかは、人間が販売方法を見て決める部分です。

    注意点

    バリエーションの修正は、商品ページの見た目だけでなく在庫、広告フィード、受注後のSKU確認にも影響します。CSVだけを見て正解を断定せず、管理画面と現在の受注・倉庫運用も確認してください。初回相談では、全CSVではなく問題が出ている1商品の列構成だけでも、壊れ方の整理はできます。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する
  • Shopify CSVの空欄は変更なしではなく空で上書きされるのか

    Shopify CSVの空欄は変更なしではなく空で上書きされるのか

    CSV更新で怖いのは、値を入れた列よりも「空欄の列」です。Shopify商品CSVを編集していると、空欄は何もしないという感覚になりがちですが、インポートの設定や列の扱いによっては、既存の商品情報を空の値で上書きする可能性があります。

    まず何を切り分けるか

    空欄には2種類あります。ひとつは「説明文を消したい」「Barcodeを空にしたい」という意図した空欄。もうひとつは「今回は触りたくない列だが、エクスポートしたCSVに空で入っている」という意図しない空欄です。この2つを同じCSVに混ぜると、投入前レビューが難しくなります。

    よくある事故

    • 商品説明やSEO titleが空欄で上書きされる
    • Variant Barcodeを消すつもりがないのに空になる
    • 画像URL列を並べ替えて、画像の紐づけが外れる
    • 公開状態、価格、重量など関係ない列まで同時に更新する
    • バックアップCSVがなく、どの値に戻すべきか分からなくなる

    確認する列

    更新したい列を先に決めます。たとえば価格だけを変えたいなら、Handle、Option列、Variant SKU、Variant Price など、照合と更新に必要な列を中心に見ます。説明文、画像、SEO、Barcode、在庫関連など、今回触らない列に空欄が多い場合は、その列を含めてよいか慎重に判断します。

    手作業で進める手順

    まず現行の商品CSVをエクスポートして保管します。次に、更新用CSVの列を「照合に必要」「今回更新する」「触らない」の3つに分けます。触らない列に空欄がある場合は、空欄の意味を確認するまで投入しないほうが無難です。少数の商品だけを対象にしたテストCSVを作り、管理画面でどう変わるか確認してから全件に広げます。

    自動化できる部分

    投入前チェックでは、空欄セルの数を列ごとに集計し、現行CSVでは値があるのに更新CSVでは空欄になっている場所を一覧化できます。「このCSVを入れると空になりそうな列」を事前に出せると、削除したい空欄と事故になりそうな空欄を分けやすくなります。最終的にその空欄を許可するかは、店舗側の作業意図で判断します。

    注意点

    CSVの挙動は、使う画面、インポート設定、列構成、アプリ連携によって確認が必要です。ここでは「必ずこうなる」とは言い切らず、投入前に何を見れば事故を減らせるかに絞っています。初回相談ではCSV全体を送る必要はありません。更新したい列、空欄が不安な列、過去に消えた項目を整理できれば十分です。

    参考にした公式情報

    この記事の内容で困っている方へ

    Shopify CSV / 一括編集 まわりの作業を、まず無料診断で修正TODOに分けます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料診断を依頼する