複数のロケーション(倉庫や店舗)で在庫を持つようになると、ふと疑問がわいてきます。「この注文、いったいどの倉庫から出荷されるんだろう?」と。お客様が1つの商品を買っただけでも、Shopifyは裏側で「どのロケーションが在庫を引き当てて発送するか」を自動で判断しています。
この判断のことを注文ルーティングと呼びます。仕組みを知らないと、想定外の遠い倉庫から出荷されて送料がかさんだり、在庫があるはずなのに別ロケーションが選ばれて混乱したり、ということが起きます。今回は、Shopifyがどんな基準で出荷元を決めるのか、そしてそれを意図通りに誘導するコツを、できるだけやさしく整理します。
出荷元ロケーションが決まる仕組み
Shopifyでは、注文が入ると「その商品をどのロケーションから引き当てるか」が自動的に決まります。基準は1つではなく、いくつかの要素が組み合わさっています。大きく言えば、在庫があるかどうか、配送先にどれだけ近いか、そしてあなたが設定したロケーションの優先順位、の3つです。
まず大前提として、引き当てられるのは「その商品の在庫を持っているロケーション」だけです。商品がそのロケーションでストックされていなければ、いくら近くても出荷元の候補にはなりません。そのうえで、Shopifyは配送先住所に近いロケーションを優先しつつ、在庫切れを避けるように出荷元を選びます。1件の注文に複数の商品が含まれ、それぞれ別のロケーションにしか在庫がない場合は、複数ロケーションから分けて出荷される可能性もあります(このテーマは別記事に譲ります)。
ロケーションの優先順位(並び順)の意味
管理画面の「設定 > ロケーション」では、ロケーションを上から順に並べることができます。この並び順は単なる見た目ではなく、注文ルーティングにも影響する要素です。配送先からの距離などの条件が拮抗したとき、この優先順位が「どちらを選ぶか」のタイブレーカーとして働きます。
たとえばメイン倉庫を一番上に置いておけば、条件が近い複数ロケーションのなかでメイン倉庫が選ばれやすくなります。逆に、あまり使いたくない委託倉庫を下のほうに置いておく、といった運用もできます。ただし、優先順位は万能ではありません。配送先にずっと近い別ロケーションに在庫があれば、そちらが選ばれることもあります。あくまで「条件が近いときの判断材料の1つ」と考えてください。
在庫がない場合のフォールバック挙動
優先したいロケーションに在庫がない場合はどうなるでしょうか。この場合、Shopifyは在庫を持っている次のロケーションへとフォールバックします。つまり、優先順位が一番上の倉庫でも、在庫がゼロなら飛ばされて、在庫のある別の倉庫が出荷元に選ばれるわけです。
ここで効いてくるのが、各ロケーションの在庫数の正確さです。本当は在庫がないのにシステム上は「ある」ことになっていると、Shopifyはその倉庫を出荷元に選んでしまいます。すると現場で「在庫がない!」と発覚し、引き当て直しが発生します。逆に、在庫があるのに「ゼロ」と記録されていれば、本来使えるはずの近い倉庫が候補から外れてしまいます。ルーティングを正しく働かせる土台は、ロケーションごとの在庫数が現実と合っていることなのです。
出荷元を意図通りに誘導するコツ
「自動で決まる」とはいえ、運用側からある程度コントロールすることもできます。完全に手で指定するのではなく、Shopifyが正しく判断できるように条件を整える、というイメージです。
- ロケーションの並び順を見直す : よく使う倉庫を上に、補助的な倉庫を下に置く
- 商品をストックするロケーションを絞る : 出荷したくない倉庫にはその商品の在庫を持たせない
- 各ロケーションの在庫数を正確に保つ : ゼロは本当にゼロ、ある数は実数に合わせる
- 発送後に必要なら、注文ごとに引き当てロケーションを手動で変更する
とくに2つ目は効果的です。ある商品を特定の倉庫からしか出したくないなら、その商品を他のロケーションにストックしなければ、構造的にそこからしか出荷されません。「優先順位で頑張って下げる」よりも「そもそも候補に入れない」ほうが、誤出荷を確実に防げます。
ルーティングと在庫数の整合性を保つ
ここまで見てきたように、注文ルーティングの精度は「各ロケーションの在庫数がどれだけ現実と合っているか」に大きく左右されます。ロケーションが増えるほど、この整合性を手作業で保つのは大変になります。複数の倉庫担当者がバラバラに数字を更新していると、すぐにズレが生まれてしまいます。
そこで役立つのが、Googleスプレッドシートを在庫の正本(マスター)にする運用です。私たちのアプリ Sync Master は、シートに書いたロケーションごとの在庫数を、Shopifyの各ロケーションへ自動で書き込みます。複数ロケーション(マルチ倉庫)に対応しているので、1枚のシートでロケーションごとの在庫を一元管理できます。本番反映の前に列マッピングを検証する接続テストや、定期的な自動同期も用意しているので、在庫数を常に正しく保ち、ルーティングの土台を整えるのに向いています。
想定外の倉庫から出荷されたときの確認手順
「なぜこの注文が遠い倉庫から?」と感じたら、慌てずに次の順で確認してみましょう。
- 01その注文の引き当てロケーションを注文詳細画面で確認する
- 02本来出したかった近い倉庫に、その商品の在庫が「1以上」あったかを確認する(ゼロなら飛ばされる)
- 03近い倉庫でその商品がストック対象になっているか(在庫追跡が有効か)を確認する
- 04ロケーションの並び順が意図通りか、設定画面で見直す
- 05在庫数のズレが原因なら、シート側を正して再同期し、今後の引き当てを正常化する
多くの「想定外の出荷」は、結局のところロケーションごとの在庫数のズレが原因です。近い倉庫が在庫ゼロ扱いになっていたために飛ばされた、というケースが大半。原因が特定できたら、その場の注文は手で引き当て直しつつ、根本のシートを直して再同期しておけば、同じことの再発を防げます。
注文ルーティングは、Shopifyが裏側で静かにこなしてくれる便利な仕組みです。ただし、その判断の質はあなたが渡す在庫データの正確さで決まります。並び順とストックするロケーションを意図的に設計し、在庫数を正本でしっかり管理する——この2つを押さえれば、出荷元はぐっと思い通りに近づきます。