Skip to content
Home » News » How to Disable MSI in Magento 2 (Step-by-Step)

How to Disable MSI in Magento 2 (Step-by-Step)

Magento 2 introduced Multi-Source Inventory (MSI) in version 2.3 to help store owners manage inventory across multiple locations like warehouses or stores. While beneficial for big businesses, MSI can feel overwhelming and even unnecessary if one is only running a single inventory source.

If you don’t need multiple sources and would rather simplify your Magento 2 setup, you can disable MSI entirely.  Learn how to do that below.

 What is MSI?

MSI stands for Multi-Source Inventory. MSI lets you stock from more than one location (sources), but if you’re shipping from only one place, MSI might just complicate things.

 Why You Might Want to Disable MSI

You might consider turning MSI off if:

  • You are dealing with a single stock location or warehouse
  • Products are not showing up correctly
  • You want to get back to Magento’s traditional single-source inventory system
  • You want to simplify your catalog and stock management

Note: Disabling MSI is not officially recommended by Adobe for production environments. Proceed with caution, and make sure you test changes in a development environment first.

 Before You Start

Always back up your files and database before proceeding with any changes. Disabling MSI requires disabling several Magento modules, which can affect store functionality if not done properly.

Disable MSI Modules in Magento 2

Version-Specific Commands

🔹 Magento 2.3.0 to 2.3.2

If you’re using Magento 2.3.0–2.3.2, you can use the wildcard approach:

bin/magento module:disable Magento_Inventory* Magento_CatalogInventory

🔹 Magento 2.3.3 and Later (including 2.4.x)

For versions 2.3.3 and newer, modules are more fragmented. You need to disable them explicitly:

bin/magento module:disable \
Magento_Inventory \

Magento_InventoryAdminUi \

Magento_InventoryApi \

Magento_InventoryBundleProduct \

Magento_InventoryBundleProductAdminUi \

Magento_InventoryCatalog \

Magento_InventorySales \

Magento_InventoryConfigurableProduct \

Magento_InventoryConfigurableProductAdminUi \

Magento_InventoryShipping \

Magento_InventorySalesApi \

Magento_InventoryIndexer \

Magento_InventoryLowQuantityNotification \

Magento_InventoryReservations \

Magento_InventoryReservationCli \

Magento_InventoryExportStockApi \

Magento_InventoryDistanceBasedSourceSelection \

Magento_InventoryDistanceBasedSourceSelectionAdminUi \

Magento_InventoryInStorePickupShippingApi \

Magento_CatalogInventory

 Alternative Bulk Disable Command

You can also use this command to automatically disable all active MSI-related modules:

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

This command dynamically finds all enabled MSI modules and disables them. Handy if you don’t want to type each one manually.

Optional: Remove MSI Code via Composer (Advanced)

If you want to completely remove MSI from your project (instead of just disabling it), you can also modify your composer.json file.

Steps:

  1. Open your composer.json file.
  2. Add the following to the replace section:
"replace": {
"magento/module-inventory": "*",

  "magento/module-inventory-admin-ui": "*",

  "magento/module-inventory-api": "*",

  "magento/module-inventory-bundle-product": "*",

  "magento/module-inventory-bundle-product-admin-ui": "*",

  "magento/module-inventory-catalog": "*",

  "magento/module-inventory-catalog-admin-ui": "*",

  "magento/module-inventory-catalog-api": "*",

  "magento/module-inventory-configurable-product": "*",

  "magento/module-inventory-configurable-product-admin-ui": "*",

  "magento/module-inventory-configuration-api": "*",

  "magento/module-inventory-distance-based-source-selection": "*",

  "magento/module-inventory-export-stock": "*",

  "magento/module-inventory-indexer": "*",

  "magento/module-inventory-low-quantity-notification": "*",

  "magento/module-inventory-multi-dimensional-indexer-api": "*",

  "magento/module-inventory-product-alert": "*",

  "magento/module-inventory-reservation-cli": "*",

  "magento/module-inventory-reservations": "*",

  "magento/module-inventory-sales": "*",

  "magento/module-inventory-sales-admin-ui": "*",

  "magento/module-inventory-sales-api": "*",

  "magento/module-inventory-shipping": "*",

  "magento/module-inventory-source-deduction-api": "*",

  "magento/module-inventory-source-selection": "*"

}

  1. Then run:
composer update
bin/magento setup:upgrade

This method tells Composer to treat these modules as removed, which is helpful when MSI causes compatibility issues with your setup.

Post-Disable Steps

After disabling the modules, run:

bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush

 Last Step: Test Your Store

Go to your Magento Admin and:

  • Make sure products are still visible
  • Check if inventory settings are working correctly
  • Place a test order to confirm everything functions as it should

 Conclusion

Turning off MSI is an excellent option for retailers who do not require advanced multi-location inventory management. It simplifies the handling of stock and can even resolve problems with product visibility or order processing.

Keep in mind, though:

  • Always back up first
  • Use the correct disable command based on your Magento version
  • Optionally remove MSI from composer.json
  • Test everything after making the changes

Author

Leave a Reply

Your email address will not be published. Required fields are marked *