Inventory Management (provided by the Magento Inventory (was MSI) project) is available with Magento Open Source, Magento Commerce, and Magento Commerce Cloud 2.3.x. Merchants can use Inventory Management to manage inventory for all product types in a single warehouse and across complex shipping networks. Manage these locations as sources, tracking on-hand inventory quantities per product. Stocks connect these sources with sales channels (websites) to provide an accurate salable quantity, calculating available on-hand products, pending orders (reservations), and configured thresholds. Inventory Management also updates order and shipment options, giving you full control over your inventory and deductions at the source level.
Inventory Management is a Magento Community Engineering special project open to contributors. To take part and contribute, see the MSI GitHub repository and wiki to get started. Join us in our Slack channel (self signup) to discuss the project.
See the following documentation:
- Inventory Management overview for developer documentation
- Managing Inventory for merchant information and instructions
- Install Inventory Management for module maintenance, updates, and upgrades
- Upcoming releases for supported and compatible releases
The release notes include:
- New features
- Fixes and improvements
- Known issues
Inventory Management 1.2.0 (module version:
magento/inventory-metapackage = 1.2.0) is supported with version 2.4.0 of Magento Open Source, Magento Commerce, and Magento Commerce Cloud.
In-store delivery method. Added a new option for users to select a source to be used as a pickup location during checkout. See In-store Delivery.
Bundle product support for multi source mode. Inventory supports all product types with multiple sources.
Asynchronous stock re-indexing. Added the ability to asynchronously re-index stock and improved the performance of several critical scenarios.
Bulk interfaces. Introduced new bulk interfaces for salability check:
Increased test coverage. New functionality covered with automated tests, extended coverage for discovered and fixed issues.
Numerous bug fixes to resolve issues with source assignment, scalable environment feature support, and compatibility with PHP 7.4, MySQL 8, and PHPUNIT 9.
Known issue. The absence of the
object_idfield in the reservations metadata is preventing the
inventory_cleanup_reservationscron job from working properly. This issue was introduced in magento/inventory#3046.
Workaround: Execute the following MySQL queries to manually cleanup reservations:
SELECT GROUP_CONCAT(reservation_id) FROM inventory_reservation GROUP BY stock_id, sku HAVING SUM(quantity) = 0; DELETE FROM inventory_reservation where reservation_id IN (result_of_the_first_query);
Inventory Management 1.1.5 (module version:
inventory-composer-metapackage = 1.1.5) is supported with version 2.3.5 and compatible with version 2.3.4, 2.3.3, 2.3.2, 2.3.1, and 2.3.0 of Magento Open Source, Magento Commerce, and Magento Commerce Cloud.
Update inventory once product SKU is changed. Introduced a new configuration setting to switch to the new behavior: “Synchronize with Catalog”.
Bug fixes to prevent product oversell, “Out of stock” products visibility on the storefront, numerous fixes for scalable environment support and user interface improvements.
Functional tests. Introduced new functional tests to eliminate the test coverage gap. Fixed several issues to make tests more stable and reliable).
Inventory Management 1.1.4 (module version:
inventory-composer-metapackage = 1.1.4) is supported with version 2.3.4 and compatible with version 2.3.3, 2.3.2, 2.3.1, and 2.3.0 of Magento Open Source, Magento Commerce, and Magento Commerce Cloud.
Increased performance. Introduced bunching logic for Inventory Reservations CLI command to reduce memory usage and avoid cases when the process is stuck without any response.
Increased test coverage. Introduced many new Functional tests. Almost all manual Inventory scenarios are covered with automated tests.
Numerous bug fixes targeted to resolve issues with credit memos, grouped products, source and stock mass actions.
Inventory Management 1.1.3 (module version:
inventory-composer-metapackage = 1.1.3) is supported with version 2.3.3 and compatible with version 2.3.2, 2.3.1, and 2.3.0 of Magento Open Source, Magento Commerce, and Magento Commerce Cloud.
- Better integration with Magento Commerce and Magento Commerce for B2B features. Inventory Management now works correctly with the following features for websites using non-default inventory sources and stocks:
- Order by SKU (Magento Commerce)
- Quick order (Magento Commerce for B2B)
- Requisition lists (Magento Commerce for B2B)
Increased performance. Storefront catalog browsing performance has significantly improved for websites running the default inventory stock and source.
- Increased test coverage. The automated Functional and Integration test coverage has increased significantly.
Inventory Management 1.1.2 (module version:
inventory-composer-metapackage = 1.1.2) is supported with version 2.3.2 and compatible with version 2.3.1, and 2.3.0 of Magento Open Source, Magento Commerce, and Magento Commerce Cloud.
Added a Bulk Partial Stock Transfer Endpoint - Current bulk transfer endpoints move all assigned quantity from an origin to a destination source. The new
/rest/V1/inventory/bulk-partial-source-transferendpoint allows merchants to transfer partial stock from source-to-source as a bulk operation. Enter a request to the endpoint with the
destination_source_codeto transfer a specific amount of quantity. Transfers verify the source is assigned to the
sku, enough quantity exists to transfer, etc. See Inventory Bulk Actions.
Added Reservation CLI - New commands give you options to detect and resolve reservation inconsistencies. As orders submit and change status, Inventory Management generates initial reservations and updates through compensation reservations. These commands return a list of detected inconsistencies by Order ID, SKU, and Stock ID and create reservations to resolve. See Inventory CLI reference.
Performance improvements for sources and SSA options - Sorting and selecting sources during shipment caused performance degradation for stocks with high numbers of sources. This release provides significant performance improvements to list and sort available sources when reviewing and selecting SSA options in shipments.
Added GraphQL support for Inventory Management - This release installs a new
magento/module-inventory-graph-qlmodule. The GraphQL Products endpoint now includes the
stock_statusattributes for Inventory Management support.
Simplified UI for Assigned Sources - The Assigned Sources table in product pages has simplified content for easier updates and increased performance when displaying many sources. All sources list by source name (hover over for
Export Aggregated Stock Service - This release provides a new export aggregated stock service (retaining reservations in the system) to support external Sales Channels like Amazon, eBay, Google Shopping ads, etc.
source_codeto the response for the GET
Resolved issue to correctly clear reservations and update product quantities after issuing a credit memo for an unshipped order. When you select the option to
Resolved issue to correctly save quantity for configurable product children when entering quantities during product creation.
New modules for Inventory Management 1.1.2 Beta include:
1 2 3 4 5 6 'Magento_InventoryGraphQl' => 1, 'Magento_InventoryReservations' => 1, 'Magento_InventoryReservationsApi' => 1, 'Magento_InventoryReservationCli' => 1, 'Magento_InventoryExportStock' => 0, 'Magento_InventoryExportStockApi' => 0,
Inventory Management 1.1.0 (module version:
inventory-composer-metapackage = 1.1.0) is supported and compatible with version 2.3.0 of Magento Open Source, Magento Commerce, and Magento Commerce Cloud. Inventory Management 1.1.1 released only as a package name update, supported with version 2.3.1 and compatible with version 2.3.0 of Magento Open Source, Magento Commerce, and Magento Commerce Cloud.
Distance Priority Algorithm — The Distance Priority Algorithm is a new, out-of-the-box Source Selection Algorithm for distance-based shipping recommendations. This algorithm compares the location of the shipping destination address with source locations to determine the closest source to fulfill shipments. The distance may be determined by either physical distance or the time spent traveling from one location to another, using imported geocode location data or Google directions (driving, walking, or bicycling). See Configuring Distance Priority Algorithm in the Magento Admin User Guide.
Expanded source quantity list — Merchants with a high number of sources can easily hover and view all sources per product through the Product Grid. Each product displays a minimum of five sources and matching quantities. When hovering over the sources, you can scroll through the entire list of sources and current quantities. See Managing Inventory Quantities.
Added support for Elasticsearch for single and multi sources modes — You can now configure and use Elasticsearch with custom stocks. This resolves a known issue in version 2.3.0 of Magento Open Source and Magento Commerce. See Set up Elasticsearch service for installation information and Elasticsearch to configure through the Admin.
Resolved performance issues with Default Stock to drastically increase performance with numerous operations. Improvements increase performance for Single Source mode, Transfer Inventory to Source, Storefront Category pages, and Salable Quantity calculations. This resolves a known issue requiring custom stocks creation for Single Source merchants in version 2.3.0 of Magento Open Source and Magento Commerce.
- Resolved issues with Out of Stock status and bulk Inventory Transfer to Stock for configurable and grouped products. Selecting the parent products and performing bulk actions does not affect the product status. If the parent product was In Stock, it remains In Stock.
- Known issue with Magento v2.3.1 - Asynchronous migration of data between sources will encounter issues due to changes in Asynchronous APIs with topic names reflecting PHP class and method names. We recommend using synchronous operations, setting Run asynchronously to “No”. To configure, see Configure Global Options in the Magento User Guide.