-
Notifications
You must be signed in to change notification settings - Fork 248
Overview
This guide provides merchant information on Magento Multi Source Inventory (MSI) features and project. This information is in-progress and supports all MSI development.
Feature Names: MSI will replace and enhance Inventory Management in Magento for single and multi source merchants. In the final Magento User Guide v2.3, these features will be documented under Managing Inventory and other related pages.
The Magento Multi Source Inventory (MSI) extension enhances inventory management, enabling you to manage inventory for a single or across multiple locations and sales channels with concurrent checkout protection and shipment matching algorithms. MSI features and algorithms best support single and multisite configurations with multiple inventory sources fulfilling orders. If you have a single store and website with one source, you may not need to enable and use MSI immediately. As your business expands and changes, add more stock, sources, update inventory, and extend to new sales channels as you need.
MSI features help all merchants regardless of size, and scales as your business grows. It supports all product types, simple to bundle products, including downloads and virtual products. Manage your inventory regardless of warehouse location, type of product or service, or sales channel. Automatically ship from multiple warehouses, brick-and-mortar stores, distribution centers, and drop shipping to complete orders with a focus on balanced inventory, shipping costs, and more.
Inventory Management in 2.3 gives you the ability to:
-
Support single sourcing and multi-sourcing of products
Note: Multi-sourcing supported for all products except bundle.
-
Create sources with specific locations (like warehouses and storefronts) and available shipping options
-
Create stock to aggregate a virtual inventory from all or some sources
-
Associate stock to sales channels (websites and extended options) with prioritized sources
-
Override and rerun source matching for order shipments
-
Ship partial and distributed shipments from multiple locations
-
Support orders for multiaddress shipping
-
Track, update, and transfer inventory quantities per source
-
Receive notifications for low available/salable inventory, out-of-stock, and backorders
-
Extend algorithms for customized source and order matching per sales channel
-
Integrate with 3rd party inventory systems, warehouses, and order management using MSI APIs
At the heart of MSI are advanced algorithms and features to ensure smooth stock tracking and order fulfillment across your multiples sources and websites. With concurrent checkout, MSI tracks and reserves sales, preventing concurrent sales from overselling your available stock. The source selection algorithm manages the reservation of stock, prioritizes the fulfillment across your sources using warehouse stock prior to store inventory, and finally deducts inventory for a source when creating a shipment.
This guide introduces these concepts, examines the algorithms, and details steps to get started with Inventory Management for Single Source and Multi Source merchants.
For a detailed view into MSI/Inventory Management features and processes, see MSI features and processes. The following diagram and terms provide a quick introduction.
Multi Source Inventory management in Magento |
-
Sources are the physical locations where product inventory is managed and shipped for order fulfillment, or where services are available. These locations can include warehouses, brick-and-mortar stores, distribution centers, and drop shippers. MSI leverages the quantities and salable quantities per stock and manages inventory amounts automatically for managed products and orders. If you have 1 source, you are considered in Single Source mode. If you have multiple sources, you are considered in Multi Source mode.
-
Stock represents a virtual, aggregated inventory of products for sources of your sales channels (currently these are websites). Each stock maps your sales channels with sources for available inventories and salable quantities.
-
Reservations track stock requests for the entire shopping process: adding products to cart, completing checkout, and managing refunds. For available inventory and stock, reservations reserve inventory orders through the checkout process, deducting from quantities at invoice and shipment.
-
Sales Channels represents entities selling your inventory. MSI includes Magento store websites out-of-the-box and supports extensions for additional channels (for example, B2B customers groups and store views). Sales Channels can only be associated to one Stock.
-
Salable Quantity provides the calculated virtual inventory of products, taking into account configured thresholds. Stocks determine the final salable amount available across all assigned sources for associated sales channels. This differs from Quantity which is the total number of products at the source regardless of thresholds.
-
Quantity per Source replaces the Quantity column if you add multiple sources. This column displays the total number of products available per source regardless of thresholds. If you only have the Default Source configured, the Quantity column displays.
-
Source Selection Algorithm analyzes and determines the best match for sources and shipping using the priority order of sources configured in a stock. During order shipment, the algorithm provides a recommended list of sources, available quantities, and amounts to deduct to ship.
For large catalogs, assigning inventory per source through the Magento Admin may be overwhelming. MSI supports assigning inventory amounts using the Mass Action Transfer utility and Export - Import features using .csv
files.
MSI has an advanced inventory Export - Import mechanism to export and import data from different sources independently, without affecting other existing data. For example, if you have sources in Los Angeles, Austin, and New York, you can export or import data for the Austin warehouse without affecting other sources.
Mass actions also support bulk operations to assign sources, unassign sources, and mass transfer all inventory between sources.
MSI adds user role resources (ACLs) for allowing or restricting Admin user actions for sources and stocks. Find these roles under Stores > Inventory when editing custom roles per user account.
MSI User Role Resources - ACLs |
MSI provides APIs for moving stock, creating reports, synchronizing with external Enterprise Resource Planning (ERP) systems, and so on. See our MSI tutorials at DevDocs:
- Order Processing with Multi Source Inventory
- Managing sources
- Managing stocks
- Link and unlink stocks and sources
- Manage source items
- Perform bulk actions
MSI is supported in Magento Open Source v2.3.0-beta2 and Magento Commerce v2.3.0-beta2. You can install a fresh Magento version or upgrade to v2.3.0-beta2 and install the MSI extension. The final release of GA v2.3 will include MSI as part of the install, without requiring additional steps.
As an extension, MSI may have updates and releases apart from Magento Open Source and Magento Commerce.
For a fresh install, see the Magento DevDocs Installation Guide.
This information covers installs for 2.3.0 Beta.
You can install MSI Beta on top of your Magento 2.3.0-beta2. For a fresh installation, MSI modules will preserve default behavior and will be installed and enabled if unless configured explicitly.
We provide the Magento Inventory Composer Installer to install the stand-alone Magento Inventory Metapackage.
Add the following lines to your composer.json
:
"require": {
"magento/product-community-edition": "2.3.0-beta2",
"magento/inventory-composer-metapackage": "1.0.0-beta2"
},
Note for Magento Commerce 2.3.0-alpha/beta: The ScalableInventory
module is no longer included with Magento Commerce 2.3. MSI replaces this module. No additional changes are required for a fresh install.
For full installation information for 2.3, see the DevDocs installation guide.
Important for Magento Commerce 2.3.0-beta: Prior to upgrading to beta, you must disable the ScalableInventory
module in composer.json
. MSI replaces this module.
When upgrading an existing Magento installation, MSI modules will be disabled by default. To enable the MSI modules, use the magento module:enable
command. For more information please reference to Magento Developers Documentation.
The intent for final released MSI is to seamlessly install with v2.3. If you are upgrading from Magento 2 v2.3.0-alpha and MSI 1.0.0-beta, you may encounter additional modules during the upgrade.
When upgrading from Magento 2.3-alpha to 2.3.0-beta and MSI 1.0.0-beta to 1.0.0-beta2, you will need the following modules added to config.php
:
'Magento_InventorySourceDeductionApi' => 0,
'Magento_InventoryGroupedProductIndexer' => 0,
'Magento_InventoryGroupedProductAdminUi' => 0,
'Magento_InventoryBundleProductAdminUi' => 0
You may need to actively enable these modules. We are tracking this situation in this GitHub issue. More information will be provided.
With MSI installed, you can get started! See Get Started with MSI for initial changes, migration, and recommended steps for Single and Multi Source merchants.
Multi-Source Inventory developed by Magento 2 Community
- Technical Vision. Catalog Inventory
- Installation Guide
- List of Inventory APIs and their legacy analogs
- MSI Roadmap
- Known Issues in Order Lifecycle
- MSI User Guide
- 2.3 LIVE User Guide
- MSI Release Notes and Installation
- Overview
- Get Started with MSI
- MSI features and processes
- Global and Product Settings
- Configure Source Selection Algorithm
- Create Sources
- Create Stock
- Assign Inventory and Product Notifications
- Configure MSI backorders
- MSI Import and Export Product Data
- Mass Action Tool
- Shipment and Order Management
- CLI reference
- Reports and MSI
- MSI FAQs
- DevDocs Documentation
- Manage Inventory Management Modules (install/upgrade info)
- Inventory Management
- Reservations
- Inventory CLI reference
- Inventory API reference
- Inventory In-Store Pickup API reference
- Order Processing with Inventory Management
- Managing sources
- Managing stocks
- Link and unlink stocks and sources
- Manage source items
- Perform bulk actions
- Manage Low-Quantity Notifications
- Check salable quantities
- Manage source selection algorithms
- User Stories
- Support of Store Pickup for MSI
- Product list assignment per Source
- Source assignment per Product
- Stocks to Sales Channel Mapping
- Adapt Product Import/Export to support multi Sourcing
- Introduce SourceCode attribute for Source and SourceItem entities
- Assign Source Selector for Processing of Returns Credit Memo
- User Scenarios:
- Technical Designs:
- Module Structure in MSI
- When should an interface go into the Model directory and when should it go in the Api directory?
- Source and Stock Item configuration Design and DB structure
- Stock and Source Configuration design
- Open Technical Questions
- Inconsistent saving of Stock Data
- Source API
- Source WebAPI
- Sources to Sales Channels mapping
- Service Contracts MSI
- Salable Quantity Calculation and Mechanism of Reservations
- StockItem indexation
- Web API and How To cover them with Functional Testing
- Source Selection Algorithms
- Validation of Domain Entities
- PHP 7 Syntax usage for Magento contribution
- The first step towards pre generated IDs. And how this will improve your Integration tests
- The Concept of Default Source and Domain Driven Design
- Extension Point of Product Import/Export
- Source Selection Algorithm
- SourceItem Entity Extension
- Design Document for changing SerializerInterface
- Stock Management for Order Cancelation
- Admin UI
- MFTF Extension Tests
- Weekly MSI Demos
- Tutorials