複数ロケーション在庫を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やスクリーンショットを送る必要はありません。

無料相談する