Magento 2.3 has been released since 28/11/2018, and the most concerned feature of this huge upgrade – Magento MSI is certainly what brought you to this article. Well, we are a bit late to introduce Magento MSI (or Magento 2 MSI, Magento Multi Source Inventory) but we commit to make a complete guide to help you. So, it’s time we look at the core of Magento Multi Source Inventory and discover its functionality in Magento 2. Okay, back to our Magento MSI guide.
Table of contents:
- 2.1 Magento MSI Sources
- 2.2 Magento MSI Stocks
- 2.3 Magento MSI Salable Quantity
- 2.4 Magento MSI Source Selection Algorithm
- 2.5 Magento MSI Performance
- 2.6 Magento MSI Partial Shipment
What is Magento Multi Source Inventory
Magento Multi Source Inventory, in short MSI, which allows merchant to manage all inventory sources without any third-party extensions or platforms. With Magento MSI, it’s possible to link multiple inventory sources to one or multiple websites. The amount in which a product is available, is calculated based on the sources made available for that website. Grouping multiple sources and defining the relation between sources and web stores is done with a new concept: “stocks”.
Moreover, we have a new term – salable quantity. The Salable quantity is in fact the total sum of the stocks, which updates immediately when a sale is processed. Also, we have source selection algorithms, to deduct the source of a product right after a shipment is created. We will talk about these things thoroughly later.
Important Note: At the moment, Magento MSI is still in development. You can look at the progress via Github.
Magento Multi Source Inventory Features
To understand the concept of this new functionality, you should read the Magento MSI’s Features, then highlight and remember some new terms of features.
Magento MSI Sources
Magento MSI is based on the “sources”. A source is actually “a physical location of a stock”, or a place where products are stored. It can be a warehouse, a brick-and-mortar store, distribution centers, drop shippers, your home or everywhere. Quick note: sources are physical locations, and any location with available stock and capable of order fulfillment can be added as a source.
So if you are selling products from multi-location (of course, that’s why you search for Magento MSI), you need to create sources for each inventory location. To create new sources, you can do as below.
On the Admin sidebar, tap Stores. Then under Inventory, choose Sources.
Now Add New Source.
Input the General information like Name, Code. You should select Enable if this source will fulfill orders as soon as products are assigned. The source must have assigned stock for one or more websites. The Default Source cannot be disabled.
Other fields like Description, Latitude and Longitude are all optional.
Complete the Contact Info for a primary contact at the location.
- Add the Contact Name of the primary contact.
- Add the Email address of the primary contact.
- In the Phone field, add the area code and phone number of the primary contact.
- In the Fax field, add the area code and phone number of the fax if available.
Finish the Address Data for the location.
You must finish the required fields, Country and Postcode. Other fields, State/Province, City and Street are all optional.
Sources may not be deleted to ensure all order data retains in Magento. Sources, orders, and shipments are directly connected to each other. You can disable sources and modify information including location and point of contact. When you disable a source, these things will happen:
- MSI ignores and does not list the source for shipment or order processing
- Stocks do not access inventory quantities from the source for aggregated inventory totals
- Order shipments cannot be assigned to disabled locations.
If you keep the status of the source to be enabled, you can edit and update the information like the point of contact, physical address or Longitude and Latitude. Just one note, you can’t change the Code of the source.
Magento MSI Stocks
As we stated above, the term “stocks” is used to group multiple sources together. Stocks map your sources to sales channels, providing a direct link to salable quantities and inventories. While sources are actually physical locations, the stocks are the virtual representation for multiple sources. We like this concept, and thanks Firebearstudio a lot for this concept.
To add Stock, again, you need to do as below.
On the Admin sidebar, tap Stores. Then under Inventory, choose Stocks.
Now Add New Stock.
You must add an unique Name for your Stock. Other than that, in Sales Channels, you can assign the stock to one or more listed sales channels. The sales channel is (mostly) your Magento views.
Then Assign Sources. Choose the sources you want to apply to the new stock. Then, click Done.
The main difference between Sources and Stocks is that Stocks can be deleted. Note that Stocks can’t be disabled, however, any sales channels and sources can be reassigned as needed.
If you don’t want to delete a Stock, you can choose to edit it. You can change everything, from the Name, the sales channels and the assigned sources. But remember that you can only do it with New Stocks, not the Default Stock. In addition, if you unassign a sales channel without adding it to another custom stock, it will be assigned to the Default Stock.
Magento MSI Salable Quantity
Magento MSI introduces a Salable Quantity displayed through the Product grid. You have Sources, you have Stocks, now you after creating sources and stocks you need to distribute the products. The value displays in a column next to Quantity per product for Multi Source merchants. The amount is an aggregated total of product inventory available for purchase for a stock.
In the product grid we can see two new columns: Quantity per Source and Salable Quantity. Quantity per source represents (as visible in the column) the physical stock at a location. We do not want to change this figure until a shipment has been created. Not when an order is placed, which is the case in previous versions of Magento. Meanwhile, the Salable Quantity is the sum of available resources, grouped in stocks.
It is complicated, but you just only need to know that Magento MSI will sum up the available resources and groups them in stocks. When a new order is placed, the Magento MSI module deducts the quantity from the salable number.
Magento MSI Source Selection Algorithm
Magento MSI uses the Source Selection Algorithm to do the work for you from tracking inventory salable quantities across all sources to calculating and making recommendations for partial and full shipments. Whenever you change a salable quantity when a new order is placed and paid, the algorithm will run and do these below works.
- Calculates the salable quantity of all assigned sources per stock.
- Subtracts the Out-of-Stock Threshold amount from salable quantity.
- Reserves inventory quantities at checkout, deducting from in-stock inventory at order processing and shipment
- Supports backorders with enhanced options for negative thresholds
There is only one downside, you will get only one source selection algorithm in Magento MSI 2.3. In the future, there will be lots of updates, but for now, you just can hope for the better.
Magento MSI Source Selection Algorithm works with priority, which is recorded in the wiki as below:
- Works through the list of sources in order from top to bottom
- If the source has a virtual aggregated available stock, it recommends deductions and shipments from that source first.
- Continues down the list until the order shipment is filled.
- Skips disabled sources if found in the list
Magento MSI Performance
Thanks to the new Magento MSI Source Selection Algorithm, the checkout performance will be improved significantly. It’s mostly because the source selection happens when making shipments, and the customer only need to add the actual source later.
Source selections algorithms can be very complex and therefore require computing power and time to exectue. Especially if they are performed as part of a mass action.
Magento MSI Partial shipments
Magento MSI also supports partial shipments. When creating a shipment, it is possible to choose for how many ordered items a shipment is created. If you send partial shipments, each shipment deducts that amount from your product quantity. Any remaining reservations remain in place until they are also shipped at a later time. This keeps your salable amount current.
Magento MSI Related Products
Magento 2.3 with MSI features opens new opportunity for a lot of Magento Technology Partner to develop integrated functions. Merchants confidently take advantage of that built-in function and explore enhanced features.
1, PWA POS integrated with MSI – The perfect online to offline solution for Magento merchants.
Magestore Magento 2.3 POS is the web based POS developed by PWA Technology. It allows users to log in POS Checkout from one URL. All you need is a browser and internet. With native integration with MSI, inventory is synced in real time between the POS and the Magento 2.3 backend.
POS functions as a second Sales Channel next to the Online Sales Channel (Magento Site) It connects to the data of MSI and displays the inventory from the associated stock. Any order created on the POS will be updated to Magento backend in Real time.
2, Advanced MSI
Amasty develops a plugin that extends the functionality of MSI. It gives the merchants flexibility to have various physical and virtual stocks, with complex logistics. Advanced MSI extension will allow you to manage all this within one Magento, picking warehouses based on the nearest location, stock availability, priority. Moreover, there is a cutting-edge algorithm: combining all the picking options, it suggests the optimal variant. Plus you can link your websites to particular stocks.
If you know any other modules enhancing the function of MSI, please leave comment below or contact us.