Introduction to Magento MSI

Multi-Source Inventory (MSI) is an inventory management mechanism for multi-source support, available for Magento 2.3+ merchants.

It is designed to help merchants to reduce the negative impact of concurrent checkouts.


MSI concepts

Sources represent locations (both physical and non-physical). A source can be a warehouse, a brick-and-mortar store, a distribution center or a drop-shipper.

Stocks are used to map a sales channel (website) to source locations and available inventory. A stock can be mapped to multiple sales channels, but a sales channel can be assigned to only one stock.

The salable quantity is the total inventory that can be sold through a sales channel (website). The amount is calculated across all sources assigned to a stock. After sources are linked to stocks, each stock will specify the number of products per source and product and will be linked to a corresponding sale channel. Read more about how salable quantity is calculated here

Reservations deduct from the salable quantity as customers add products to carts and complete the  checkout process. Inventory allocation involves reserving stock for the customer. Until inventory is allocated to a sales order, it is still available to sell and will be counted in a sales channel's salable quantity. When an order ships, the reservation clears and deducts the shipped amounts from specific source inventory quantities.

MSI reservations are excluded from the module because information about these resides and is maintained exclusively within Magento, and these mechanisms should operate distinctly from the integration. 

The source selection algorithm (SSA) is not supported by the extension. All orders need to be fulfilled from Brighpearl. 

Configuring the Brightpearl MSI settings

MSI source map

In order to map Brightpearl warehouses to Magento sources, go to Brightpearl Integration > Brightpearl MSI > Configuration > Shared: MSI. There, you will see a mapping box that allows you to map Brightpearl warehouses to Magento sources.

This is a one-to-one connection, meaning one Brightpearl warehouse can be mapped to one Magento source.

If you have multiple warehouses in Brightpearl that you want to connect to your Magento website, you will need to create multiple sources and map each source to each warehouse in Brightpearl. 

"Put in stock" and "Put out of stock"

These two settings govern a product's visibility based on its inventory level.

  • Put in stock: Set this setting to "Yes" if you want items that have a quantity greater than "0" to automatically be put back into stock on Magento
  • Put out of stock: Set this setting to "Yes" if you want products that have a quantity of "0" to automatically be put out of stock on Magento

Important: if you're using the Magento MSI functionality, there is no need to select warehouses under the "Shared: Stock settings" section as that won’t affect MSI interactions. Also, make sure you set "Interaction: Import stock levels (bulk)" and Interaction: "Import stock levels (real-time)" sections under standard Brightpearl module configuration to "No". The MSI module will take care of importing stock levels. 

When no warehouse data is found for a SKU source


Source level

When the integration makes a query to Brightpearl API and doesn't get a response for a SKU, you can decide how you want the integration to update source quantity. Select ‘Leave unchanged’ if you don’t want the inventory level to be adjusted. Select ‘Zero’ if you want the source level to be set to ‘0’.


This feature allows you to decide how you want to be alerted if the API doesn’t return any relevant warehouse data for a SKU.

  • Warn: You will see warning logs. The failure count in logs will not be increased.
  • Error: Instead of displaying a warning in the report, the interaction will display an error. The error count will be increased.

Errors don't affect the behavior of the interaction, only the reporting. If you set this setting to "Warn", then any missing SKUs are effectively hidden from you. If you set it to "Error", any missing SKUs will show up in a quick summary of the interaction logs. 

Interaction: Import MSI levels (bulk) 

Enable bulk import of MSI levels and set up cron expression. Screen_Shot_2019-09-10_at_6.51.13_PM.png
You can also decide it you want to be notified about errors in the report or successful bulk inventory import.

Interaction: Import MSI levels (live)

Enable live import, choosing which triggers to enable to prompt the interaction to run.



Allocation warehouses in Brightpearl

You can now set up an allocation warehouse per each website view. Go to Brightpearl Integration > Configuration > Interaction: Export Order > Set a default allocation warehouse.

The allocation warehouse will be used on orders in Brightpearl as an allocation and fulfillment warehouse.If you have more than one Magento store, you can switch the store view settings and set a different allocation warehouse for each store.


Have more questions? Submit a request