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の作り方
- 現在の在庫データを取得する:Shopify 管理画面から在庫CSVをエクスポートする
- 更新用CSVを作成する:エクスポートしたCSVをコピーし、更新したい値を書き換える
- 差分列を追加する:スプレッドシートで「更新前在庫」「更新後在庫」「差分」の3列を並べる
- 急減アラートを設定する:差分が一定数以上(例:在庫が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やスクリーンショットを送る必要はありません。
無料診断を依頼する