Magento 2.3 introduced a brand new functionality – Multi Source Inventory (MSI). It’s a long-awaited feature that before the update was only available through external modules or custom code. Let’s have a look at what MSI is and how you can make use of it. 

Multiple providers and inventory states

Multi Source Inventory lets you configure multiple providers and inventory states. In practice, it means that a product can be supplied by different entities and from different locations. Additionally, MSI provides built-in logic related to managing orders shipment and API that can be used by external integrations. Before MSI, we had to write a dedicated solution to achieve it; now – it’s available natively.

Multi Source Inventory – Initial requirements

If you update your Magento to 2.3 version (unlike in a fresh installation), MSI won’t be available out of the box because it requires a range of modules that remain disabled by default. To see which modules you must enable, check the official documentation

Setup

Firstly, to set it up, open your store admin panel and let’s get to work!

Sources

Secondly, go to Stores -> Inventory -> Source. You will find an item that is a source for all products and is enabled by default. Click “Add new source” to begin using MSI.

MSI demo source

The above screenshot shows the exemplary values of the fields. Note that the latitude and longitude will later be used by the Magento algorithm to choose the best provider for a specific customer. But let’s not get ahead of ourselves.  

 

Inventory stocks

Go to Stores -> Inventory -> Stocks. Here you can add an inventory stock that will store the information about the stock of all its linked sources. You can assign an inventory stock to a chosen website. Each website (aka sales channel) can only have one inventory stock, but each inventory stock can be assigned to multiple websites. Look at the screenshot and the diagram below.

MSI demo Multi Source Inventory Structure 

Shipping – where the fun starts

Let’s say that you already have an order placed by a customer. You will find two essential differences from the previous Magento 2 versions:

  • Before you mark an order as shipped, you can handle multiple shipments, managing them individually. 
  • The system will use two types of quantity for a product: 
    • Saleable Quantity is a sum of all sources (it will change after the order is placed and a reservation is made),
    • Quantity that refers only to a single source (it will be updated after the shipment is completed). 

Multi Source Checkout Process

Click “Ship” in the order view to begin the shipment configuration. Next, click “Source Selection Algorithm” so that the system automatically configures the shipment based on the distance from the customer to the sources (the latitude and longitude values you stored). Then choose the right source. Finally, click “Proceed to Shipment” to go to the summary. As I mentioned, you can create many shipments like this, even separately for every purchased product. Multi Source Inventory shipment source selection

Multi Source Inventory is a large store’s superhero. 

This solution is a must-have for every large Magento store. It’s hard to believe it hasn’t been a core function until just recently. Let’s hope features like this keep coming to make the life of a Magento store owner or a developer a lot easier.