このエントリはMagento Advent Calendar 2018の1日目です。

Magentoにはいくつかのサブプロジェクトがありますが、複数拠点での在庫管理を実現するサブプロジェクト「Multi Source Inventory(MSI)」は2.3系の目玉機能の一つです。
今回はこのMSIの概念をご紹介したいと思います。

MSIによる在庫管理とは

公式のDevDocsに掲載されているMSIによる複数拠点在庫管理の概念図は、次の図のとおりです。

MSIのによる在庫管理の概念

この図では、3つの実在庫がある拠点と、販売用の理論在庫が3つ、そして販売チャネルが4つ定義されています。

実在庫とは

実在庫は文字の通り、実際の在庫がある拠点です。店頭や倉庫をイメージしていただくと良いでしょう。事業者によっては問屋在庫を含めることもあるかもしれません。

MSIではこの実在庫を管理する拠点ごとに在庫数が設定できるほか、在庫切れにする閾値を設定できます。

在庫切れにする閾値を1以上の値にしておくと、在庫数がその値を下回った際に通知が管理者に届くだけでなく、販売可能な数量にも制約を加えることができます。

理論在庫とは

理論在庫は、複数の拠点在庫を合算した結果です。図ではBicycle Shop UKとUSがそれぞれ複数拠点の在庫を合算した数量を販売可能在庫数として保持しています。

1つの理論在庫は1つ以上のセールスチャネル(Magento上のウェブサイト)に関連付けることができます。

セールスチャネルからは理論在庫を参照して在庫があるかないかを判断します。

なお、MSIを使用する場合、これまでのMagentoには存在しなかった「販売可能数量」が新たに加わります。これまでのMagentoでは在庫数と販売可能数量はイコールで、注文受付による引当数は単純に在庫数を減算していました。

MSIを使用する場合は、出荷が完了するまでの間は実在庫数から引当済数を引いたものが販売可能数量になり、この数量分の注文を追加で受け付けることができます。

販売チャネルとは

販売チャネルはMagento上のウェブサイトです。シングルウェブサイト運用の場合は、販売チャネルが1つしかないため、理論在庫も1つしか持つことができません。

マルチウェブサイト運用時には、それぞれのウェブサイトに理論在庫を関連付けることができます。

MSIをつかうと送料の計算はどうなるのか?

標準状態ではMSIを使っても送料の計算は何も変わりません。従来どおりです。
1つのチャネルに対して紐付いているどの実在庫から出荷され得るか、は2.3.0時点の実装では判別がつきません。
(将来的には判別がつくようになるかもしれません)

いずれにしても、MSIが導入されたことによって、ウェブサイト単位での在庫管理ができるようになりました。日本国内と海外各地域の倉庫にある在庫数を別々に管理できるようになったため、ERPなどとの連携が今まで以上に自然な形でできることでしょう。

カスタマイズや拡張の余地はあるか?

設計上、MSIはサードパーティによる実装が行いやすいように考慮されています。
出荷時の在庫引当アルゴリズムなどを独自開発することによって、配送先住所と倉庫住所から最適な出荷ができるようにも調整することが可能です。

標準では単純に優先倉庫から順に出荷するだけとなっていますが、凝った調整ができるのもMSIの魅力と言えるでしょう。

次回は

今回はMSIの概念的なところを簡単にご紹介しました。
次回は実際に複数拠点在庫の管理の流れをご紹介します。