Magento 2 Multi Source Inventory (MSI)

- Fire development, Magento 2

Magento 2 multi Store Inventory

The following article sheds light on a new important enhancement to our favorite e-commerce platform – Magento 2 Multi Source Inventory. The project will be available for the Open Source (Community) edition by the end of 2018, so it’s time to say a few words about its nature, goals, benefits, and usability.

What is the meaning of the multi source inventory functionality of Magento 2? Behind this term, you will discover a huge improvement to the Magento core that introduces the ability to connect multiple inventory sources to your e-commerce store. Note that you not only link them together but also leverage an algorithm of selection that chooses a warehouse or a physical store depending on various conditions to make the delivery as much efficient as possible.

Of course, such functionality also enables some advanced drop shipping opportunities, so does it mean that a huge part of multi source and drop shipping modules will become useless with the release of Magento 2.3 that tends to be the first version with the built-in multi source capabilities? We will try to provide the answer below.

Magento 2 Multi Source Inventory Concepts

First of all, let’s take a look at the core concepts of the Magento 2 Multi Source Inventory project and highlight some new terms and features introduced with the improvement.

Magento 2 MSI Sources

The basis of the new enhancement is sources. Under this term, we mean a place where a stock is located physically. So it is a place where products a stored. It can be a warehouse, a brick-and-mortar store, your grandfather’s house, or uncle’s garage. Create a source that represents each physical location. Next, you will be able to specify the number of items for each source on a product configuration page. In other words, for each source specified in your Magento 2 admin, a number can be entered for a product.

Of course, the basic element of the Magento 2 Multi Source Inventory functionality has its representation within the backend. Like other admin elements, it has a grid where you can manage all specified sources as well as add new ones.

Below, you can see the illustration of the “Manage Source” screen with 4 created sources: Warehouse LA, Warehouse DE, Store NL and the Warehouse in NY:

Magento 2 multi Store Inventory

As you can see, we have two types of sources: warehouse and store. It means that products are available in three warehouses – LA, DE, and NY – as well as one store – NL. Another difference between sources is their geographical location, but let’s not run ahead.

As you might have noticed on the screenshot above, there is the huge “Add New Source” button available on the top right part of the “Manage Source” screen. Hit it to add a new physical location of products. A similar screen is available for editing the existing sources. Hit “Edit” in the “Action” column, and you will be redirected to the following page:

Magento 2 multi Store Inventory

The only parameters required for creating a new source are Name and Code. Nothing more is necessary to add a new one with the Magento 2 Multi Source Inventory functionality. At the same time, you can enable/disable your new source here and add its description and geographical coordinates.

Now, when you know everything about sources, we can proceed to the next level of the Magento 2 MSI project – stocks.

Magento 2 MSI Stocks

A stock is used to group multiple sources together. Next, the newly created group is linked to a channel – another new term used to highlight a certain website. And unlike sources, which represent physical locations, stocks serve as a virtual representation for multiple sources, representing sales channels (websites).

And there is a dedicated page where you can manage all stocks. As you might have already guessed, it contains a grid with all stocks (sales channels). Below, you can see the example of such page:

Magento 2 multi Store Inventory

Everything looks quite familiar: columns that include ID, Name, the new MSI concept (Sales Channels), and Action. Nothing radically new is used to implement the Magento 2 Multi Source Inventory functionality which at the same time provides long-awaited revolutionary changes to the platform’s core. But let’s return to our mutton.

The “Sales Channels” column represent your stocks. In the example below, there are two of them: Europe and United States. As we’ve already mentioned, the principle of a geographical location is used to combine multiple sources together. Let’s edit the Europe stock for the better understanding of what happens under the hood:

Magento 2 multi Store Inventory

The stock contains two sources: Store NL and Warehouse DE. Since it is linked to a corresponding website, all sales that take place on this website are deducted from sources that are a part of the stock. Magento 2 uses the source selection algorithm to specify one or multiple sources from which the stock is deducted. Multiple parameters are utilized to run the selection, but it is not time to talk about this feature. Let’s pay attention to the simplicity of scaling introduced with the Magento 2 Multi Source Inventory functionality.

If you want to expand your business and add a new warehouse, it’s no longer a problem. Create a new source and link it to the appropriate stock. That’s it! For instance, you want to sell items from a new warehouse in Belgium. Create a new source – Warehouse BE – and bound it to the Europe stock.

Of course, you can link it to the US stock, but it is a quite useless action since the source selection algorithm will not probably choose the source to ship items to the US because there are two more warehouses located in the region.

Magento 2 MSI Product Edit Page

It is obvious that the new functionality has changed the way a default product edit page looks. Now, it includes a completely new section named “Assigned Sources” which displays a source code, name and status, a status of items in each source and their quantity, as well as a notification quantity. At the same time, you can use the default notification quantity. Hit the black bin icon to unassign a source from the product.

Magento 2 multi Store Inventory

The example above includes the already familiar sources: Warehouse DE, store NL, Warehouse LA, and Warehouse NY.  Warehouse DE is empty regarding the selected product while others include 2, 12, and 6 items correspondingly. What does the Magento 2 Multi Source Inventory module do with this numbers? Let’s find the answer in the following chapter!

Magento 2 MSI Salable Quantity

Everything is very straightforward: after sources are created and linked to stocks, the number of items is specified per source per product, and each stock is linked to a corresponding website, the Magento 2 MSI module sums everything to provide you with the salable quantity. The new column is added to the Product grid along with another one that displays a number of items per source. Thus, “Quantity per Source” and “Salable Quantity” have the following look:

Magento 2 multi Store Inventory

A new crucial improvement has been introduced to the way stock is handled in general. The “Quantity per Source” column represents a physical stock at each location (store or warehouse). Changes are applied to the content of this column only when a shipment is created. In the case of current Magento versions, it happens when a new order is placed. The core reason for the new approach will be described in the “Magento 2 MSI Performance” chapter.

As for the “Salable Quantity” column, it sums up the available resources and groups them in stocks. Returning to our example, we should do some elementary school calculations to explain how the Magento 2 Multi Source Inventory module works.

The salable quantity for Europe is 2 which is a sum of two sources: Store NL and Warehouse DE. Since Warehouse DE is empty (Macbook Pro 15,4″ is not available) and Store NL includes 2 items of the product, you get that salable quantity for Europe.

The situation with the US stock is absolutely the same: the appropriate salable quantity is the sum of the remaining warehouses. Since there are 12 Macbooks in Warehouse LA and 6 in Warehouse NY, the US stock offers 18 sellable items of the product. What practical meaning does it have?

For instance, you’ve just entered a website linked to the Europe stock looking for a new Macbook pro 15,4″. There are just two items left so that you need to rush; otherwise, someone else will get the precious items. But if you are an American customer who visits the corresponding version of the e-commerce store, you will see 18 sellable Macbooks. Circumstances won’t make your need to purchase the product more urgent.

When a new order is placed, the Magento 2 Multi Source Inventory module deducts the quantity from the sellable number. Also, note that there is a feature common for both “qty” used before and “salable quantity” – the new value triggers a number of notifications and actions. Depending on the configuration, the module will do the following actions automatically:

  • If the stock is 0, it sets the “out of stock” status;
  • Displays the stock number on the frontend;
  • Notifies a visitor if more products are added to a shopping cart than available.

Now, we have to say a few more words about the source selection algorithm.

Magento 2 MSI Source Selection Algorithm

While the Magento 2 Multi Source Inventory module changes a salable quantity when a new order is placed and paid, the whole deal runs during the stage of a shipment creation.  At this moment (the following chapter describes why), the Magento 2 MSI module uses the source selection algorithm.

Magento 2 multi Store Inventory

The algorithm is utilized for calculating from which sources a new order should be delivered most efficiently. It uses multiple different parameters including customer, address, product, stock, and source data.

For instance, if two suppliers offer the same product, the algorithm selects one that offers the highest product margin. Besides, a customer’s location can be used to determine the nearest physical location of the selected product. At the same time, orders can be sent from the specified warehouse the ordered quantity is larger than the actual stock – then another warehouse is used.

Note that if all sources added up do not have enough stock to supply, the shipment is not created. More conditions will be reviewed after the launch of the Magento 2 Multi Source Inventory module. We can only add that source selection algorithms should be flexible enough to satisfy the most demanding business needs. They can be programmed according to your particular requirements.

Unfortunately, Magento 2.3 will include only one source selection algorithm based on source priority that should be specified manually. Such conditions are far from seamless automated experience, but we are talking about the beginning of a great project. And since there is a huge Magento ecosystem of third-party extensions, there is always a remedy. This time, Amasty introduced a new Magento 2 MSI extension that adds multiple source selection algorithms. We will review it and add to this article as soon as it is available for preorder.

Magento 2 MSI Performance

Now, we should tell a few words about how the Magento 2 Multi Source Inventory project affects the performance of an e-commerce website. Also, this chapter provides answers to the questions raised previously. So, why does the source selection take place after an order is placed?

It helps to eliminate the negative impact on the checkout performance caused by the needs of the source selection algorithm. The more complex it is, the more computing power and time to execute are necessary to select the source.

Consequently, one of the most important parts of the purchase process remains as fast, as it is now. But you can still make it better with the help of Magento 2 One Step Checkout extensions. Besides, it is possible to decrease cart abandonment rate with the help of the corresponding modules.

Magento 2 MSI Partial Shipment and Drop Shipping

With the Magento 2 Multi Source Inventory module, you can fully leverage the ability to ship orders in parts. This functionality can be implemented manually, but it is flexible enough to satisfy multiple goals. For instance, a customer requires a specific product to be delivered upfront apart from a large order. You need to create a separate shipment and select another store stock that offers faster delivery time to implement the upfront delivery. The remaining items will be shipped via the specified algorithm in the automated manned described above.

And there is a huge perspective to implement drop shipping capabilities on the basis of the Magento 2 MSI module. You just need to add a drop shipping partner to the list of available sources. Since the Magento 2 Multi Source Inventory project is under development, we don’t know much about the further realization of this idea. Note that there are still too many uncertainties. But how can you implement multi source and drop shipping functionality right now?

Magento 2 MSI Module Replacements

There are several ways to get the desired functionality right now or replace it in future. First of all, there are multiple ERP platforms designed to work with numerous physical sources of products. There are both extremely powerful solutions for big companies and tools for small businesses. You can connect Magento 2 to any ERP system with the help of the Improved Import & Export Magento 2 extension (which is described further in this article).

At the same time, it is possible to use Magento 2 ERP extensions to enable the multiple source inventory functionality. For instance, Boost my Shop offers the corresponding tool:

Boost my Shop Embedded ERP Magento 2 Extension

Boost my Shop Embedded ERP Magento 2 Extension Review; Boost my Shop Embedded ERP Magento 2 Module Overview

This Magento 2 ERP extension is designed to improve the following three areas: inventory management, supplier management, and order management. At the same time, the module provides multiple dashboards with various stats.

Another important feature of the module is its relative simplicity. Since all controls are available within your Magento 2 backend, there is no need to synchronize the tool with an external system.

From the perspective of inventory management, the ERP Magento 2 extension by Boost my Shop Embedded provides the ability to:

  • read barcodes;
  • track and transfer stocks;
  • receive low stock level alerts.

From the perspective of the supplier management, you can:

  • add multiple suppliers;
  • edit supplier information;
  • track purchase prices;
  • monitor supplier needs;
  • get alerts;
  • manage purchase orders;
  • follow backorders.

Boost my Shop Embedded ERP Magento 2 Extension Review; Boost my Shop Embedded ERP Magento 2 Module Overview

As for the order management functionality, it allows you to plan customer orders and manage their delivery.

As we’ve already mentioned, the Embedded ERP Magento 2 extension by Boost my Shop provides a set of features that simplify the way you manage and control different warehouses and inventory sources. Monitor and track stocks, leverage multi inventory management capabilities, create an unlimited number of physical and virtual deposits, automate the distribution of customer orders, and do many more management tasks related to multi source inventory with the help of the Embedded ERP module. For further information, follow the link below:


At the same time, the Magento ecosystem offers numerous multi warehouse extensions. There are three core groups of merchants who can benefit from using the Magento 2 multi warehouse inventory extensions:

  • Vendors With Multiple Warehouses can split inventory between different warehouses and specify a priority, location, and other parameters to automate the selection.
  • Multilingual Stores. Since warehouses can be associated with specific stores, you can assign them to store views with different languages. Thus, local administrators can manage inventory more efficiently, and goods can be delivered faster.

Multi Warehouse Inventory by Amasty

Amasty Multi Warehouse Inventory Magento 2 Extension

Amasty offers a smart tool designed to add the multi source inventory functionality to Magento 2. Little wonder the company is going to provide a set of source selection algorithms. Just take a look at the extension features:

  • Advanced Inventory Management: add unlimited warehouses and custom stock locations; use offline shops inventory tracking; create a virtual warehouse for defective products; implement the drop shipping functionality.
  • Advanced Warehouse Management: with this extension, you can easily assign warehouses to customer groups and store views.
  • Orders From Different Warehouses: the split order functionality mentioned above is also possible with the extension. You can create several shipments and calculate costs separately on the basis of each warehouse location.
  • Stock Control: Amasty offers per warehouse updates from Manage Stock grid or backend product pages.
  • Three Stock Levels: Physical Qty, Qty to Ship, Available Qty (for sale) – looks like this extension is yet more robust than the planned improvement!
  • Smart Warehouse Selection: Amasty offers multiple fully customizable algorithms based on warehouse priority and location, store view, assigned customer group, etc. Do you have any more questions about the core source of improvements to the Magento 2 MSI project?
  • Import/Export: freely import/export stock data.
  • Low Stock Reports: specify a custom stock level to be notified about running out items.
  • Returned Items are automatically added to the corresponding warehouse! You don’t have to do that work manually anymore!

Amasty Multi Warehouse Inventory Magento 2 Extension

Follow this link for further information:


Alternatively, you can check these modules as well: Advanced Inventory by Wyomind, Multi Warehouse Inventory by Aitoc, and Multi Warehouse Inventory by IWD.

If the drop shipping capabilities of the Amasty Multi Warehouse extension are not enough, pay attention to the following extension that also improves the functionality of the Magento 2 MSI module.

Magento 2 Drop Shipping Extension by Boost my Shop

Boost My Shop Magento 2 Drop Shipping Extension Review; Boost My Shop Magento 2 Drop Shipping Module Overview

Note that this extension is a part of the Embedded ERP Extension Suite, so you should also install the Embedded ERP Magento 2 extension to give it a try. First of all, it offers seamless supplier price and stock import as well as the opportunity to select the cheapest supplier automatically. Progress monitoring is also among the extension features.

The ability to work with remote drop shipping systems is based on the FTP server connection: the extension can easily retrieve a data file. Specify FTP Host, Login, and Password to download latest stock files automatically. Also, note that the import history is available with the module as well within a grid. As a Magento 2 store manager, you will easily find out such information as the time and date of the import, its status, and a short summary.

Boost My Shop Magento 2 Drop Shipping Extension Review; Boost My Shop Magento 2 Drop Shipping Module Overview

As for the automated supplier selection, the Drop Shipping Magento 2 extension by Boost My Shop provides the ability to create conditions to select the best supplier – just like Amasty’s tool mentioned above. The module allows creating conditions on the basis of such parameters as Availability, Best Stock, Best Price, etc. You can either compare different offers for the same product SKU at a glance or let the extension choose the best supplier automatically.

For further information, follow this link:


Alternatively, you can check the Dropshipping Extension by

Improved Import & Export Magento 2 Extension

Magento 2 mysql data import

Needless to say, the Improved Import & Export Magento 2 extension is fully suitable for the appearance of the new feature. It already supports all third-party solutions designed to implement the multi source inventory functionality on the basis of Magento 2. The module helps to connect your e-commerce website to external systems to import/export attributes, entities, products from vendors and warehouses, purchase orders, orders, etc. And it will be fully compatible with the built-in functionality of Magento 2.3, but how does it achieve such functionality?


First of all, the Improved Import & Export Magento 2 extension offers extended connectivity options. In addition to the only format supported by Magento – CSV – it also adds a plethora of new opportunities. With the help of the module, you can freely import and export data in XML, JSON, ODS, and Excel formats.

At the same time, the Improved Import & Export Magento 2 extension lets you leverage numerous external file sources. The module supports FTP/SFTP connections so that you can transfer data files using either a local or remote server. At the same time, it is possible to utilize a Dropbox account for the same purpose. Additionally, you can import data right via a direct URL. Note that all compressed files are unpacked automatically.

Besides, the Improved Import & Export Magento 2 extension supports several alternative ways to transfer data between Magento 2 and third-party systems. The module enables you to import information from Google Sheets. The process looks as follows:

Magento 2 Google Sheet import

Furthermore, you can use  SOAP API, REST API, and GraphQL API connections to establish a bi-directional data flow. Note that all features of the plugin can be effortlessly used with any connection type, file source, and entity.


Another important feature that allows implementing the multi source inventory functionality on the basis of Magento 2 is scheduling. The Improved Import & Export extension supports cron allowing you to create any custom schedule of updates. Besides, it is possible to select one of the predefined intervals (and edit them if necessary). Note that you can launch all data updates before schedule manually if required. The configuration process looks as follows:


Rich mapping options are the thing that makes Improved Import & Export so flexible and powerful. First of all, the extension allows matching attributes right in the Magento admin. You no longer have to edit data files manually. Furthermore, you should match attributes for a particular connection only once. Next, the created scheme will be saved and used for further updates. The process itself is quite straightforward:

Furthermore, the Improved Import & Export Magento 2 extension allows applying mapping presets. Thus, the procedure illustrated above is reduced to only a few clicks. The following picture shows how to apply a preset for the data migration form Magento 1.x to 2.x:

In addition to the attributes mapping, you can also match their values by applying the same logic. No presets are available since it is a very individual aspect of every e-commerce store. If the attribute values mapping is not enough, the Improved Import & Export Magento 2 extension offers an opportunity to edit them. It is possible to add a prefix and suffix, merge or split data, etc. You can combine multiple rules as well as create conditions to apply changes more precisely.

It is also necessary to mention that you can map categories during product import which is a useful feature for achieving top-notch multi source inventory capabilities. When importing products to Magento 2, you can match their native categories to ones used in your database as follows:

If a category is not available, the Improved Import & Export Magento 2 extension allows creating it right during the import process. The process is illustrated below:

And you can create missing attributes on the fly while importing data. Just add all parameters necessary to create attributes to the corresponding cell.

For further information about the Improved Import & Export Magento 2 extension, follow the link below and contact our support:

Get Improved Import & Export Magento 2 Extension


As you can see, the Magento 2 Multi Source Inventory is a powerful and long-awaited improvement that will be released with 2.3. Luckily, you can already get the necessary functionality with the help of the third-party extensions. And it seems that some of them are more fully-featured than the planned update. Will the Magento 2 MSI project ruin that plugins?

Definitely, not. It is yet far from being as cool as Multi Warehouse by Amasty. And the vendor is going to prolongate the importance of its contribution to the multi-source inventory functionality with a new extension developed to enhance the basic functionality of the native module. Perhaps, it is the only way for multi warehouse and drop shipping modules to stay on the market in a long-term perspective, but as for the release of Magento 2.3 vendors have nothing to fear.

Check the following sources for further information about the Magento 2 MSI project: