Sync Master
ブログ

「販売可能」と「手持ち」はなぜ違うのか — Shopifyの在庫状態を理解して同期のズレをなくす

Shopify在庫同期の基本

この記事の概要

Shopifyの在庫は、ひとつの数字ではなく複数の状態に分かれています。手持ち・販売可能・コミット済み・販売不可・入荷予定。この違いを知らないまま同期を組むと、正しく動いているのにズレて見える状態が生まれます。5つの状態の意味と、スプレッドシートに載せるべき数字の選び方をまとめました。

在庫同期を始めたばかりの方から、いちばんよく届く質問があります。「シートには10と書いたのに、Shopifyの画面では8になっている」。同期は成功していて、エラーも出ていない。それなのに数字が合わない。この状況に出会うと、たいていの人はまず同期の仕組みを疑います。けれど原因はそこではないことがほとんどです。

Shopifyにとって、在庫は「ひとつの数字」ではありません。ひとつの商品がひとつのロケーションに置かれているとき、Shopifyはそれを複数の状態に分けて持っています。この記事では、その状態を一つずつ丁寧に見ていきます。理解できると、さきほどの「10のはずが8」がまったく不思議でなくなり、むしろ正しい動作だと分かるようになります。

在庫は「ひとつの数字」ではない

まずは、私たちが普段どう在庫を考えているかを確認しておきましょう。多くの現場では、在庫は棚にある個数のことです。10個あれば10。1個売れたら9。とてもシンプルで、この感覚はまったく間違っていません。問題は、Shopifyがもう少し細かい世界に住んでいることです。

シートの1列と、Shopifyの5つの数字

スプレッドシートで在庫を管理するとき、たいていはSKUごとに数量の列がひとつあります。この1列に入っている数字が、私たちにとっての在庫です。ところがShopify側は、同じSKUの同じロケーションについて、手持ち・販売可能・コミット済み・販売不可・入荷予定という複数の数字を同時に持っています。1対1で対応していないわけです。

ズレの多くは、この非対称から生まれます。シートの1列がShopifyのどの数字に対応しているのかを決めないまま同期を始めると、書き込んだ数字と画面に見える数字が一致しない場面が必ず出てきます。逆に言えば、対応関係さえ決めてしまえば、同じ現象が「想定どおり」に変わります。ロケーションや在庫追跡といった前提は、Shopify在庫の基本で先に押さえられます。

お客さまが見ているのはどの数字か

売り越しを避けるという目的から考えると、いちばん大事なのは「ストアフロントで購入可否を決めているのはどの数字か」です。答えは販売可能(Available)です。Shopifyのヘルプセンターは、販売可能を「販売できる在庫」と定義しています。カートに入るかどうか、在庫切れ表示になるかどうかは、この数字が握っています。

つまり、棚に何個あるかは、お客さまの体験には直接は関係しません。棚に10個あっても、そのうち3個がすでに注文済みで出荷待ちなら、いま売れるのは7個です。この「いま売れる数」こそが販売可能であり、同期で本当に守りたいのもこの数字だ、という視点を最初に持っておくと後の判断がぶれません。

同期のズレの多くはここで生まれる

冒頭の「10のはずが8」に戻りましょう。シートに10と書き、それが手持ちとして反映されたとします。同じタイミングで未出荷の注文が2件あれば、販売可能は8になります。手持ちは10、販売可能は8。どちらの数字も正しく、同期も正しく動いています。単に、見ている画面が別の数字を表示していただけです。

この構図を知らないと、人は「同期がおかしい」と判断してシートの数字を手で書き換えてしまいます。そして書き換えた数字が次の同期で上書きされ、また戻る。この往復が数日続くと、誰も数字を信じなくなります。状態の理解は、単なる知識ではなく、運用の信頼を守るための土台なのです。

Shopifyが持つ在庫状態を1つずつ

ここからは、Shopifyの在庫状態を順番に見ていきます。難しい言葉が並びますが、覚えるべき関係式はたったひとつです。手持ち=販売可能+コミット済み+販売不可。この足し算が頭に入っていれば、あとは各項目が何を指すかの話になります。

手持ち(On hand)— 物理的にそこにある総数

手持ちは、そのロケーションに実際に存在するすべてのユニット数です。売れるかどうかは問いません。出荷待ちのものも、破損して売り物にならないものも、すべて含まれます。棚卸しで数えた数字と突き合わせるべきなのは、この手持ちです。

ここで覚えておきたいのが、Shopify管理画面で販売可能の数量を直接編集すると、手持ちも同じ分だけ動くという挙動です。販売可能を5増やせば手持ちも5増えます。「販売可能だけを調整したつもりが、棚の数まで変わっていた」という誤解はここから生まれます。

販売可能(Available)— いま売れる数

販売可能は、いま販売できる在庫です。どの注文にもコミットされておらず、下書き注文のために予約もされていない分を指します。前の章で見たとおり、ストアフロントの表示と購入可否を決めるのがこの数字です。売り越し対策の話をするときは、ほぼ常にこの数字の話をしています。

在庫同期の設計では、販売可能を直接書き換える方式と、手持ちを書き換えて販売可能はShopifyに計算させる方式のどちらを取るかが分かれ道になります。どちらが正しいというより、シートに載っている数字がどちらの意味なのかに合わせるのが正解です。

コミット済み(Committed)— 売れたがまだ出荷していない数

コミット済みは、注文には含まれているがまだフルフィルメントされていないユニット数です。お客さまが購入した瞬間に販売可能から差し引かれ、コミット済みに移ります。棚にはまだ物理的に存在するので、手持ちは変わりません。出荷が完了すると、コミット済みと手持ちの両方から減ります。

なお、下書き注文(ドラフトオーダー)はコミット済みには含まれません。注文として確定して初めてコミット済みになります。ヘルプセンターによれば、下書き注文のために取り置かれた分は販売不可として扱われます。BtoBの見積もりを下書き注文で運用している場合は、この違いを知っておくと数字が読みやすくなります。未出荷ぶんをシート側でどう扱うかは、未出荷注文ぶんを差し引く考え方にまとめています。

販売不可(Unavailable)と入荷予定(Incoming)

販売不可は、手元にはあるけれど売れない在庫です。破損、品質チェック待ち、安全在庫として取り置いている分、そして下書き注文のための予約分などが入ります。安全在庫をShopify側の販売不可として表現できるという点は、覚えておくと運用の選択肢が広がります。

入荷予定(Incoming)は、そのロケーションに向かっている途中の在庫です。移動や仕入れ、アプリ経由で登録されます。大事なのは、入荷予定は受け取り処理をするまで販売可能にはならず、手持ちにも含まれないという点です。「入荷予定の分まで売ってしまった」という事故は、この線引きを曖昧にしたときに起きます。

  • 手持ち(On hand)— そのロケーションにある全ユニット。販売可能+コミット済み+販売不可の合計
  • 販売可能(Available)— いま売れる数。ストアフロントの在庫表示と購入可否を決める
  • コミット済み(Committed)— 注文済みでまだ出荷していない数。出荷すると手持ちからも減る
  • 販売不可(Unavailable)— 破損・品質チェック・安全在庫・下書き注文の予約分など
  • 入荷予定(Incoming)— 移動や仕入れで向かっている途中。受け取るまで売れないし手持ちにも入らない

状態を踏まえた同期の組み立て方

状態が分かったところで、実際の同期設計に落とし込みましょう。ここでの判断は3つです。シートに載せる数字を何にするか、上書きと増減のどちらで反映するか、そして未出荷注文が絡むタイミングをどう扱うか。順に見ていきます。

シートに載せるべきはどの数字か

結論から言うと、多くの店舗にとっては手持ちを載せるのが素直です。理由はシンプルで、倉庫や店舗のスタッフが数えられるのは棚にある個数だからです。「いま売れる数」を人が計算して入力するのは無理があります。コミット済みの件数は刻々と変わりますし、それはShopifyがすでに知っています。

Sync Masterのようにスプレッドシートを在庫の単一の真実として扱う仕組みでは、この考え方がとくにきれいに機能します。人は数えられる数字だけをシートに書き、そこから先の引き算はShopifyに任せる。役割分担がはっきりしていると、担当者が入れ替わっても運用が壊れません。

「上書き」と「増減」の違いを意識する

在庫の反映方法には、絶対値で上書きする方式と、差分で増減させる方式があります。シートを単一の真実として運用するなら、上書きが基本です。シートに書いてある数字がそのまま正になるので、何が起きても最終的にはシートの値に収束します。復旧が読みやすいという意味でも安心感があります。

一方で、上書き方式には注意点もあります。シートに載っていないSKUや、うっかり空欄になったセルをどう扱うかを決めておかないと、意図せずゼロが書き込まれる可能性があります。空欄は「更新しない」として扱うのか「ゼロとして反映する」のかを、運用開始前にチームで確認しておきましょう。全件で上書きするか差分だけ送るかは、全件同期と差分同期の選び方で比較しています。

未出荷注文とタイミングの罠

もうひとつ知っておきたいのが、棚卸しと注文が同時に走ったときの挙動です。担当者が棚を数えている最中に注文が入ると、数え終えた時点の数字にはその注文分がまだ反映されていません。この数字を手持ちとして書き込むと、実際より多い在庫がShopifyに入ることになります。

対策は難しくありません。棚卸しと同期のあいだの時間差を短くすること、そして注文が少ない時間帯に反映することです。スケジュール同期を設定できる仕組みなら、開店前や深夜に走らせるだけで、この種のズレはかなり減ります。時間帯を選ぶだけで精度が上がるのは、コストパフォーマンスの良い工夫です。

現場で効く確認のコツ

最後に、日々の運用で使える確認方法を紹介します。仕組みを完璧に組んでも、確認する習慣がなければズレには気づけません。とはいえ大がかりなことは必要なく、数分で終わる作業をいくつか持っておけば十分です。

3分でできる突き合わせ

売れ筋のSKUを5つほど選び、シートの数字とShopifyの手持ちを並べて見比べます。ポイントは、販売可能ではなく手持ちで比べることです。販売可能はコミット済みの分だけ小さくなるので、そのまま比べると毎回ズレているように見えてしまいます。比べる相手を間違えないだけで、無駄な不安が減ります。

初回の同期を組んだときや、シートの構成を変えたときは、いきなり全件を流さずに接続テストで確認してから走らせると安全です。数SKUだけで期待どおりの数字になるかを見てから本番に進む、という順番を習慣にしておくと、大きなやり直しがほぼ起きなくなります。

数字が合わないときの読み解き方

  1. 01Shopifyの在庫画面で、そのSKUの手持ち・販売可能・コミット済み・販売不可を並べて確認する
  2. 02手持ちがシートと一致していれば、同期は正常。差はコミット済みか販売不可で説明できるはず
  3. 03手持ちがシートとずれている場合は、そのSKUがシートに存在するか、行や列がずれていないかを見る
  4. 04それでも合わなければ、直近の棚卸し・返品・移動の受け取りなど、人の操作が入った履歴を確認する

この順番で見ていくと、原因が「同期の問題」なのか「状態の見間違い」なのか「人の操作」なのかが切り分けられます。経験上、最初の2ステップで解決するケースがかなりの割合を占めます。いきなり設定を疑わないのが、時間を節約するコツです。

チームで言葉をそろえる

意外と効くのが、用語をそろえることです。倉庫担当が「在庫」と言うとき、それはたいてい手持ちを指しています。カスタマーサポートが「在庫」と言うときは、販売可能を指していることが多い。同じ単語で違う数字を指しながら話していると、会話がすれ違い続けます。

難しいルールは要りません。社内のやりとりで「棚の数」と「売れる数」を意識的に言い分けるだけでも、認識のずれは目に見えて減ります。シートの列名に「手持ち数量」と明記しておくのも効果的です。数字の意味が見出しに書いてあれば、新しく入った人も迷いません。

Shopifyの在庫状態は、最初こそ細かく見えますが、実際に扱っているのは「棚にある数」「いま売れる数」「売れたけどまだ出ていない数」「あるけど売れない数」という、現場の感覚そのままの区別です。言葉が難しいだけで、中身は誰もが知っている概念でした。

この区別が身についていると、在庫同期の設計はぐっと楽になります。シートには人が数えられる数字を書き、引き算はShopifyに任せる。ズレを見つけたら、まず手持ちで比べる。たったこれだけの原則で、同期に対する信頼はかなりの部分が守られます。次に数字が合わないと感じたときは、慌てて設定を疑う前に、どの状態を見ているかを確かめてみてください。

関連記事

あわせて読みたい記事

  • Shopify在庫同期の基本

    Shopify在庫の基本——ロケーション、在庫数、在庫追跡を一気に整理

    Shopify運用の入口にある「在庫の言葉」を分かりやすく解説。ロケーション、利用可能数、コミット済み、現在の在庫数、在庫追跡——これらが頭に入ると、シート同期の話がぐっと理解しやすくなります。

  • Shopify在庫同期の基本

    在庫APIの裏側——REST と GraphQL、ざっくり違い

    Shopifyの在庫APIにはRESTとGraphQLの2系統があります。アプリ開発の話に聞こえますが、実は「ユーザーから見える挙動」にも違いが出ます。両者の違いを、コードを書かない人にも分かるように整理しました。

  • 同期の基本自動化

    全件同期と差分同期、Shopifyの在庫にはどちらを選ぶべきか

    在庫をShopifyに反映する方法には、毎回すべてを書き直す全件同期と、変わった分だけを送る差分同期があります。速さでは差分が有利ですが、取りこぼしのリスクは全件のほうが小さい。それぞれの向き不向きと、実務で使いやすい組み合わせ方を整理しました。

在庫数を手で打ち込むのは、もうやめましょう。

Sync MasterをShopifyにインストールして、5分以内に最初の同期を実行。