A Complete Guide on Magento 2 MSI – Multi Source Inventory
It’s the story of the past where Magento merchants had to rely on a single inventory system. The release of Magento 2.3.0 highlighted the Magento 2 MSI!
Dramatically improving the inventory management for the store merchants, it makes the control of inventory for single or multiple sources and sales channels possible! You can also get salable quantity information after product is saved in Magento 2 to maintain the well-structured inventory grid.
Magento 2 MSI helps the merchants to manage their inventory in more than one locations to accurately reflect their physical inventories without any 3rd party modules!
What is Magento 2 MSI?
The gist of Magento 2 Multi Source Inventory,
- Manage multiple warehouses
- Easy to manage the delivery of an order from a particular product source/stock location based on the shipping address.
- New Inventory reservation system in Open Source for high performant checkout
- API coverage for integration with the 3rd party inventory system
Advantages of Magento 2 MSI:
- Improved management of physical locations, i.e., Sources and its products.
- Efficiently increase sales and enhance customer experience with improved and increased inventory visibility.
- Efficient checkout
- Easily manage Drop Shipping
- Get low-level up-to-date inventory reports.
- For an order with multiple items, if a customer wants a particular item in advance, the merchant can organize a separate shipment from a different warehouse with faster delivery service.
- “Buy online and pick up in store” option to increase traffic and enhance the customer shopping experience.
Magento 2 MSI Operating Diagram
Implementing Multi Source Inventory in Magento 2:
Understand each of the following,
Source
A source is a place where the product is located. The physical location that can be a warehouse, brick and mortar store, distribution places, etc. of a product. A primary element of inventory, the source is added and then merchants can set the quantity of the available products per any single source.
Add a new source:
- Login to admin panel
- Go to Stores > Inventory > Sources
- Initially, you’ll see the default source which can’t be disabled. All the products are assigned to it by default in a Single source mode.
- To enable the multi-source mode, click “Add New Source“
- Enter the details like source name, code, description, latitude, and longitude, and enable it. Moreover, enter the contact and address information as shown below
- Save the configuration.
Stocks
The stocks are the virtual inventory of the products for sale to the sales channels (Magento websites) Each stock maps your sales channels with sources for available inventories and salable quantities. Depending on your store configuration, the stock may be assigned to one or more sales channels and sources.
Add new stock:
- Navigate to Stores > Inventory > Stocks.
- Initially, only the default stock is available which can’t be disabled. It is assigned to the default source and the website in a Single source mode.
- To enable the multi source mode, click “Add New Stock“
- Enter the name of the stock, link the source to the selected sales channel from here and assign the sources.
Product Inventory Configuration
Now, you can attach sources to products! Check how:
- Go to Catalog > Products
- Go to product edit.
- Under Sources, click the Assign Sources button.
- Select the sources to be assigned and click “Done“
- Once saved, it gets displayed as below:
- Easily determine the quantity, the stock status and modify the default admin threshold for the low stock notifications.
Salable Quantity
Unlike in previous versions of Magento 2, the quantity of a product does not decrease when the customer places an order. Instead, the salable quantity gets reduced. The quantity of the product decrease only after shipping is completed.
Search Selection Algorithm
The search selection algorithm calculates from which source order can be delivered in the most efficient way with the highest product margin. It uses data about customers, products, addresses, stock, sources, and order’s delivery location.
How To Disable MSI In Magento 2.3?
Run the below command:
1 |
bin/magento module:disable -f Magento_Inventory Magento_InventoryAdminUi Magento_InventoryApi Magento_InventoryBundleProduct Magento_InventoryBundleProductAdminUi Magento_InventoryCatalog Magento_InventorySales Magento_InventoryCatalogAdminUi Magento_InventoryCatalogApi Magento_InventoryCatalogSearch Magento_InventoryConfigurableProduct Magento_InventoryConfigurableProductAdminUi Magento_InventoryConfigurableProductIndexer Magento_InventoryConfiguration Magento_InventoryConfigurationApi Magento_InventoryGroupedProduct Magento_InventoryGroupedProductAdminUi Magento_InventoryGroupedProductIndexer Magento_InventoryImportExport Magento_InventoryIndexer Magento_InventoryLowQuantityNotification Magento_InventoryLowQuantityNotificationAdminUi Magento_InventoryLowQuantityNotificationApi Magento_InventoryMultiDimensionalIndexerApi Magento_InventoryProductAlert Magento_InventoryReservations Magento_InventoryReservationsApi Magento_InventoryCache Magento_InventorySalesAdminUi Magento_InventorySalesApi Magento_InventorySalesFrontendUi Magento_InventoryShipping Magento_InventorySourceDeductionApi Magento_InventorySourceSelection Magento_InventorySourceSelectionApi Magento_InventoryShippingAdminUi Magento_InventoryDistanceBasedSourceSelectionAdminUi Magento_InventoryDistanceBasedSourceSelectionApi Magento_InventoryElasticsearch Magento_InventoryExportStockApi Magento_InventoryReservationCli Magento_InventoryExportStock Magento_CatalogInventoryGraphQl Magento_InventorySetupFixtureGenerator |
Run the below upgrade commands:
1 2 3 |
bin/magento setup:upgrade bin/magento cache:flush bin/magento indexer:reindex |
That was all about multi source inventory in Magento 2.
Should you have any questions, feel free to leave a comment below.
Do not forget to flash 5 stars if it gave you a thorough understanding of Magento 2 MSI!
Thank you.
Get help in managing the products’ stock with automated inventory reporting in grid format.
Sanjay Jethva
Sanjay is the co-founder and CTO of Meetanshi with hands-on expertise with Magento since 2011. He specializes in complex development, integrations, extensions, and customizations. Sanjay is one the top 50 contributor to the Magento community and is recognized by Adobe.
His passion for Magento 2 and Shopify solutions has made him a trusted source for businesses seeking to optimize their online stores. He loves sharing technical solutions related to Magento 2 & Shopify.
10 Comments
Thank you for writing and sharing this informative article.
Hello Stacy,
We are glad to know that the above content helped you
Thank You
Hi Sanjay it’s a great article. Thanks. I have a question, Is this work only for website level or it can work store level also.
Hello Vijay,
Stock can be assign for website level in the MSI.
Thank You
Sanjay, great article. Thanks. I have a question, when I assign Multi Source Inventory to a product, is it ok to delete the default source or does the default source need to be associated to the product even though I am assigning two additional warehouses?
Yes, you can delete the default source and then you can assign the new source.
Hi Sir,
I have a magento webiste with mutliple stores, when I checked I cannot assign mutiple stocks to single website(sales channel). How can I assign stocks to multiple stores (englist,french,german etc)?
Hello,
You are looking for a solution in the wrong place. The above blog is for multi inventory while you are looking for the solution to assign in multi-store.
Thank you.
I am getting this error : NOTE: Assign sources is disabled for default stock
Hello,
https://drops.meetanshi.com/i/LZYqFL
Make sure the highlighted field in this screenshot is enabled.
Thanks.