With the release of Magento 2.3, Magento 2 Multi Source Inventory (MSI) was introduced as a core solution for inventory management.
But what is it?
MSI is designed to help merchants improve their operational workflows by working with inventory across multiple sources using Magento's admin.
Merchants using Multi-Source Inventory can now:
- Assign products and their quantities to each fulfilment source (e.g. warehouses, stores, distribution centres etc)
- Track inventory at each of these sources
- Create rules to prioritise and control which inventory sources are used to fulfil orders for each website
- Integrate with third-party inventory systems and customise the default implementation of MSI
Why do you need MSI?
Until the release of Magento 2.3, it was a tough task to manage multi-source inventory from a single website. But now Magento 2.3 can manage inventory with multi channels. A Magento website selling items in multiple countries can have a certain inventory of specific products in different sources or locations. Inventory management helps you expand your website allowing you to update quantities of stock from various sources.
Magento 2 Multi Source Inventory Concepts
Let’s take a look at the core concepts of Magento 2's Multi Source Inventory and highlight some new terms and features introduced with the improvement.
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, bricks-and-mortar stores, distribution centres, and drop shippers. Magento leverages the quantities and saleable quantities of stock and manages inventory amounts automatically for managed products and orders. If you have one source, you are considered in Single Source mode. If you have multiple sources, you are considered in Multi Source mode.
Stocks represent a virtual, aggregated inventory of products available for sale on your sales channels (currently these are websites). Each stock maps your sales channels with sources for available inventories and saleable quantities. Depending on your site configuration, the stock may be assigned to one or more sales channels and sources.
Sales Channels represent entities selling your inventory, including websites, store views, and so on. Sales Channels can only be associated to one stock. Each sales channel can only have a single stock assigned to it, and a single stock can be assigned to multiple websites.
You start with a Default Stock assigned with the Default Source and your website, best used by Single Source merchants. Only the Default Source can be assigned to this stock.
Multi Source merchants create custom stocks for custom sources and websites as needed.
3. Product Quantities
Quantity is the number of products in your active inventory available for purchase. The quantity of products increases and decreases when you complete shipments or adjust inventory. Adding products to a cart will not affect this amount. The Saleable Quantity tracks the availability of the product for a sales channel and also uses this value for determining available stock for purchase. Depending on the number of sources set up, you'll see and manage product quantity for one of the following:
- Quantity: For Single Source merchants, the Quantity column and value tracks the amount of on-hand inventory available.
- Quantity per Source: For Multi Source merchants, the Quantity per Source column and values track the on-hand inventory available by location. If you add multiple sources, this value replaces the Quantity and lists every source and assigned quantity.
4. Source Selection Algorithm
Whilst the Magento 2 Multi Source Inventory module changes saleable quantity when a new order is placed and paid, the whole deal runs during the stage of a shipment creation. At this moment, the Magento 2 MSI module uses the source selection algorithm.
The search selection algorithm uses data about customers, products, addresses, stock, sources, and order’s delivery location to help the merchant determine which source an order can be shipped most efficiently from, with the highest product margin.
For instance, if two suppliers offer the same product, the algorithm selects one that offers the highest product margin. As well as this, a customer’s location can be used to determine the nearest physical location of the selected product. Where the ordered quantity is larger than the actual stock in a specified warehouse – then another warehouse can be used.
Note that where an order requires stock for an item from multiple sources in order for it to be fulfilled, if the quantity required from the multiple sources can't be achieved, the shipment is not created.
5. Inventory Configurations
Every product, source, and stock includes a number of options to configure for your store at the global, source, stock, and product level. The following are important options to understand for Inventory Management:
- Notify for Quantity Below sets an amount to trigger a low stock warning and subtracts it from your Saleable Quantity. If you enable backorders, this value is not deducted from the Saleable Quantity.
- Backorders sets if products can be sold beyond a zero inventory, saving orders until restocked. When enabled, we recommend configuring the Out-of-Stock Threshold.
- Out-of-Stock Threshold indicates when a product is out of stock and cannot be sold further. The value supports negative and positive amounts. If you enable backorders, we recommend setting this value to a negative amount for the maximum amount of products that can be backordered before the product is truly considered out of stock.
Order Status and Reservations
Inventory Management supports partial and full invoicing, payments, shipping, and cancellations per order. As you manage an order through processing, invoicing, shipment, and potentially refunds, Magento automatically enters or changes reservations to update the saleable quantity for a stock (or sales channel) and the on-hand inventory quantity per source. You do not have to actively access or enter reservations. Completing actions to fulfil, cancel, or refund an order does it for you.
Magento 2 Multi Source Inventory is a great improvement along with Magento 2.3 extensions to manage your inventory across multiple locations.