3. Concepts

This page explains the main concept for the inventory management extension.

First of all, this extension uses every existing Magento features about the inventory management, and extend them. So you can still use the settings available in the product view, under the “advanced inventory” tab.


The inventory management extension supports multiple warehouses : by default, after installation, one warehouse already exists. This default warehouses is technically required by the extension, can not be deleted and EVERY products created in magento will be associated to that warehouse (with a quantity of 0 by default). You can rename that first warehouse, and we do encourage you to use it as your main warehouse.

One warehouse can contain products : several information are available at the product / warehouse level :

  • Physical Stock level : this is the quantity in the warehouse
  • Qty to ship : this is the quantity to ship for opened sales order
  • Qty available : physical quantity minus the quantity to ship
  • Shelf location : location of the product in the warehouse

The best way to edit product / warehouse details is to use the mass stock editor but this information are also available in the “Inventory management” tab in the product view.

Stock movements

Each time the physical stock level changes in one warehouse, a stock movement MUST be created.

Stock movements are automatically created in some cases :

  • During order shipment
  • During purchase order delivery (if you use our Procurement extension)
  • If you manually change the stock level in the mass stock editor, a “System” stock movement is created.

It is mandatory that the physical quantity matches to the sum of the stock movement, if not, you may experience unexpected behaviours.

So when you need to update a physical stock level (for any reason), the best practice is to go within the product view, select the “Inventory Management” tab and create the stock movement.

A stock movement is composed of the following information:

  • From: this is the warehouse where the product comes from: it can be empty if the product comes from a warehouse that you do not manage (from a supplier for a PO receiving, or from a customer for return)
  • To : this is the warehouse where the product goes to : it can be empty if the warehouse is out of your control (when you ship an order to a customer for instance)
  • Quantity : the quantity to move. This quantity will be decreased for the “from” warehouse, and increased for the “target warehouse. The quantity is always positive.
  • Category : select a category. This is for information only, it has no impact on the stock movement
  • Comment : required, you must explain why you create the stock movement.

Sellable quantity

Magento supports the sellable quantity at the website level, so our extension fits to this design. To know the sellable quantity for one product, you must go within the product view, and select “Inventory management” tab : you have the quantity available for sale per website in the first grid “Quantity sellable per website”.

The sellable quantity for one website is updated this way :

  • Use every warehouses for which the “Use for sales” option is enabled in the “Warehouse routing” screen (this is configurable per website)
  • Then, the system calculates the sum of the available quantity for each warehouse, and update the total sellable quantity at the website level.

This very flexible engine allows to support different scenarios :

  • Sellable quantity on your website can be the sum of your warehouse + a physical store, but the sellable quantity in the store is only the quantity in the “shop” warehouse
  • Sellable quantity can be the sum of your warehouse + a drop shipping warehouse
  • If you create a “RMA” or “Defective” Warehouse, do NOT enable the “Use for sales” option !

Once everything is configured, inventory management will update the sellable quantity when :

  • A new order is placed
  • Physical quantity in one warehouse changes

Warning / Ideal stock levels

The warning & ideal stock levels are used to raise notifications when a product stock level goes low. Those levels are configurable at the warehouse level.

The concept is the following : when the quantity AVAILABLE for one product in one warehouse goes BELOW the warning stock level, then a notification is raised to reach the ideal stock level, here are some examples :

Available Qty Warning stock level Ideal stock level Notification
10 15 20 Buy 10
10 5 8 Buy 0
10 15 15 Buy 5

To get a quick view about the products to reorder, use the stock helper screen.

Sales order item routing

When a new order is placed, the extension will assign a warehouse to each order item : this is the warehouse from which the product will be dispatched : this flexible engines allows to get an order dispatched from different location, depending of the stock levels in warehouses, or of the client location.

You can check or change the warehouses associated to order items in the order view (inventory tab).

The rule configuration for the warehouse routing can be defined in the “Warehouse routing” screen.

In the first versions, 2 rules are available :

  • Warehouse with stock, order by priority : in that case, the system browse the warehouses having the “Use for shipments” option enabled, sorted by priority (1 => 9999). Then, it will use the first warehouse that has enough available stock to dispatch the order item
  • Always priority one : in that case, order items are always assigned to the warehouse having the “Use for shipments” option enabled AND a priority of 1.


Warning : if you change that configuration, it will apply ONLY for future orders, not for existing ones.

Stock reservation

The Inventory extension includes a mechanism to reserve inventory (if available) when an order is placed, here is how it works :

  • Let’s consider a product P in warehouse W, with a physical quantity of 2 : at this stage the available quantity is 2. Backorders are enabled for this product
  • A customer place an order with 1 product P, the order item is assigned to warehouse W. Then, the system checks if product P is available in the warehouse W: yes it is, so it reserve the product for the order, and the product available quantity becomes 1.
  • Another customer places the same order, product is also reserved for this order, and the available quantity becomes 0
  • As backorders are enabled in magento, a third customer can purchase the same product. However, when the order is placed, the system can not find any available product, and then the quantity is NOT reserved for this third order.
  • A few days after, you receive a purchase order and increase the stock to 10 : at this moment, the system looks for order pending this product, and then, reserve the product for this third order.

This way, you always know what orders are fullfillable or not, and also what quantity of your inventory is reserved for future shipment.


Note : if an order is cancelled, the product is released and assigned to another pending order.