カテゴリー: CSV・データ処理

  • 複数ロケーション在庫をCSVで更新する前に見ること

    複数ロケーション在庫をCSVで更新する前に見ること

    最初に結論

    Shopifyで複数ロケーションの在庫をCSVで一括更新する場合、使うのは「在庫CSV」であって「商品CSV」ではありません。在庫CSVにはロケーションごとに On hand(実在庫)と Available(販売可能在庫)の列が並び、行数は「バリアント × ロケーション」分だけ増えます。更新前に確認すべきは、列名に含まれるロケーション名が正しいか更新するのは On hand だけか、そしてマイナス値が混じっていないかの3点です。この記事では、在庫CSVの構造と確認手順を整理します。


    商品CSVと在庫CSVの違い

    Shopify管理画面からエクスポートできるCSVには、大きく分けて2種類あります。商品情報を扱う「商品CSV」と、在庫数を扱う「在庫CSV」です。在庫数を更新したいのに商品CSVをダウンロードしてしまうと、列構成が違うため目的の項目が見つかりません。

    項目 商品CSV 在庫CSV
    主な目的 商品・バリアントの登録・更新 在庫数の一括更新
    エクスポート先 商品 > すべての商品 > エクスポート 在庫 > エクスポート
    1行の単位 バリアント1件 バリアント1件 × ロケーション1件
    在庫列の有無 なし(複数ロケーション更新には在庫CSVを使用) あり(ロケーションごとの On hand / Available)
    画像列 あり なし
    ロケーション列 なし あり(列名にロケーション名が含まれる)

    在庫数を更新する場合は、必ず在庫ページからエクスポートしたCSVを使います。


    在庫CSVの列構成

    基本列

    在庫CSVの先頭付近には、バリアントを識別するための基本列が並びます。

    • Handle — 商品のハンドル(URLスラッグ)。商品ごとに一意
    • Title — 商品名
    • Option1 Name / Option1 Value — バリアントのオプション(サイズ、色など)
    • Option2 Name / Option2 Value — 第2オプション
    • Option3 Name / Option3 Value — 第3オプション
    • SKU — 在庫管理用コード
    • HS Code — 関税分類コード(国際配送用)

    ロケーションごとの列

    基本列のあとに、登録されているロケーションごとに2列ずつ続きます。ロケーションが3つあれば、在庫関連列は6列になります。

    • [ロケーション名] On hand — そのロケーションの実在庫数
    • [ロケーション名] Available — そのロケーションの販売可能在庫数

    たとえば「東京倉庫」と「大阪倉庫」の2拠点がある場合、列名は次のようになります。

    東京倉庫 On hand, 東京倉庫 Available, 大阪倉庫 On hand, 大阪倉庫 Available

    列名にロケーション名が直接埋め込まれるため、ロケーション名を変更した場合は列名も変わる点に注意が必要です。


    On hand と Available の違い

    ここが最も混同しやすいポイントです。

    列名 意味 計算方法
    On hand 実在庫数。そのロケーションに物理的にある数 手動入力または棚卸で更新
    Available 販売可能在庫数。顧客が買える数 On hand − コミット済み(未発送注文)

    AvailableOn hand からコミット済みの注文数を引いたものです。CSVで On hand を更新してインポートすると、Shopify側で自動的に Available が再計算されます。原則としてCSVで直接編集するのは On hand 列だけにしておくのが安全です。

    具体例で見てみましょう。

    状況 On hand コミット済み Available
    実在庫10、未発送注文3 10 3 7
    実在庫を8に訂正 8 3 5

    On hand を 10 から 8 に減らすと、Available も自動的に 7 から 5 に減ります。Available 列を手動で書き換える必要はありません。


    CSVの行構造:バリアント × ロケーション

    在庫CSVでは、1つのバリアントに対してロケーションの数だけ行が作られます。バリアントが3つ、ロケーションが2つの場合、CSVは6行になります。

    Handle,Title,...,東京倉庫 On hand,東京倉庫 Available,大阪倉庫 On hand,大阪倉庫 Available
    white-shirt,Tシャツ(白),...,10,7,5,5
    white-shirt,Tシャツ(白),...,10,7,5,5
    black-shirt,Tシャツ(黒),...,8,8,3,3
    black-shirt,Tシャツ(黒),...,8,8,3,3
    ...

    同じバリアントの行が複数出力されますが、これはロケーションごとに1行ずつ展開されているためです。Shopifyにインポートする際は、この行構造を崩さないことが前提になります。


    更新前に確認すべきチェックリスト

    在庫CSVをインポートする前に、次の項目を確認します。

    # 確認項目 確認方法
    1 CSVの種類が在庫CSVか 列名に「On hand」「Available」が含まれているか
    2 列名のロケーション名が正しいか 管理画面のロケーション設定と突き合わせ
    3 編集したのは On hand 列だけか Available 列や他の列を書き換えていないか
    4 マイナス値が混じっていないか On hand 列をフィルタまたは条件付き書式で確認
    5 意図しない行の On hand を書き換えていないか フィルタで変更対象のSKUだけを表示して確認
    6 文字コードがUTF-8か エディタやスプレッドシートの保存設定を確認

    よくある間違いと影響

    1. 商品CSVで在庫数を更新しようとする

    商品CSVには Variant Inventory Qty 列がありますが、複数ロケーションの在庫数を更新する目的ではこの列に頼らず、在庫CSVを使います。単一ロケーション運用では商品CSV側の在庫列が関係する場合があるため、この記事では複数ロケーション更新に話を限定します。

    2. 間違ったロケーションの On hand を更新する

    列が「東京倉庫 On hand」と「大阪倉庫 On hand」で並んでいると、列の位置を取り違えることがあります。東京の在庫を増やすつもりで大阪の On hand 列に数値を入れると、実際の在庫とデータが乖離します。

    この間違いに気づかないと、次のような問題が起きます。

    • 発送元ロケーションの在庫が不足していると判定され、注文にアサインされない
    • 他方のロケーションで過剰在庫として表示される
    • 棚卸時の実在庫とシステム上の数値が合わない

    3. On hand 列にマイナス値を入力する

    On hand 列にマイナスの数値を入力すると、Shopifyはその値を受け付ける場合がありますが、在庫追跡が無効になったり、予期しない在庫状態になります。基本的には On hand には 0 以上の値を入力します。

    4. 列を追加・削除してインポートする

    CSVの列構成を変える(列を追加する、列の順序を変える、列名を変更する)と、インポート時にエラーになります。列構成はエクスポート時のまま維持し、On hand 列の値だけを書き換えます。


    自動で確認できる項目と人間の判断が必要な項目

    スプレッドシートやスクリプトで自動確認できること

    次の項目は、スプレッドシートの関数や簡単なスクリプトで機械的にチェックできます。

    • On hand 列にマイナス値や文字列が混じっていないか
    • 列名のロケーション名が、エクスポート時から変わっていないか
    • Handle や SKU が空の行がないか
    • 数値列にカンマ区切り(1,000など)が入っていないか

    Googleスプレッドシートなら、条件付き書式で <0 のセルを赤くするだけで、マイナス値の混入にすぐ気づけます。

    人間の判断が必要なこと

    次の項目は文脈理解が必要なため、自動化だけに頼れません。

    • どのロケーションの在庫を更新すべきか(入荷先の判断)
    • 在庫数の妥当性(極端に大きい値や小さい値が正しいか)
    • 廃番や季節商品の On hand を 0 にしてよいか
    • 複数ロケーション間で在庫を振り替えるべきか

    安全にインポートする手順

    1. 在庫ページからCSVをエクスポートする(「すべての在庫」を選択)
    2. 元ファイルをコピーしてバックアップをとる
    3. コピーしたファイルで、更新対象の SKU をフィルタで絞り込む
    4. 該当行の On hand 列だけを書き換える
    5. 上記チェックリストの各項目を確認する
    6. CSVを保存する(UTF-8、カンマ区切り)
    7. 在庫ページからインポートする
    8. インポート後、管理画面で対象SKUの在庫数を確認する

    インポートは上書きではなく「設定」の動作になります。空のセルは「何もしない」として扱われるため、一部の行だけを更新したい場合は、その行の On hand 列にだけ数値を入れます。


    まとめ

    複数ロケーションの在庫をCSVで更新するときの要点を改めて整理します。

    • 在庫CSVと商品CSVは別物 — 在庫更新には在庫CSVを使う
    • On hand が実在庫、Available は自動計算 — 編集するのは On hand だけ
    • 列名にロケーション名が含まれる — 列の取り違えに注意
    • インポート前のチェックリストで確認 — マイナス値、列構成、ロケーション名
    • 自動チェックと人間の判断を組み合わせる — 数値の正確性と更新先の妥当性

    CSVでの在庫更新は、一度手順を固めれば数百SKUの更新も数分で完了します。ただし、間違ったロケーションを更新すると実在庫とのズレが配送現場に影響するため、更新前の確認は省略しないことが大切です。


    機密CSVやスクリーンショットの送付は不要です。在庫CSVの列構成が分からない、どの列を編集すべきか迷う、という場合は、ロケーション名やSKUをテキストで教えていただければ、どこを編集すればよいかご案内できます。

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

    • 管理画面に登録されているロケーション名の一覧
    • エクスポートした在庫CSVの列構成(最初の1〜2行分でOK、SKUはマスキング可)
    • 更新したいSKUの件数と、更新頻度(月1回、週1回など)
    • 現在の商品CSVと在庫CSVをどちらを使っているかの認識

    参考にした公式情報

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

    Shopify CSV / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料相談する
  • CSVバックアップを取らずに一括更新しないための運用ルール

    CSVバックアップを取らずに一括更新しないための運用ルール

    ShopifyのCSV一括インポートには「元に戻す」ボタンがありません。更新前にバックアップCSVを必ず保存し、ファイル名に日付と目的を入れ、差分を確認してから本番インポートを回す――この3ステップをチームの運用ルールにすると、誤操作の被害を最小限に抑えられます。

    なぜCSVバックアップが前提になるのか

    Shopify管理画面から商品CSVをエクスポートして編集し、再度インポートすると、CSVに含まれる全商品の該当列がそのまま上書きされます。もし誤った列を書き換えていた場合、管理画面からは変更前の値を取り戻す手段がありません。

    特に次のようなケースで事故が起きやすくなります。

    • 価格列の小数点を間違えて100円→10,000円に更新してしまった
    • 在庫数を誤ってゼロで上書きし、商品が一斉に「在庫切れ」になった
    • 複数人が同時にCSVをダウンロードし、別々の編集をインポートして互いの変更を消し合った
    • 日本語の説明文をUTF-8で保存し忘れ、文字化けしたままインポートされた

    バックアップCSVは復旧の土台になります。元の値を確認でき、戻せる可能性が高まります。ただし、CSVに含まれる列、画像、variant構成、在庫ロケーション、インポート設定によっては完全に戻せるとは限らないため、変更対象列とインポート設定も記録しておくことを推奨します。

    バックアップファイルの命名ルール

    バックアップCSVはあとで探しやすい名前に統一します。推奨フォーマットは次のとおりです。

    基本フォーマット

    products_export_YYYYMMDD_before-[目的].csv

    具体例:

    ファイル名 用途
    products_export_20260527_before-price-fix.csv 価格修正前のバックアップ
    products_export_20260527_before-bulk-seo.csv SEOタイトル・説明一括変更前
    products_export_20260527_before-new-items.csv 新規商品追加前の現行データ
    products_export_20260527_before-tag-cleanup.csv タグ整理前のバックアップ

    命名に含めるべき要素

    1. 日付 ― いつのバックアップか一目で分かる
    2. before ― 更新「前」であることが明確になる
    3. 目的ラベル ― 何の作業のためのバックアップか分かる

    チームで共有フォルダに保存する場合、これらの要素が揃っていれば、数週間後でも「あの価格修正の前のデータ、どれだっけ?」と探す手間が省けます。

    更新前に保存するもの

    CSVインポートを行う前に、次の3つを必ず保存します。

    保存対象 保存方法 理由
    現行のエクスポートCSV そのままリネームして共有フォルダへ 復旧用のマスターデータ
    編集後のCSV(インポート用) 同じフォルダに_after付きで保存 何を変更したか後から追跡できる
    差分レポート diffツールの出力をテキスト保存 意図しない変更が混入していないかの証拠

    保存先はチーム全員がアクセスできる共有フォルダ(Googleドライブ、SharePoint、社内NASなど)を一つ決めておきます。ローカルPCのデスクトップに置いたままでは、本人が休んだときに他の人がバックアップを見つけられません。

    共有フォルダの構成例

    shopify-csv-backup/
    ├── 2026/
    │   ├── 05/
    │   │   ├── 27_price-fix/
    │   │   │   ├── products_export_20260527_before-price-fix.csv
    │   │   │   ├── products_import_20260527_after-price-fix.csv
    │   │   │   └── diff_20260527_price-fix.txt
    │   │   └── 28_tag-cleanup/
    │   │       ├── products_export_20260528_before-tag-cleanup.csv
    │   │       ├── products_import_20260528_after-tag-cleanup.csv
    │   │       └── diff_20260528_tag-cleanup.txt
    

    差分確認ワークフロー

    バックアップを取っただけでは不十分です。インポートする前に「変更前」と「変更後」の差分を確認し、意図した列だけが書き換わっているか検証します。

    手順

    1. Shopify管理画面から「商品をエクスポート」し、_before付きで保存
    2. このCSVをコピーして編集用ファイルを作成
    3. 編集が終わったら、_after付きで保存
    4. diffツールで_before_afterを比較
    5. 差分が想定範囲内か確認(列数、行数、変更箇所)
    6. 問題なければ_afterファイルをインポート

    diff確認のポイント

    確認項目 期待される結果 NG例
    行数の変化 商品追加時のみ増加、それ以外は同じ 商品削除の意図がないのに数百行減っている
    変更列 対象列だけが変わっている 価格修正のはずが説明文も変わっている
    Handle列 既存商品のHandleは一切変わっていない Handleが書き換わって新規商品として二重登録
    文字化け 日本語が正常に表示される 「???」や「�」が混入している

    復旧手順:バックアップCSVをインポートし直す

    万が一、インポート後のデータに問題があった場合の復旧手順です。

    1. 共有フォルダから_beforeバックアップCSVを見つける
    2. ファイルを開いて文字化けがないか確認(UTF-8であること)
    3. Shopify管理画面の「商品をインポート」から_beforeCSVをアップロード
    4. 「既存の商品を上書きする」オプションが有効であることを確認
    5. インポート完了後、管理画面で数件の商品を開いて値が戻っているか目視確認

    注意点: バックアップCSVに含まれていない列(インポート時に空白だった列)は上書きされないため、画像やバリアント情報は元のまま残ります。ただし、CSVに含まれている列は空白でも上書きされるため、意図せぬ列を空白にしていないか、事前のdiff確認で防ぐことが重要です。

    チーム運用ルールのチェックリスト

    複数人でCSV更新を行うチームでは、バックアップとインポートの手順をルール化しておくことで事故を予防できます。

    # ルール 目的
    1 インポート前に必ずエクスポートしてバックアップを保存する 復旧手段の確保
    2 バックアップファイルの命名ルールに従う 検索性の向上
    3 インポート前にdiffレポートを作成する 意図しない変更の検出
    4 差分確認は編集者以外のメンバーが行う ダブルチェックによるヒューマンエラー防止
    5 インポート実行前に担当者をチャット等で宣言する 同時更新の衝突防止
    6 インポート後、5〜10商品をサンプリングして目視確認する 実際の反映結果の検証
    7 バックアップCSVは最低30日間は削除しない 遅れて発覚した問題への対応
    8 インポート作業ログ(日時・担当者・目的)を残す 事後追跡と振り返り

    自動化できる部分と人間の判断が必要な部分

    自動化・ツールで機械的に確認できること

    • ファイル名チェック ― 命名ルールに合致しているかスクリプトで検証
    • 行数・列数の比較 ― before/afterの行数差、列構成の変化を自動レポート
    • Handle列の不変確認 ― 既存行のHandleが変わっていないかスクリプトで検出
    • 文字エンコーディング検証 ― UTF-8 BOMなしであることを自動確認
    • 必須列の存在確認 ― Title、Handleなどの必須列が欠落していないかチェック

    人間が判断すべきこと

    • 変更範囲の妥当性 ― 「今回の価格修正で3000商品中2500商品が変わるのは妥当か?」は文脈による
    • インポートの承認 ― diffレポートを見て「これを本番に反映してよいか」を判断
    • 緊急時の復旧判断 ― バックアップCSVを戻すべきか、一部だけ手動修正するべきか
    • 同時作業の調整 ― 他の担当者がCSV編集中かどうかの確認と作業順序の決定

    機械的に確認できる部分をスクリプトやシェルコマンドに任せ、人間は本質的な判断に集中するのが効率的な運用です。たとえば、次のようなワンライナーで行数の急激な変化を検出できます。

    # before/afterの行数を比較(ヘッダー除く)
    echo "before: $(($(wc -l < products_export_20260527_before-price-fix.csv) - 1))"
    echo "after : $(($(wc -l < products_import_20260527_after-price-fix.csv) - 1))"

    インポート作業ログのテンプレート

    チームで共有する作業ログのひな形です。インポートのたびにこの項目を記録します。

    項目 記入例
    実施日時 2026-05-27 14:30
    担当者 田中
    目的 夏季セールに向けた価格一括変更
    バックアップファイル名 products_export_20260527_before-price-fix.csv
    インポートファイル名 products_import_20260527_after-price-fix.csv
    変更商品数 342件
    変更列 Variant Price
    diff確認者 佐藤(田中以外のメンバー)
    インポート後の目視確認結果 10件サンプリング、全て正常

    このログがあれば、「先週の金曜に誰が何を変更したか」がすぐに追跡できます。スプレッドシートの一行として管理しても、チャットの定型フォーマットとして投稿しても構いません。チームが継続しやすい形を選んでください。


    CSVバックアップは「取っておしまい」ではなく、命名ルール・差分確認・復旧手順の3本をセットで運用することで初めて意味を持ちます。特に複数人で商品管理をしている場合は、インポート宣言やダブルチェックのルールを決めておくことで、データ事故のリスクを大幅に下げられます。まずは次回のCSV更新から、エクスポートファイルを_before付きで保存し、diffを取る習慣を始めてみてください。

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

    • 現在管理しているおおよその商品数(数百、数千などで構いません)
    • CSV更新の頻度(週1回、月1回、不定期など)
    • CSV更新を担当している人数
    • 過去にCSVインポートで起きたトラブルの有無と内容
    • 現在使っている共有フォルダやファイル管理の仕組み

    機密CSVやスクリーンショットの送付は不要です。上記の情報をお知らせいただければ、チームの規模と更新頻度に合わせたバックアップ運用の具体的な設計をご提案できます。

    参考にした公式情報

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

    Shopify CSV / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密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 / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密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スプレッドシートなら VLOOKUPCOUNTIF を使って、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 / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密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.bundlermy_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 / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密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 / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料相談する
  • Tags列をCSVで一括編集するときに既存タグを消さないための考え方

    Tags列をCSVで一括編集するときに既存タグを消さないための考え方

    結論:CSVインポートは「上書き」だから、元のタグを自分で保持しないと消える

    Shopifyの商品CSVでTags列を編集してインポートすると、そのセルの内容で既存タグがすべて置き換わります。新しいタグだけを書いてインポートすると、書かなかったタグはすべて消える仕組みです。これを防ぐには、①現在のTags列をエクスポートして確認する、②追加したいタグだけを追記する、③インポート前に差分を検証するという3ステップを踏むのが最も確実です。


    Tags列の仕組みをおさらいする

    CSV内でのタグの書式

    Shopifyの商品CSVでは、Tags列は1つのセル内にカンマ区切りでタグを並べる形式です。たとえば次のようになります。

    新商品,セール,夏季コレクション

    ここで気をつけたいポイントは2つあります。

    • セルの区切り文字(CSVのカンマ)と、タグの区切り文字(同じくカンマ)が同じ記号なので、スプレッドシートで開くとタグが別列に分裂することがある
    • タグ名にカンマを含めることはできない(カンマは区切りとして扱われる)

    インポート時の挙動:完全上書き

    CSVインポートでTags列を含めると、その商品のタグ全体がCSVの値で上書きされます。「追加」ではなく「置き換え」です。つまり次のような挙動になります。

    操作 元のタグ CSVに書いたTags インポート後
    タグを追加したい A, B A, B, C A, B, C(正しい)
    タグを追加(間違い) A, B C C(AとBが消えた)
    特定タグを削除したい A, B, C A, C A, C(Bだけ削除された)
    Tags列を空にした A, B, C (空) なし(全タグ消去)
    Tags列を省略した A, B, C (列なし) A, B, C(変更なし)

    Tags列そのものをCSVから省略した場合は既存タグが維持されます。しかし、他の列も編集している場合はTags列を省略できないことが多く、結局は「正しいタグ一覧を書く」必要が出てきます。


    安全なタグ編集ワークフロー

    ステップ1:現在のTags列をエクスポートして保存

    まず、管理画面から商品CSVをエクスポートします。このとき、Handle(ハンドル)列とTags列のペアを別シートにコピーして保存しておきます。これが「変更前」の記録です。

    エクスポート時の注意点:

    • 「すべての列」を選んでエクスポートする(一部列だとTagsが含まれないことがある)
    • エクスポート直後のファイルを「変更前」としてそのまま開かず別名保存する(誤操作防止)
    • スプレッドシートで開くときは「区切り文字としてカンマ」を正しく指定する

    ステップ2:追加・削除したいタグを反映する

    作業用シートでTags列を編集します。ここでの鉄則は「既存のタグ一覧に対して、追記または削除を行う」ことです。新しいタグだけを書くのではなく、残したいタグもすべて含めます。

    たとえば「セール」というタグを全商品に追加したい場合:

    変更前: 新商品,夏季コレクション
    変更後: 新商品,夏季コレクション,セール

    「旧価格」というタグを削除したい場合:

    変更前: 旧価格,新商品,夏季コレクション
    変更後: 新商品,夏季コレクション

    スプレッドシートの関数を使えば、追加作業を半自動化できます。

    =IF(A2="", "", IF(B2="", "セール", B2 & ",セール"))

    ここでA2がHandle、B2が元のTags列だとします。元のタグが空なら「セール」だけ、すでにタグがあれば末尾に「,セール」を追加します。

    ステップ3:差分を検証してからインポート

    インポート前に、変更前と変更後のTags列を比較します。この比較で意図しないタグの消失や、タグの重複を発見できます。

    検証のポイント:

    1. タグが減っていないか — 追加しかしていないはずなのにタグ数が減っていたら、上書きで消えた可能性が高い
    2. 重複タグがないか — 「セール,セール」のように同じタグが2回入っていないか確認する(Shopify側では自動でまとめられるが、見栄えが悪い上に意図の混同を招く)
    3. 空セルになっていないか — 編集ミスでTags列が空になっていると、インポート時に全タグが消える
    4. カンマの前後にスペースがないか — 「セール, 新商品」のようにスペースが入ると「 新商品」(先頭スペース付き)という別タグとして登録される

    タグ操作別のCSV上の扱いまとめ

    やりたいこと CSVでの正しい書き方 よくある間違い
    タグを追加する 既存タグ + 「,」 + 追加タグ 追加タグだけを書いて既存タグを消す
    特定のタグを削除する 残したいタグだけを列挙する 削除したいタグだけを空にする(全タグ消去になる)
    全タグを入れ替える 新しいタグ一覧を書く なし(この操作自体が上書きと同義)
    タグを一切変更しない Tags列をそのまま残す、または列ごと省略する Tags列を空にする
    タグを全削除する Tags列を空にする 全削除のつもりでTags列を省略する(何も変わらない)

    自動化できる確認と人間の判断

    スクリプトや関数で自動チェックできること

    • 重複タグの検出 — Tags列をカンマで分割し、同じ値が2回以上出現していないか確認
    • 前後スペースの検出 — タグの前後に空白文字が含まれていないか正規表現で検査
    • 空セルの検出 — Tags列が空の行が意図的かどうかのフラグ付け
    • 変更前後の差分抽出 — 2つのタグ一覧を比較し、追加されたタグと削除されたタグをリスト化
    • タグ数の急増・急減の警告 — ある商品のタグ数が大幅に変わっている場合にアラートを出す

    これらはスプレッドシートの関数やPythonスクリプトで比較的かんたんに実装できます。

    人間が判断すべきこと

    • どのタグを残し、どのタグを削除するか — ビジネス判断が必要な部分は自動化できない
    • キャンペーン終了後のタグ整理 — 「2025夏セール」など期限付きタグを残すべきかどうかの判断
    • 類似タグの統合 — 「sale」「セール」「SALE」など表記ゆれをどう扱うか
    • タグの命名規則 — 新しいタグを追加するとき、既存の命名規則に合っているかの確認

    よくあるトラブルと対処

    タグが大量に消えてしまった

    インポート後に「タグが消えた」と気づいた場合、直前のCSVエクスポートファイルがあれば復元できます。そのファイルをそのまま再インポートすれば、元のタグ一覧に戻ります。エクスポートファイルを上書き保存していないことが前提です。

    スプレッドシートでタグが別の列に散らばった

    これはCSVのカンマ区切りとタグのカンマ区切りが同じ記号だから起きます。対策は次のとおりです。

    • スプレッドシートのインポート設定で「区切り文字の自動検出」をオフにし、手動でカンマを指定する
    • Excelの場合は「データ」→「テキストから」でカンマ区切りを指定する
    • Googleスプレッドシートなら、インポート時に「区切り文字の種類」をカンマに設定する

    タグにカンマを含めたい

    Shopifyの仕様上、タグ名にカンマを含めることはできません。カンマは常にタグの区切りとして解釈されます。「1,000円以上」というタグを使いたい場合は、「1000円以上」のようにカンマを使わない表記に変更する必要があります。


    タグ編集前のチェックリスト

    確認項目 確認方法
    変更前のTags列を保存したか エクスポート直後のCSVを別名保存
    追加したいタグを既存タグに追記したか Tags列に「既存 + 追加」の形式で書いたか確認
    Tags列に空セルがないか フィルタで空白行を確認
    重複タグがないか 関数またはスクリプトで重複検出
    カンマの前後に余計なスペースがないか 正規表現で前後空白を検索
    変更前後でタグ数の差が意図通りか 差分比較ツールで増減を確認

    まとめ

    Shopifyの商品CSVでTags列を編集するときは、「上書き」という仕様を前提に手順を組むことが大事です。具体的には、変更前のTags列を保存しておき、それに追記・削除したうえで差分を確認してからインポートするという流れを徹底すれば、意図せずタグを消す事故を防げます。自動チェックで形式の問題をふるいにかけ、ビジネス判断は人が行うという分担も取り入れると、ミスが減り作業も速くなります。

    タグの一括編集で困ったことがあれば、以下の情報をご用意のうえでお気軽にご相談ください。

    • 現在のタグ一覧(CSVエクスポートしたTags列で構いません)
    • 追加・削除したいタグのリスト
    • 対象商品のおおよその件数
    • 使用しているスプレッドシートの種類(Excel / Googleスプレッドシート / その他)
    • タグの命名規則があればそのルール

    機密CSVやスクリーンショットの送付は不要です。タグ列だけをコピーしたものでも対応可能です。

    参考にした公式情報

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

    Shopify CSV / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料相談する
  • Vendor列をブランド名として使う前に確認すること

    Vendor列をブランド名として使う前に確認すること

    Shopify商品CSVのVendor列は自由入力のテキスト欄で、ブランド名としても仕入先名としても使えます。しかし「とりあえず入れている」状態でフィードアプリを動かすと、Google Merchant Centerのbrand属性にそのまま渡り、表記揺れが不正確なブランドとして扱われることがあります。Vendor列をブランド名として使うなら、入力ルールを決めてから運用に入るのが確実です。


    Vendor列の役割と制約

    ShopifyのVendor列は、商品ごとにメーカーやブランド、仕入先を記録するためのフリーテキスト欄です。Shopify側では主に次の用途で使われます。

    • 管理画面のフィルターで「ベンダー別」に商品を絞り込む
    • コレクションの条件で「Product vendor is equal to …」を指定する
    • CSVでの一括整理・集計

    Shopify側には表記の正規化や重複の警告機能はありません。「BrandX」と「brandx」と「Brand X」はすべて別のベンダーとして扱われます。入力した文字列がそのままフィルターやコレクション条件の判定に使われる仕組みです。


    フィードアプリがVendorをbrandにマッピングする仕組み

    Google & YouTubeチャネル、Simprosys、FeedArmyなどのフィードアプリは、多くの場合デフォルトでShopifyのVendor列をMerchant Centerのbrand属性にマッピングします。このマッピングは便利ですが、Vendorの中身が整理されていないと次のような問題が起きます。

    現象 原因 Merchant Centerでの影響
    brand属性が空で送られる Vendor列が未入力の商品がある ブランド必須カテゴリで不承認
    同一ブランドが複数に分裂する 「BrandX」「brandx」「Brand X」が混在 検索フィルタで品牌が分散、レポート精度が下がる
    仕入先名がbrandとして表示される Vendorに仕入先会社名を入れている Google広告に仕入先名が表示される
    フィード補正ルールが効かない 表記が不定でルールの対象から漏れる brandの上書きが部分的にしか適用されない

    brand属性はGoogleの一部カテゴリ(アパレル、靴、時計など)で必須扱いです。空のままだと商品が不承認になるため、Vendorをブランド名として使うかどうかにかかわらず、何かしらの値を入れておく必要があります。


    Vendor列の使い方パターンと影響

    運用現場でよく見かけるVendor列の使い方をパターン別に整理しました。それぞれフィードへの影響が異なります。

    パターン 具体例 フィードへの影響 向いているケース
    ブランド名として統一 Vendor = “Sony” brand属性にそのまま使える。表記統一が前提 自社ブランド品や正規代理店品が中心
    仕入先名として統一 Vendor = “東京商事株式会社” brandに会社名が入り、Google広告に表示される 卸売り元の管理が主目的
    ブランド名と仕入先名の混在 商品AはVendor = “BrandX”、商品BはVendor = “大阪問屋” brand属性の意味が統一されず、レポートが読みづらい 運用ルール未定義のまま使っている状態
    空欄 Vendor = “” brand属性が空で送られ、必須カテゴリで不承認 該当なし(避けるべき)
    独自メタフィールドでbrand管理 Vendor = “BrandX”、brand用メタフィールド = “Brand X(正式表記)” フィードアプリのマッピング先をメタフィールドに変更可能 Vendorを内部分類用に使いたい場合

    いずれのパターンでも「決めて守る」ことが重要です。一部の商品だけルールが違うと、後からの修正コストが大きくなります。


    表記揺れが生む具体的な問題

    Vendor列の表記揺れは、ShopifyのフィルターとMerchant Centerの両方で問題を起こします。よくある例を見てみましょう。

    大文字・小文字・スペースの違い

    "BrandX"     ← 半角英数、スペースなし
    "Brand X"    ← スペースあり
    "brandx"     ← すべて小文字
    "BRANDX"     ← すべて大文字
    "Brandx"     ← 先頭のみ大文字

    この5つは人間にとっては同じブランドですが、ShopifyもGoogleも別の文字列として扱います。コレクションの条件で「Product vendor is equal to BrandX」と指定しても「Brand X」の商品は含まれません。

    全角・半角の混在

    "BrandX"   ← 全角英数
    "BrandX"          ← 半角英数

    日本の運用では全角・半角の混在も頻発します。CSVをExcelで開いたときに自動変換されるケースもあるため、取り込み後のチェックが必要です。

    略称と正式名称の混在

    "BrandX"           ← 略称
    "BrandX Inc."      ← 法人格つき
    "BrandX株式会社"    ← 日本語表記

    仕入先名をベンダーに入れている場合、略称と正式名称が混ざりやすい傾向があります。どちらを使うかを決めておかないと、Merchant Center側で別ブランドとして扱われます。


    Vendorが空欄のとき何が起きるか

    Vendor列が空欄の商品がある場合、フィードアプリの動作は次のいずれかになります。

    1. brand属性を空のまま送る → Merchant Centerで不承認または警告
    2. フィードアプリのフォールバック設定により、デフォルト値(店舗名など)を代入する
    3. 該当商品をフィードから除外する

    Google & YouTubeチャネルのデフォルト動作では、Vendorが空の場合にbrandが空欄で送られます。アパレルや靴のカテゴリに該当する商品は不承認になります。食品や雑貨などbrandが任意のカテゴリであれば警告止まりですが、広告の表示品質には影響します。

    空欄を防ぐには、CSVインポート時にVendor列を必ず埋める運用ルールを決めるか、フィードアプリ側でデフォルト値を設定するかのいずれかが必要です。


    Vendorを使うか、メタフィールドを使うか

    「Vendor列はShopifyの内部分類に使い、brandは別のメタフィールドで管理したい」というケースもあります。たとえば次のような状況です。

    • Vendorを仕入先コードとして使い、Google向けには正式ブランド名を送りたい
    • 複数の仕入先が同一ブランドを扱っており、Vendorで仕入先を管理したい
    • コレクションの絞り込み条件にVendorを使っており、表記を変えたくない

    この場合は、Shopifyのメタフィールド(例:custom.brand)を作成し、フィードアプリのマッピング設定でbrand属性のソースをメタフィールドに切り替えます。Vendor列は引き続き内部分類として使えます。

    ただし、メタフィールドの追加運用はCSVの行数や管理の手間が増えるため、商品点数が少ないうちはVendor列をブランド名として統一するほうがシンプルです。


    自動で検出できる問題と、人の判断が必要なこと

    Vendor列の整理では、機械的に洗い出せる問題と、運用判断が必要な問題を分けて考えると効率的です。

    自動で検出・修正できること

    • Vendor列の空欄検出(brand未設定商品の洗い出し)
    • 大文字・小文字の正規化(”brandx” → “BrandX”)
    • 全角→半角の統一(”BrandX” → “BrandX”)
    • 前後の空白文字の除去(” BrandX ” → “BrandX”)
    • 正規化後の重複検出(見た目は同じだが文字列が異なるベンダーの抽出)

    これらはスプレッドシートの関数やPythonスクリプトで一括処理できます。CSVエクスポート後に正規化スクリプトを通してからShopifyにインポートし直す方法が現実的です。

    人の判断が必要なこと

    • Vendor列にブランド名を入れるか、仕入先名を入れるかの運用ルールの決定
    • 略称と正式名称のどちらを標準表記にするか(例:”BrandX” か “BrandX Inc.” か)
    • メタフィールドを追加してbrandを分離管理するかどうかの判断
    • 既存商品のVendorを変更したときのコレクション・フィルターへの影響確認
    • 過去の広告レポートとの整合性を取るかどうかの判断

    正規化の結果を見て「この表記に統一する」と決めるのは人間の仕事です。特に既に運用中のストアでは、Vendorの変更がコレクション条件や既存のフィード補正ルールに影響する可能性があるため、変更範囲を確認してから反映することが大切です。


    Vendor列を整理する手順

    Step 1:現状のCSVをエクスポートして確認する

    Shopify管理画面から [設定] → [商品] → [エクスポート] でCSVをダウンロードし、Vendor列を確認します。ユニークな値を抽出して、現在いくつの表記が存在するかを把握します。

    Step 2:正規化して重複を洗い出す

    大文字・小文字、全角・半角、前後空白を統一したうえで、同一ブランドの異表記を抽出します。スプレッドシートで=UPPER(TRIM(SUBSTITUTE(A2," ","")))のような正規化式を使うか、スクリプトで一括処理します。

    Step 3:標準表記を決める

    洗い出した結果をもとに、各ブランドの正式表記を1つずつ決めます。公式サイトでの表記、パッケージ上の表記、すでにMerchant Centerに登録されている表記のいずれかに合わせるのが無難です。

    Step 4:CSVを修正してインポートする

    標準表記に統一したCSVを作成し、Shopifyにインポートします。インポート後はフィードアプリを再同期し、Merchant Center側のbrand属性が更新されているかを確認します。

    Step 5:今後の入力ルールを文書化する

    商品登録時のVendor入力ルールを決め、関係者に共有します。「ブランド名は公式表記に統一」「全角英数は使わない」「空欄は不可」の3つを最低限決めておけば、再散乱を防げます。


    Vendor列の運用チェックリスト

    Vendor列を整理する際の確認項目をまとめました。

    確認項目 確認方法 自動 / 目視
    Vendor列が空欄の商品がないか CSVのVendor列で空白セルを検索 自動判定可
    大文字・小文字の表記揺れ 大文字統一後のユニーク数と比較 自動判定可
    全角・半角の混在 正規化前後のユニーク数を比較 自動判定可
    前後の空白文字 TRIM処理前後で差分を確認 自動判定可
    ブランド名か仕入先名かが統一されているか Vendorの内容を目視で分類 目視
    標準表記がMerchant Centerと一致しているか MC管理画面のbrand属性と突合 目視
    コレクション条件にVendorを使っているか Shopify管理画面でコレクション条件を確認 目視
    フィードアプリのbrandマッピング元がVendorか アプリ管理画面のフィードマッピング設定 目視

    上4つはCSVデータの加工で機械的に検出できます。下4つは管理画面を開いて確認する必要があります。まずは自動判定でデータの現状を把握してから、目視確認に進む手順が効率的です。


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

    • 現在のVendor列に含まれるユニーク値のリスト(CSVエクスポート後の抽出で可)
    • Vendorをブランド名として使っているか、仕入先名として使っているかの現在の運用
    • 使用しているフィードアプリの名称(Google & YouTubeチャネル、Simprosys、FeedArmyなど)
    • Merchant Centerでbrand属性が空欄または警告になっている商品の有無
    • Vendor列の値を変更した際に影響しそうなコレクション条件の有無

    初回相談では機密CSVやスクリーンショットの送付は不要です。上記の情報がテキストで分かれば、まずは現状の整理から始められます。

    参考にした公式情報

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

    Shopify CSV / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料相談する
  • Product Category列を一括更新する前に見ること

    Product Category列を一括更新する前に見ること

    Shopify商品CSVのProduct Category列は、Googleの製品分類(タクソノミー)に基づく値を入力する列です。Type列(自社分類)とは別物で、商品フィードのgoogle_product_categoryに直接影響します。一括更新前に、列の役割・空欄リスク・タクソノミーの記法を整理しておけば、フィードエラーや広告配信漏れを防げます。


    Type列とProduct Category列は別物

    Shopifyの商品CSVには、分類に関わる列が複数あります。よく混同されるのがType列Product Category列です。

    項目 Type列 Product Category列
    入力内容 自由入力の自社分類名 GoogleタクソノミーのパスまたはID
    TシャツApparel Apparel & Accessories > Clothing > Shirts
    主な用途 ストア内の絞り込み・メニュー表示 Googleショッピング等のフィード分類
    必須か 任意 任意(フィード要件で実質必須の場合あり)

    Type列は「自社でどう呼ぶか」を決める自由入力欄です。一方、Product Category列はGoogleが定めるタクソノミー体系に沿った値を入力する必要があります。

    Product Categoryが影響する先

    Product Category列の値は、商品フィードアプリ(Google & YouTube Channelなど)経由でgoogle_product_categoryとしてGoogleに送信されます。このため、Product Category列の値が不正確だと、次のような問題が起こりえます。

    • Google Merchant Centerで分類エラーが出る
    • ショッピング広告が配信されない
    • パフォーマンスの低いカテゴリに振り分けられる

    Googleタクソノミーの記法を確認する

    Product Category列には、Googleが公開している製品タクソノミーの値を入れます。記法は主に2パターンあります。

    1. パス形式: Apparel & Accessories > Clothing > Shirts
    2. 数値ID形式: 212(上記パスに対応するID)

    どちらでも認識されますが、ストア内で表記を統一することが重要です。混在すると、後からCSVを確認した際に読みにくくなります。

    タクソノミーの注意点

    • 日本語パス(服 & アクセサリー > 服 > シャツ)は、ShopifyのUIでは表示されますが、フィード送信時は英語パスまたはIDで扱われることが多いです。CSV編集時は英語パスかIDを使う方が確実です。
    • Googleは定期的にタクソノミーを更新します。半年前に有効だったパスが、現在は非推奨になっている可能性があります。
    • 階層はなるべく末端(詳細なレベル)まで指定した方が、広告のマッチング精度が上がります。

    空欄のままにするとどうなるか

    Product Category列を空欄にした場合、Shopify側ではエラーになりません。しかし、フィード側では次のような影響が出ます。

    ケース 影響
    フィードアプリが自動補完しない場合 google_product_categoryが空になり、Merchant Centerで警告またはエラー
    アパレル等の「必須カテゴリ」商品 Googleポリシー上、カテゴリ必須。空欄だとアイテムが不承認になる
    フィードアプリがデフォルト値を設定する場合 全商品が同じカテゴリに振り分けられ、ターゲティング精度が下がる

    特にアパレル・アクセサリーは、Googleのポリシー上カテゴリ分類が必須です。これらの商品を扱っている場合は、空欄のままにしないでください。


    一括更新のリスクとよくあるミス

    CSVでProduct Category列を一括更新する際、よく見られるミスをいくつか挙げます。

    1. 英語パスと日本語パスの混在

    同じCSV内で、ある行は英語パス、別の行は日本語パスという状態です。Shopifyは受け付けますが、フィードアプリ側での処理にばらつきが出ます。

    2. 存在しないタクソノミー値の入力

    「これっぽい名前」で入力した値が、実際のGoogleタクソノミーに存在しないケースです。typoや古いタクソノミーの使用が原因です。エラーにならずに無視されることが多く、気づきにくいのが厄介です。

    3. 階層が浅すぎる

    Apparel & Accessoriesで止まっていると、フィードの分類精度が下がります。できるだけ末端まで指定しましょう。

    4. Type列とProduct Category列を同じ値で埋める

    自社分類名(Tシャツなど)をProduct Category列にも入力してしまうミスです。Googleタクソノミーに存在しない値なので、フィードで無効扱いになります。


    更新前のチェックリスト

    一括更新の実行前に、以下を確認してください。

    確認項目 確認内容
    タクソノミーの整合性 入力値が現行のGoogleタクソノミーに存在するか
    表記の統一 英語パスかIDのどちらかに統一されているか
    空欄の有無 アパレル等の必須カテゴリ商品で空欄がないか
    階層の深さ カテゴリパスが末端近くまで指定されているか
    Type列との混同 自社分類名がProduct Category列に紛れ込んでいないか
    バックアップ 更新前のCSVを別名で保存してあるか

    自動で確認できることと人間の判断が必要なこと

    更新前の確認作業は、一部をスクリプトで自動化できます。

    自動で確認できること

    • フォーマットチェック: 入力値が英数字と >& のみで構成されているか(明らかな日本語混入を検出)
    • 空欄検出: Product Category列が空の行を抽出
    • 重複確認: 同じProduct Category値が複数の表記(パスとIDなど)で存在していないか
    • 階層深度チェック: > の数が少なすぎる(階層が浅い)行を抽出

    人間の判断が必要なこと

    • タクソノミーの選択: その商品に最も適したGoogleカテゴリはどれか
    • 境界案件の判断: 2つのカテゴリのどちらに振るべきか迷う商品の扱い
    • ビジネス上の判断: 広告出力を優先して大まかなカテゴリにするか、精度を優先して細かく分けるか
    • 空欄の許容判断: アパレル以外で、意図的に空欄にするかどうか

    Type列 / Product Category列 / google_product_category の関係

    3つの項目がどう繋がっているかを整理します。

    項目 設定場所 値の例 影響先
    Type Shopify管理画面 / CSV トップス ストアの絞り込み・ナビゲーション
    Product Category Shopify管理画面 / CSV Apparel & Accessories > Clothing > Shirts フィードのgoogle_product_categoryに反映
    google_product_category フィードアプリ(自動または手動) Apparel & Accessories > Clothing > Shirts Google Merchant Center / ショッピング広告

    フィードアプリは、基本的にはProduct Category列の値をgoogle_product_categoryにマッピングします。Product Category列が空の場合、アプリの設定によってはデフォルト値が使われたり、空のまま送信されたりします。自ストアで使っているフィードアプリがどう処理するか、一度確認しておくと安心です。


    まとめ

    Product Category列の一括更新は、Type列の更新とは性質が異なります。Googleタクソノミーという外部基準に沿った値を入力する必要があり、ミスがあればフィードや広告に直接影響します。更新前にタクソノミーの整合性・表記の統一・空欄の有無を確認し、必要に応じてバックアップを取ってから実行してください。

    機密CSVやスクリーンショットの送付は不要です。公開されているストアURLと気になる点を教えていただければ、Product Category列の整理方法についてご相談に乗ります。

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

    • 対象商品のおおよその点数
    • 現在Product Category列が埋まっているか・空欄か
    • 使用中のフィードアプリ(Google & YouTube Channel、Simprosatなど)
    • 主な商品カテゴリ(アパレル、雑貨、食品など)
    • Google Merchant Centerでカテゴリ関連の警告が出ているか

    参考にした公式情報

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

    Shopify CSV / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料相談する
  • Status列とPublished列を間違えると公開状態がどう変わるか

    Status列とPublished列を間違えると公開状態がどう変わるか

    Shopify商品CSVには、公開状態を操作する列が2つあります。Status列Published列です。この2つは別の役割を持っており、片方だけ変更しても期待通りにいかないケースがあります。結論から言うと、Statusは「商品自体がアクティブか下書きか」を決め、Publishedは「販売チャネルに表示するかどうか」を制御します。両方とも独立して動くため、組み合わせ次第で4パターンの状態が生まれます。誤って片方だけ書き換えてインポートすると、商品が storefront から消えたり、逆に意図せず公開されたりするので、事前に違いを押さえておくことが大切です。

    Status列とPublished列の違い

    Status列 — 商品の稼働状態

    Status列に指定できる値は次の2つです。

    意味
    active 商品が稼働状態。ストアフロントに表示可能(Publishedの設定次第で実際の表示が決まる)
    draft 商品が下書き。管理画面では確認できるが、ストアフロントには一切表示されない

    Statusをdraftにすると、PublishedがTRUEであっても商品は公開されません。商品そのものを非公開にしたい場合は、Status列をdraftにするのが確実です。

    Published列 — 販売チャネルへの表示

    Published列に指定できる値は次の2つです。

    意味
    TRUE 販売チャネルに表示する(Statusがactiveのときのみ実際に表示される)
    FALSE すべての販売チャネルで非表示にする

    Published=FALSEは、商品を「チャネルから隠す」だけで、商品自体はアクティブなまま残ります。管理画面では商品一覧に引き続き表示され、在庫管理や注文処理にも影響しません。

    4つの組み合わせと実際の表示結果

    StatusとPublishedは独立して動くため、4通りの組み合わせがあります。それぞれの状態で、ストアフロントや管理画面にどう見えるかをまとめました。

    Status Published ストアフロント 管理画面 注文受付
    active TRUE 表示される 「アクティブ」と表示 可能
    active FALSE 表示されない 「アクティブ」と表示 不可(チャネル非表示のため)
    draft TRUE 表示されない 「下書き」と表示 不可
    draft FALSE 表示されない 「下書き」と表示 不可

    active + TRUEの組み合わせだけが、実際にストアフロントに商品を表示します。それ以外の3パターンはすべてストアフロントに表示されませんが、管理画面上の扱いや内部状態が異なる点に注意してください。

    よくある間違いと起きること

    間違い1:Statusをactive→draftにしたつもりでPublishedだけ変更する

    CSVを編集するとき、Published列をFALSEにすれば商品が非公開になると思って変更したケースです。実際には商品自体はactiveのままなので、管理画面では「アクティブ」として扱われます。在庫数やコレクションの紐付けもそのまま残るため、後で「なぜストアフロントに表示されないのか」と混乱しがちです。

    間違い2:Published=FALSEで「特定チャネルだけ非表示」にできると思っている

    CSVのPublished列は、すべての販売チャネルを一括で制御します。特定のチャネル(オンラインストアだけ、POSだけなど)だけ非表示にする目的でFALSEを指定すると、全チャネルで非表示になってしまいます。個別のチャネル制御が必要な場合は、管理画面の「管理」セクションから手動で販売チャネルを設定し直す必要があります。

    間違い3:draftの商品をCSVでactiveにしたがPublishedがFALSEのまま

    Statusをdraftからactiveに変更したのに、PublishedがFALSEのままだと、商品はアクティブでもストアフロントには表示されません。「CSVで公開設定にしたのに反映されない」という場合、まずPublished列の値を確認してください。

    CSVインポート前に確認するべきポイント

    一括更新する前に、次のチェックリストでCSVの内容を確認しておくと、意図しない公開状態の変化を防げます。

    • Status列の値が正しいかactivedraftのどちらか。空欄やスペルミスがないか
    • Published列の値が正しいかTRUEFALSEのどちらか。true/false(小文字)でも動作するが、表記ゆれに注意
    • 両方の列を同時に確認しているか — Statusだけ、Publishedだけを見ていると組み合わせのミスに気づかない
    • 変更対象の行数が意図通りか — フィルタやソートのミスで想定外の行が含まれていないか
    • バックアップのCSVを用意したか — 元に戻せるように、変更前のエクスポートCSVを保存しておく

    安全にテストする手順

    本番の一括更新前に、1商品だけでテストインポートすることをおすすめします。手順は次の通りです。

    1. 管理画面から商品を1つエクスポートする(対象1行だけのCSVを作成)
    2. Status列とPublished列を、意図する組み合わせに書き換える
    3. そのCSVをインポートする
    4. 管理画面で商品の公開状態が期待通りに変わったことを確認する
    5. ストアフロント(シークレットウィンドウなど)で表示・非表示を確認する
    6. 問題なければ、本番用のCSVで一括更新に進む

    1商品のテストで想定外の挙動があれば、CSVの記述を見直してください。特に、CSVエディタがTRUEを自動的に別の形式に変換していないか(Excelで日付扱いになるケースなど)も確認しておくと安心です。


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

    自動チェックで防げる問題

    CSVのバリデーションは、スクリプトや関数で事前に確認できる部分が多いです。次の項目は自動チェックに向いています。

    • Status列の値がactiveまたはdraftのいずれかであること
    • Published列の値がTRUEまたはFALSE(大文字小文字問わず)であること
    • 空欄のセルがないこと(空欄は「変更なし」として扱われるが、意図の確認が必要)
    • Handle列が正しく設定されていること(更新対象の商品を一意に特定するため)

    人間の判断が必要な問題

    自動チェックでは判断できない部分もあります。次の点は、担当者の意図を確認する必要があります。

    • どの公開状態にしたいか — 商品ごとに「完全非公開」「チャネル非表示」「公開」のどれが適切かは、販売戦略による
    • active + FALSEの意図 — 一時的な非表示なのか、在庫整理中なのか、理由によって扱いが変わる
    • チャネルごとの表示制御 — 特定チャネルだけの表示・非表示は、CSVのPublished列では制御できないため管理画面の操作が必要
    • 下書きに戻すタイミング — シーズン商品の終了など、ビジネス判断が関わる

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

    CSVインポートで公開状態のトラブルが起きた場合、次の情報を整理しておくと、原因特定がスムーズに進みます。

    • 対象商品のHandle
    • 期待する状態(active / draft / archived、販売チャネル表示の希望)
    • CSV上の StatusPublished の値
    • いつインポートしたか
    • 管理画面で見えている状態を文章で説明したもの

    初回相談では機密CSVやスクリーンショットの送付は不要です。商品Handleと「どうしたいか」の簡単なメモだけでも、状況の整理に役立ちます。必要になった場合に後からスクリーンショットを確認することがあります。

    参考にした公式情報

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

    Shopify CSV / 一括編集 まわりの作業整理、小さな自動化、簡易チェックツール化について相談できます。初回相談で機密CSVやスクリーンショットを送る必要はありません。

    無料相談する