Magento MSI: Now In Magento Core
What's under the hood of Magento 2.3 Multi-Source Inventory? Top features for merchants revealed.
Starting from Magento 2.3 version, Multi-Source inventory functionality (MSI) is a part of Magento 2’s core. This release has been one of the most longed for among the Magento merchants and ecommerce agencies such as Magecom.
Now Magento can not only process all the orders from different sources asynchronously (i.e.fast and simultaneously), but also define the closest shipping warehouse to the customer, calculate the stock remains, and send you “low stock” notifications beforehand. So, if all your warehouses go empty after the big sale, your Magento 2 store will let you know 🙂
In its turn, Multi-Source inventory allows merchants to assign products to each fulfilment source (such as warehouses, physical stores, etc.), track the quantity and remains of each source, define source prioritization rules, customize the default MSI implementation, and integrate it with needed third-party systems. This will help merchants to create omnichannel marketing strategies which will be one of the main challenges for 2019.
What’s under the hood?
Magento 2.3 is the first Magento product that was created using a Feature Driven Development approach. It doesn’t depend on Magento versioning system and can be updated or improved whenever you wish. Additionally, the modules of Magento 2.3. are fungible, i.e. you can use Magento + MSI, but without the need for a Page Builder module, or other add on features. This really comes in handy both for Magento merchants and system integrators as it’s not required to maintain the code we don’t use.
Below, you will find a quick introduction to the functionality and some of the terms within the new concept.
Manage Sources
In the Magento 2 admin panel, the first place you go to leverage MSI functionality is Manage Sources. Source is the new term implemented by the Magento Core Team to define the physical stock where the goods are stored and shipped from.It may be a little confusing that “source” means a physical stock, and “stock” means a group of sources, but there is a logic to it. This term has been updated to avoid potential chaos as your warehouse, garage, stock – wherever you store and ship products from – may represent several sources at the same time (e.g. sources for different products types, or several physical locations, etc.).
In the “Manage Sources” menu you are able to create sources manually for each physical location of the products you need (e.g. Florida or California in the US).
Later you will be able to set a number of available products for each source in the product configuration menu.
Demo store for your experiments with the multi-source inventory and co. http://m23test.magecom.us/admin/ admin admin123 |
Manage Stocks
The main purpose behind managing stock has 2 features: multiple source grouping, and channel assigning to each group. The term “Channel” (or “sales channel) stands for a certain Magento 2 website – especially when you leverage a multi-store functionality.
It makes sense to group stocks according to their geographical location, for example, all stocks within one country, state or region (such as EU). So if you want to add a new warehouse in the Netherlands, you create a “Warehouse NL” stock and assign it an “EU” sales channel.
On the screenshot below you can see the Manage Stock grid menu example:
Magento 2 uses a source selection algorithm which is developed to help choose which physical location (stock) is the closest to the customer and offers it to use that as the shipping location. So, if you assign a “Warehouse NL” stock to a “US” source by mistake, the source selection algorithm will definitely not choose these product quantity deductions for a customer from the Netherlands as it will consider it too far away. Isn’t it cool?
Manage Catalog Product Inventory
Following the same logic as in stocks, you’ll need to assign sources for each product, and set the quantity of available products for each source. What’s new about the product admin page is the “Assigned Sources” grid, where you can also activate the “Notify quantity” option. When this is active and the quantity is reached, you’ll get a notification of “stock running low on this product” to help manage your inventory. The default “Notify quantity” is 1 but is fully customizable to your needs.
Saleable Quantity
The Multi-Source Inventory Workflow Schema
The Multi-Source inventory workflow is pretty logical: after sources are created and assigned to stocks, the quantity of products is set for each source, and each stock is linked to a specific Magento 2 website. After that, the MSI module sums all the products to provide the saleable quantity per each stock (group of sources, such as country, state or EU).
Put simply, if the products quantity of your “Amsterdam source” is 0, and your “Rotterdam stock” products quantity is 10, the saleable quantity for “Warehouse NL” stock will be 10. BUT PLEASE NOTE: that if you a have multi-store Magento 2 website and you sell, for example, artificial Christmas trees in all EU countries, a customer from the Netherlands will see 10 artificial Christmas trees available in stock, and a customer from Portugal will see a different number, relevant to the Portugal stock.
When a new order is placed, the MSI module deducts the products quantity from the saleable quantity, and it triggers a notification and action chain, depending on configuration:
- If the in-stock product quantity is 0, it sets “out of stock” as the status;
- If a customer adds more products to their cart than are available in stock, they will be notified about the limited quantity of stock ;
- It also shows the products quantity in stock on the front end;
The saleable quantity of products is more reactive, acting more in real time during the process of shipping creation. Once an order has been placed and paid off the quantity will update. It is designed this way to offload the system which results in better performance.
Order Management
Now that we’ve covered the saleable quantity calculation option, we have to say a few words about the MSI order reservation system. How does it work? After the order has been placed, the ordered products quantity will be reserved until the order has been completed. When the order is paid for and the shipping is being organized, the purchased product quantity will be deducted from the available source quantity.
So, now you have the general feel of what’s under the MSI hood to leverage its functionality on your project. Need help with the Magento 2.3 Multi-source inventory implementation? Drop us a line and we will gladly assist with Magento 2.3 upgrade, migration, or tuning.
Hunting for Magento development support?
We’ll be in touch soon if you leave your contact information