This Magento 2 MSI user guide briefly explains the platform’s multi-source inventory functionality and then focuses on the Magento 2 MSI import and export. Magento 2.3 came out with the long-awaited Multi-Source Inventory (MSI) support. The feature is available right after you install the Magento 2 MSI module. Although the extension dramatically improves the basic experience associated with inventory management, it still lacks various vital functionalities, especially in data synchronization. Luckily, you can always address the existing issues with the help of third-party solutions. Regarding the Magento 2 MSI module and data transfers, the Improved Import & Export extension and its MSI add-on are at your service.
In this blog post, you will learn how to import and export all Magento 2 MSI entities: sources and quantity of the products per source. Firstly, we describe the MSI module and explain how to install it. After that, you will find out what to do with the MSI add-on of the Improved Import & Export extension. Next, we focus on the Magento 2 MSI import. The article explores the CSV formatting of MSI entities used in Magento 2. You will learn how the stock sources MSI table works and what to do with the stock sources qty MSI table. The last chapter of this Magento 2 MSI import/export guide describes how MSI source import/export works.
MSI is a multi-source Magento inventory management system. This system allows you to allocate product stock per warehouse, and decide from which warehouse the product should be shipped to the customer. If you are using multiple warehouses to store your products – this feature is a must for your Magento 2 store.
Before Magento 2.3 release the MSI functionality could have been added to your store using third-party extensions. We have already discussed such third-party extensions in the article here. If you are looking for the full picture of Magento 2 MSI, or want to replace the native MSI functionality you may want to read it.
In this article, however, we will talk about how to import and export Magento 2 MSI entities, namely sources and product quantity per source.
Magento 2 MSI Import & Export Prerequisites
To import and export MSI sources and product quantity you need the Improved Import and Export extension with MSI Add-On installed. Improved Import and Export is a full-featured Magento 2 extension operational from both the administrator panel and command line.
The extension covers almost all Magento 2 entities import and export and comes with the following features:
Import and export of products, categories, CMS blocks and pages, orders, cart price rules, customers, product attributes, and advanced pricing.
Import and export of all Magento 2 B2B entities: companies, shared catalogs, requisition lists, quotes, and negotiable quotes.
Support multiple file formats including CSV, XML (with XSLT templates), Excel XLSX, OpenOffice ODS, and JSON.
Support of Google Sheets – import CSV files by pasting Google Sheet links.
Support of REST and SOAP API connections to different software.
Before installing the MSI add-on for the Improved Import and Export extension, you need to install the MSI extension for Magento 2.
Installation instructions written by the Magento team can be found here.
Enable Magento 2 MSI
Follow these steps to enable Magento 2 MSI:
Go to Stores > Inventory > Stocks.
You will see the Default Stock on the Manage Stock page. It cannot be disabled.
The default stock is assigned to the default source and the main website if you use a Single source mode.
Click the Add New Stock button to add a new stock source and enable the multi-source mode.
As you can see, these entities are pretty simple and should be easy to get into if you have ever worked with MSI functionality. Anyways, before you proceed we advise reading through the attributes of both entities to understand which values are required and can be used for different settings.
Stock Sources Magento 2 MSI Table
Stock Sources are the warehouses you create at Stores > Inventory > Sources.
Here you can add new Magento 2 MSI sources. The required attributes are:
Name – the name of a warehouse;
Code – the code of a warehouse used for internal identification purposes and serves as a reference when assigning product quantity;
Country – the country of a warehouse location;
Postcode – the postcode of a warehouse region.
The rest of the attributes are optional. When creating warehouses using the import procedure make sure to at least provide information for these attributes, otherwise your Magento 2 store won’t be able to create a warehouse.
Having explored warehouse creation from the administrator panel gives a better understanding of all the attributes in the import and export tables. Before proceeding to compose an import table or gathering data for it, make sure to experience manual warehouse creation.
Below you will find all Stock Source attributes available for import and export. For reference, we suggest opening an MSI Stock Sources sample table in a separate tab of your browser.
Attribute Name
Reference
Values
Value Example
source_code
Code of the warehouse. Is used for identification purposes.
Can be up to 64 Latin characters in length, without spaces, and can contain “-“, “_”.
Can be any value – a text field. Doesn’t work with IDs.
Moscovia
city
City of the Source Address Data
Can be any value
New York
street
Street of the Source Address Data
Can be any value
Street st.
postcode
Postcode of the Source Address Data
Can contain only numerals
12345
contact_name
Contact Name of the source Contact Info
Can be any value
John Doe
email
Contact Email of the source Contact Info
Can be only email value
john@doe.com
phone
Phone of the source Contact Info
Phone number
+123123123
fax
Fax of the source Contact Info
Fax number
+123123123
use_default_carrier_config
System attribute of the source with no particular use case in setting up a new source
–
–
carrier_links
System attribute of the source with no particular use case in setting up a new source
–
–
NOTE: When creating Stock Sources using import jobs, make sure to provide information for the attributes: name, source_code, country_id, and postcode. These attributes are required by the Magento 2 system to create new warehouses. Without them, a warehouse cannot be created.
Stock Sources Qty Magento 2 MSI table
The Stock Sources quantity is applied at the product level once the warehouses are assigned. To check the quantity per warehouse navigate to the product of interest.
In the screenshot above, you can see that we have two warehouses new-warehouse and old-warehouse. Both are assigned to a single product, and this very product has stock in both warehouses. When managing order shipping you will be allowed to decide from which warehouse you want to send the item.
Below you can see all Stock Sources Qty attributes available for import and export. For reference, we suggest opening an MSI Stock Sources sample table in a separate tab of your browser.
Attribute Name
Reference
Values
Value Example
source_code
Code of the warehouse. Is used for identification purposes.
Make sure to specify the exact code value. The code is used to tie product stock to a source.
my_warehouse
sku
SKU of the product whose stock is tied to a particular source (warehouse)
Can be up to 64 Latin characters in length, without spaces, and can contain “-“, “_”
TST-01
status
Source Item Status. Defines if the products in a particular source are in- or out-of-stock.
1 – in stock
0 – out of stock
1
quantity
Quantity of products in a particular stock (warehouse)
Can only contain numerals
123
NOTE: if your product belongs to several stock sources (warehouses), you need to have a dedicated row for every warehouse in the import table. For example:
As you can see in the screenshot above, we have three warehouses:
new-warehouse
old-warehouse
default
And four products:
24-MB01
24-MB02
24-MB04
24-MB06
All these products belong to all three warehouses. That’s why every product has a separate row for every warehouse. When importing such files, the product quantities per warehouse are imported in the order they appear in the file.
How to Import & Export Products with Multiple MSI Warehouses
With the 3.5.2 release of Improved Import & Export, you can now import products and assign them to multiple warehouses with the Magento 2 MSI functionality enabled.
Improved Import & Export for Magento 2 allows you to specify:
To which warehouse a product is assigned;
The quantity of a product at a particular warehouse
If a product can be purchased from the specific warehouse
To import products to Magento 2 with the warehouse reference you need to add three custom attributes to your product import file:
Attribute Name
Reference
Values
Value examples
msi_{warehouse_name}
Allows you to assign an imported product to a particular warehouse.
{warehouse_name} should be replaced by the name of the warehouse you want to assign the product.
Possible attribute values are:
1 – the product is assigned to a warehouse
0 – the product is not assigned to a warehouse
1
msi_{warehouse_name}_qty
Allows you to specify a product quantity available at the particular warehouse.
{warehouse_name} should be replaced by the name of the warehouse you want to assign the product.
Only numeral values are allowed
123
msi_{warehouse_name}_status
Allows you to specify if the product can be purchased from the specified warehouse.
{warehouse_name} should be replaced by the name of the warehouse you want to assign the product.
Possible attribute values are:
1 – the product can be purchased from a warehouse
0 – the product cannot be purchased from a warehouse
1
When exporting products with multiple warehouses, the Improved Import & Export extension for Magento 2 automatically adds these three attributes to the exported file.
You can use multiple msi_{warehouse_name}, msi_{warehouse_name}_qty, msi_{warehouse_name}_status attributes to assign a product to multiple warehouses.
You can use a sample Master Table to see how these attributes can be used during the product import.
Below, you will find an example of how to export the MSI source from Magento 2 and how to import it back to Magento 2 with a new source included. The screenshots are taken from the Improved Import and Export extension which is different from the native Magento 2 import/export tool.
Please refer to the Improved Import and Export extension manual for explicit instructions on how to use every feature of the extension. The following chapter illustrates only a particular episode to provide an idea of how Improved Import works. It doesn’t cover every feature of the extension and doesn’t provide step-by-step instructions.
For reference, you can use the Firebear demo store in a separate browser tab.
How to Export Magento 2 MSI Stock Sources
You can export Magento 2 stock sources associated with the MSI module as follows:
Navigate to System > Improved Import/Export > Export jobs. At the export jobs grid, you will see all already created jobs.
Click the Add New Job button to create a new export job. You will be redirected to the job settings screen.
In the General Settings, specify the export job name and set a required frequency if you plan to schedule the job to run automatically. Scroll down to the Export Settings section.
Select ‘Stock Sources’ from the Entity drop-down and proceed to the Export Behavior.
Select a file format from the File Format drop-down and change separators if necessary.
Scroll down to specify the place to where you want to export the stock sources. For instance, you can specify the path to the file with the file name(don’t forget the file format). You can also add a current timestamp to the file name automatically.
Now click the big orange ‘Save & Run’ button at the top right corner of the screen to execute the export job and get a file with Magento 2 MSI stock sources.
How to Import Magento 2 MSI Stock Sources
First, let’s add another stock source to the file we have just exported. If you have been exporting stock sources to the CSV format the best way to edit it is to use Google Sheets. Excel and OpenOffice tend to adjust CSV files so it is better to use Google Sheets.
Editing Magento 2 MSI Stock Sources CSV
Your exported file with MSI stock sources looks as follows:
From the columns A source_code and B name, we can see two sources:
Default Source with the code default
Old Warehouse with the code old-warehouse
To add a new source you will need to another row with source information. Let’s complete row 4 with the following information:
New Warehouse (warehouse name)
US, Texas, postcode 12345 (address)
The contact person is John Doe, phone +123123123, email john@doe.com (contact)
Now we need to get this information into the table we have. Using the attribute table from this blog post, you can find all the required attributes to fill in this information as follows:
The only thing we have to come up with is the source_code attribute value for the new warehouse. Think of it the same as product SKU, this is a unique identifier of the stock source. All other information in row 4 is the same as we had written for the warehouse.
Let’s now import this very table we have edited.
Import Magento 2 MSI Stock Sources CSV
Now, follow these steps to import your MSI stock source CSV to Magento 2:
Proceed to System > Improved Import/Export > Import jobs and click the ‘Add New Job’ button to create a new import job.
In the general settings, specify the name and schedule if you want to import your Magento 2 MSI stock source regularly.
Scroll down to the Import Settings and select the entity you want to import – Stock Sources. Choose Stock Sources QTY to import the quantity update.
Proceed to the Import Behavior section and choose Add/Update, Replace, or Delete.
Scroll down to the Import Source section. Let’s suppose you have been editing the table in the Google Sheets, so you can paste its URL to the import stock sources to Magento 2.
Once the link is pasted, click the ‘Validate file’ button.
After the validation is complete click the ‘Save & Run’ button at the top right corner of the screen to import your MSI stock source CSV to Magento 2.
That’s it. Once the import is complete you can check your stock sources for the new source.
Please note that it is a simple case of running both import and export jobs. The Improved Import and Export extension has many more settings and offers additional flexibility. To get the full list of features, visit the extension product page or read the Improved Import and Export manual and our Guide List where we give explicit instructions on how to import any entity to Magento 2.
Magento 2 MSI FAQ
Below, we summarize the most important inventory management aspects of Magento 2 in the form of questions and answers.
What is MSI in Magento 2?
As we’ve already mentioned, Multi-Source Inventory (MSI) is a long-awaited feature that first appeared in Magento 2.3.0. The tool provides store merchants with the ability to control their single or multi-channel inventories and sale channels much more efficiently.
How do I turn off MSI in Magento 2?
If you don’t need the revolutionary functionality, it can be disabled with the help of the following command:
php bin/magento module:status | grep Magento_Inventory | grep -v List | grep -v None | grep -v -e ‘^$’ | xargs php bin/magento module:disable
php bin/magento s:upgrade
php bin/magento s:s:deploy -f
php bin/magento c:flush
php bin/magento i:reindex
How do I check inventory in Magento 2?
You can check the Magento 2 inventory only after configuring the corresponding feature. Go to your admin panel and open the ‘Stores’ menu. Choose the ‘Configuration’ option and expand the ‘Catalog’ tab. Here, you will see the ‘Inventory’ section. It provides the ability to manage the Stock Options and Product Stock Options settings.
Does Magento manage inventory?
With Magento Inventory Management, you get tools to manage your product inventory. No matter whether you run a single store or use multiple warehouses, stores, and pickup locations – the corresponding features will help you to maintain quantities for sales and handle shipments to complete orders. With MAgento 2 MSI, you get lots of extra capabilities that let you automate numerous daily tasks.
How do I change the default stock in Magento 2?
You should enable the corresponding functionality to be able to change the default stock in Magento 2:
– Go to your admin sidebar;
– Proceed to Stores -> Settings -> Configuration.
– Expand the Catalog section and choose Inventory.
– In the Product Stock Options section, set Manage Stock to Yes.
– Click Save Config when complete.
What is salable quantity?
Under Salable Quantity, we assume the sum of all available resources grouped in stocks. Note that the quantity of a product does not decrease when the customer places an order. It happens during the next stage.
How do I import Magento 2 MSI data automatically?
If you want to automate data transfers associated with your Magento 2 inventory, you need to install the Improved Import & Export Magento 2 extension and its MSI addon. Both tools let you leverage a cron scheduler. With this tool, you decide within which time frame to launch a corresponding import or export process automatically.
How do I import inventory data to Magento 2 from external systems?
If you need to transfer inventory data from external platforms but it doesn’t follow the Magento 2 requirements, there is no need to edit it manually. The Improved Import & Export Magento 2 module and its MSI add-on let you apply all the required changes right within your admin. The tools let you create mapping schemes, teaching Magento 2 how to react to unknown attributes. After that, the system replaces them automatically, importing inventory data from any external sources.
How do I import inventory data to Magento 2 via API?
If you need to establish an API connection between Magento 2 and any external platform, you can also use Improved Import & export along with its MSI add-on. The tools provide the ability to synchronize the two systems with the help of APIs. Thus, you establish a direct flow of inventory data.
Final Words
Although the Magento 2 MSI import and export processes are not available by default, you can easily get the missing functionality with the Improved Import & Export extension and its MSI Add-on. As you can see from our Magento 2 MSI user guide, the data transfers of both products linked to multiple stock sources and the sources themselves are not rocket science. Everyone can easily run the basic imports and exports. At the same time, you can always contact our support to get more information on how the Magento 2 MSI import and export work. Follow the link below for more information: