How To Disable Magento MSI
With the release of Magento 2.3.0, the Multi-Source Inventory was introduced that helps store merchants to accurately manage their inventory in more than one location and reflect their physical inventories without any 3rd party modules! The sources can either be physical or virtual such as DropShipping sources.
Such powerful inventory management in Magento 2 makes it easy to improve checkout, manage drop shipping, and faster delivery services.
There are many more advantages of Magento 2 MSI that we saw earlier. However, there are a few cases where the MSI feature has disappointed the merchants!
Magento MSI has its own limitation – the inability to assign different sources on the different store views of the same product.
Magento MSI does not allow to:
- different sources per product store view
- cannot be implemented in multi-store and multi-website Magento setup.
Additionally, a merchant quoted, “Reasons to not use MSI – doesn’t handle backorders correctly, has no option to decrease stock when order is placed (only when shipped). Some shops use outside stock keeping systems as well”
For stores with a single warehouse and a lesser number of products, MSI can bring unnecessary complexity.
Hence the best way out is to disable Magento MSI!
The post gives the solution to disable the MSI in Magento 2.3.
Method to disable Magento MSI:
Run the below command in your SSH to disable MSI in Magento 2.3.0:
1 |
php 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 |
Run the below command in your SSH to disable MSI in Magento 2.3.1:
1 |
php 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_InventoryDistanceBasedSourceSelection Magento_InventoryDistanceBasedSourceSelectionAdminUi Magento_InventoryDistanceBasedSourceSelectionApi Magento_InventoryElasticsearch 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_InventorySetupFixtureGenerator Magento_InventoryShipping Magento_InventorySourceDeductionApi Magento_InventorySourceSelection Magento_InventorySourceSelectionApi Magento_InventoryShippingAdminUi |
Run the below command in your SSH to disable MSI in Magento 2.3.2:
1 |
php 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 command in your SSH to disable MSI in Magento 2.3.3, Magento 2.3.4, and Magento 2.3.5:
1 |
php 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 Magento_InventoryAdvancedCheckout Magento_InventoryDistanceBasedSourceSelection Magento_InventoryRequisitionList Magento_InventoryGraphQl |
Run the below command in your SSH to disable MSI in Magento 2.4:
1 |
php 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 Magento_InventoryAdvancedCheckout Magento_InventoryDistanceBasedSourceSelection Magento_InventoryRequisitionList Magento_InventoryGraphQl Magento_InventoryBundleImportExport Magento_InventoryBundleProductIndexer Magento_InventoryInStorePickupApi Magento_InventoryInStorePickupAdminUi Magento_InventoryInStorePickup Magento_InventoryInStorePickupGraphQl Magento_InventoryInStorePickupShippingApi Magento_InventoryInStorePickupQuoteGraphQl Magento_InventoryInStorePickupSales Magento_InventoryInStorePickupSalesApi Magento_InventoryInStorePickupQuote Magento_InventoryInStorePickupShipping Magento_InventoryInStorePickupShippingAdminUi Magento_InventoryInStorePickupFrontend Magento_InventoryInStorePickupMultishipping Magento_InventoryInStorePickupSalesAdminUi Magento_InventoryInStorePickupWebapiExtension Magento_InventoryCatalogFrontendUi Magento_InventoryConfigurableProductFrontendUi Magento_InventorySwatchesFrontendUi Magento_InventoryVisualMerchandiser Magento_InventoryWishlist |
Run the below commands:
1 2 3 4 5 |
php bin/magento setup:upgrade php bin/magento cache:flush php bin/magento indexer:reindex |
Check your Magento 2 mode.
If you are on a developer or a default mode, run the below command:
1 |
php bin/magento setup:static-content:deploy -f |
If you are on a production mode, run the below commands:
1 2 3 |
php bin/magento setup:di:compile php bin/magento setup:static-content:deploy |
That’s it.
If you face an error stating “Your modules might not work properly”, do not worry. It is due to the dependencies of the modules but it won’t cause an issue in the core Magento modules.
Magento 2 MSI can be complex if you are a beginner. But do not worry! Leave your doubts in the Comments section below regarding Magento MSI. I’d be more than happy to help you out.
Also, do share the solution with fellow Magento developers via social media.
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.
18 Comments
How to disable Magento MSI on 2.4.6 version ?
Hey Andreas,
You can use the command given for Magento 2.4 in the following screenshot,
https://prnt.sc/ANWJZPUX1a_Q
after running commands:Magento2.4.1
Error: Cannot instantiate interface Magento\InventorySalesApi\Api\IsProductSalableInterface in
Thank You.
Kiran
Hello Kiran,
The mentioned issue is not regenerating from our end.
Please check your applied code once again.
Thank You
Hi Sanjay,
In 2.4.2
php7.4 bin/magento module:status | grep Magento_Inventory | grep -v List | grep -v None | grep -v -e ‘^$’ | xargs php7.4 bin/magento module:disable
Unable to change status of modules because of the following constraints:
Cannot disable Magento_InventoryApi because modules depend on it:
Magento_InventoryRequisitionList: Magento_InventoryRequisitionList->Magento_InventorySalesApi->Magento_InventoryApi
Cannot disable Magento_InventoryConfigurationApi because modules depend on it:
Magento_InventoryRequisitionList: Magento_InventoryRequisitionList->Magento_InventoryConfigurationApi
Cannot disable Magento_InventorySalesApi because modules depend on it:
Magento_InventoryRequisitionList: Magento_InventoryRequisitionList->Magento_InventorySalesApi
Hello Fabrice,
You can also disable it from app/etc/config.php
Thank You
Hi Sanjay,
I have faced an issue on my customer website that a few products can not be added into a cart. An error message I got is ” There are no source items with the in-stock status”. is it something related to this article.
Thanks in advance
Hello Kevin,
It’s an error of MSI. The source is not assigned.
Thank You
Hi,
I tried to do it for version 2.4.2 and recieved this error message while reindexing:
Design Config Grid index has been rebuilt successfully in 00:00:00
Customer Grid index has been rebuilt successfully in 00:00:02
exception: Category Products index is locked by another reindex process. Skipping.
Product Categories index has been rebuilt successfully in 00:00:17
Catalog Rule Product index has been rebuilt successfully in 00:00:00
Product EAV index has been rebuilt successfully in 00:00:00
Stock index has been rebuilt successfully in 00:00:00
Product Price index has been rebuilt successfully in 00:00:00
Catalog Product Rule index has been rebuilt successfully in 00:00:00
Catalog Search index PHP Fatal error: Uncaught Error: Cannot instantiate interface Magento\InventorySalesApi\Api\IsProductSalableInterface in /home/576869.cloudwaysapps.com/qnkksxpamd/public_html/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:50
Stack trace:
#0 /home/576869.cloudwaysapps.com/qnkksxpamd/public_html/vendor/magento/framework/ObjectManager/ObjectManager.php(70): Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create()
#1 /home/576869.cloudwaysapps.com/qnkksxpamd/public_html/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(170): Magento\Framework\ObjectManager\ObjectManager->get()
#2 /home/576869.cloudwaysapps.com/qnkksxpamd/public_html/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(276): Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument()
#3 /home/576869.cloudwaysapps.com/qnkksxpamd/public_html/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php(239): Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument in /home/576869.cloudwaysapps.com/qnkksxpamd/public_html/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php on line 50
Hello Gabriel,
It’s properly working on our end.
Check out the screen shot : https://drops.meetanshi.com/cRgqYB
Thank You.
Getting below exception on the backend category page. Disabled inventory on 2.4.1
Cannot instantiate interface Magento\InventorySalesApi\Api\StockResolverInterface
Exception in /var/www/src/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:121
Hello Babar,
Please run all the commands. You are good to go.
Thank you.
Thank you very much!!
Welcome 🙂
Hi there. I get the following error message after running your commands:
Fatal error: Uncaught Error: Cannot instantiate interface Magento…
This is happening while trying to enter the products section in our backend.
Best, Peter
Hello Peter,
Please give the full error message for me to help you.
Thank you.
Do you have a command to disable in 2.4 ? Thanks in advance!
Hey, please check the updated post with the command to disable Magento MSI in the latest version.
Thanks.