最初に結論
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 − コミット済み(未発送注文) |
Available は On 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 にしてよいか
- 複数ロケーション間で在庫を振り替えるべきか
安全にインポートする手順
- 在庫ページからCSVをエクスポートする(「すべての在庫」を選択)
- 元ファイルをコピーしてバックアップをとる
- コピーしたファイルで、更新対象の SKU をフィルタで絞り込む
- 該当行の On hand 列だけを書き換える
- 上記チェックリストの各項目を確認する
- CSVを保存する(UTF-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やスクリーンショットを送る必要はありません。
無料相談する
