13

I've seen this below that MSI can be disabled in Magento 2.3

https://devdocs.magento.com/extensions/inventory-management/#disable-inventory-management

It says to disable modules.

I can understand how this is done but it does not say which module or modules to disable

Does anyone know?

Or should I just amend the config file to reflect what it shows?

3
  • I think they list it already
    – fmsthird
    Commented May 2, 2019 at 10:26
  • If you don't add any sources and stocks other than default(which are already present), you should be able to continue as if MSI is not enabled.
    – coderGeek
    Commented Jul 18, 2019 at 14:04
  • What did you do in the end? I'm trying to patch MSI to make it faster. Initially I wanted to remove but after suggestions will cause problems I'm now trying to upgrade magento.stackexchange.com/questions/294378/… Commented Nov 2, 2019 at 21:59

7 Answers 7

28

There are 3 options:

Option 1 - Disable via module:disable

This command will list and disable all the MSI modules.

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

Option 2 - Remove from the core

You can remove all Magento MSI modules adding these lines in the composer.json:

"replace": {
    "magento/module-inventory": "*",
    "magento/module-inventory-admin-ui": "*",
    "magento/module-inventory-advanced-checkout": "*",
    "magento/module-inventory-api": "*",
    "magento/module-inventory-bundle-product": "*",
    "magento/module-inventory-bundle-product-admin-ui": "*",
    "magento/module-inventory-cache": "*",
    "magento/module-inventory-catalog": "*",
    "magento/module-inventory-catalog-admin-ui": "*",
    "magento/module-inventory-catalog-api": "*",
    "magento/module-inventory-catalog-search": "*",
    "magento/module-inventory-configurable-product": "*",
    "magento/module-inventory-configurable-product-admin-ui": "*",
    "magento/module-inventory-configurable-product-indexer": "*",
    "magento/module-inventory-configuration": "*",
    "magento/module-inventory-configuration-api": "*",
    "magento/module-inventory-distance-based-source-selection": "*",
    "magento/module-inventory-distance-based-source-selection-admin-ui": "*",
    "magento/module-inventory-distance-based-source-selection-api": "*",
    "magento/module-inventory-export-stock": "*",
    "magento/module-inventory-export-stock-api": "*",
    "magento/module-inventory-elasticsearch": "*",
    "magento/module-inventory-graph-ql": "*",
    "magento/module-inventory-grouped-product": "*",
    "magento/module-inventory-grouped-product-admin-ui": "*",
    "magento/module-inventory-grouped-product-indexer": "*",
    "magento/module-inventory-import-export": "*",
    "magento/module-inventory-indexer": "*",
    "magento/module-inventory-low-quantity-notification": "*",
    "magento/module-inventory-low-quantity-notification-admin-ui": "*",
    "magento/module-inventory-low-quantity-notification-api": "*",
    "magento/module-inventory-multi-dimensional-indexer-api": "*",
    "magento/module-inventory-product-alert": "*",
    "magento/module-inventory-requisition-list": "*",
    "magento/module-inventory-reservations": "*",
    "magento/module-inventory-reservations-api": "*",
    "magento/module-inventory-reservation-cli": "*",
    "magento/module-inventory-sales": "*",
    "magento/module-inventory-sales-admin-ui": "*",
    "magento/module-inventory-sales-api": "*",
    "magento/module-inventory-sales-frontend-ui": "*",
    "magento/module-inventory-setup-fixture-generator": "*",
    "magento/module-inventory-shipping": "*",
    "magento/module-inventory-shipping-admin-ui": "*",
    "magento/module-inventory-source-deduction-api": "*",
    "magento/module-inventory-source-selection": "*",
    "magento/module-inventory-source-selection-api": "*"
  }

Option 3 - Remove from the core using Yireo module

You can add this module which does the same.

composer require yireo/magento2-replace-inventory:2.3.*  
4
  • 8
    And magento/module-inventory-advanced-checkout, magento/module-inventory-requisition-list at least in M 2.3.4
    – BartZalas
    Commented Mar 12, 2020 at 9:44
  • How to install MSI modules in magento 2.3.4 (Magento installed by GitHub Installation)
    – zus
    Commented Nov 10, 2020 at 9:30
  • @zus, you need to install it via the MSI repo in the URL: github.com/magento/inventory Commented Nov 10, 2020 at 16:56
  • 1
    I like option 2 the most. Didn't even think of that. Thanks!
    – Logic4Life
    Commented Mar 3, 2021 at 17:32
21

To disable the MSI it's best to do it from command line by running this command in the magento root:

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

After that of course run the upgrade commands:

php bin/magento setup:upgrade
php bin/magento cache:flush
php bin/magento indexer:reindex
3
  • 2
    replacing the modules in composer.json is even better so they do not get installed. Commented Oct 9, 2019 at 12:16
  • 1
    @AnnaVölkl well better keep it, in case someday you are gonna need it
    – jojo
    Commented Feb 12, 2020 at 8:04
  • 2
    You can always reinstall them later if needed Commented Feb 17, 2020 at 13:29
1

Disable MSI in Magento 2.4.4 or 2.4.5 use below command

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 Magento_InventoryCatalogSearchBundleProduct  Magento_InventoryCatalogSearchConfigurableProduct Magento_InventoryQuoteGraphQl

Then run:

php bin/magento s:up
php bin/magento s:d:c
php bin/magento indexer:reindex
php bin/magento c:f
0

You can disable the MSI using the command line, by disabling its separate modules. The modules list to disable is dependent on your exact Magento version.

Here is a good tutorial for that - https://www.mexbs.com/magento-blog/disabling-the-magento-msi/

1
0

@igor, for some people, the main reason for not using MSI is because they don't have multiple sources/stocks and the saleable quantity is proving to be more of a problem than something useful. Speaking from experience, the reliance on creating a shipping to affect the quantity is not very useful to many store owners considering their setup is simple. Most store owners are baffled by the discrepancy between "qty" and "saleable qty". They do not understand, nor want the added complexity of "stock reservation". Imho, MSI is great when indeed it is called for, when a store is big enough to have multiple sources/stocks and then reservations and saleable quantities make sense. For single source/stock stores the old way, pre 2.3 is sufficient. My 2 cents worth... :)

0

I believe this following CLI command can disable all of the MSI modules:

bin/magento module:disable $(php -f bin/magento module:status | grep "^Magento_Inventory")

Then, run upgrade, compile, deploy and reindexing commands:

php bin/magento setup:upgrade
rm -rf var/di generated/*
php bin/magento setup:di:compile

rm -rf pub/static/*/*; rm -rf var/*/*;
php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush
php bin/magento indexer:reindex

Isn't easier and safer? Please be careful about "^Magento_Inventory". Instead, if you use "Inventory" only, it will disable a few non MSI modules!

-3

why do you need to disable MSI? MSI is the new Inventory for Magento 2, do you want to proceed without Inventory in your eCommerce store?

The possibility of disabling MSI is preserved to make Merchants who use previous Magento versions and have Inventory customizations to quickly upgrade to Magento 2.3 without a need to refactor the Inventory.

If you have from the scratch Magento 2.3.* installation disabling MSI is most probably is not the thing you need

9
  • 4
    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.
    – Domeglic
    Commented May 22, 2019 at 7:42
  • @Domeglic what do you mean by does not handle backorders correctly? MSI supports backorders functionality. Even broader than before, since MSI you can use Backorder + negative Min Quantity to specify a limit for backordered products - github.com/magento-engcom/msi/wiki/Configure-MSI-backorders Commented May 23, 2019 at 17:07
  • @Domeglic external stock keeping systems could be integrated with MSI, using dedicated MSI APIs, like \Magento\InventorySalesApi\Api\PlaceReservationsForSalesEventInterface and this is a recommended way of making this kind of integration. Moreover, Magento itself relies on this API building an integration MSI and MOM (which you can consider as external stock keeping system) Commented May 23, 2019 at 17:10
  • The question is how to disable msi, not why to. In my case it doesn't work with our existing ERP and questioning why does not answer the question. Commented Jan 20, 2020 at 11:31
  • the question is always why, as MSI is Magento Inventory since 2.3.0 so, not changing your existing integration (which relies on legacy Magento Inventory) with ERP now - you only postponing these inevitable changes, accumulating the technical debt. From what I saw it was much easier and correct to adapt Magento - ERP Inventory synchronization to support reservations than to disable msi Commented Jan 21, 2020 at 1:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.