Advanced Inventory for Magento® 2
The Advanced Inventory extension for Magento 2 allows you to manage the stocks of different points of sale or warehouses through Magento 2 back-office.
Every time an order is placed through your website, it can be manually or automatically assigned to one or more warehouses or points of sale.
You can also follow in real time the stock level of each point of sale or warehouse, the orders assignations and anticipate if some restocking is needed.
With Advanced Inventory for Magento 2, any kind of scenario is possible. The module is easily configurable thanks to several setting options that correspond to the great majority of inventory management real situations.
Advanced Inventory for Magento 2 is composed of a suite of performing tools for a better multi-stock management:
- Point of Sale: allows you to display on your Magento 2 frontend a Google Map in order to help your customers find the closest point of sale.
- Mass Stock Update: allows you to update all your Magento 2 stocks in one go via a CSV file.
Advanced Inventory for Magento 2 can be used in 6 steps defined in the documentation below.
Use Advanced Inventory for Magento 2 in 6 steps
STEP 1: Configure Advanced Inventory for Magento 2 in a general way
You can start with configuring your extension in a general way and according to your needs in:
The following settings are essential to configure the Advanced Inventory extension for Magento 2 according to your needs.
- Advanced Inventory enabled
You’ll have the possibility to disable the Advanced Inventory stock management by setting this option to NO. Stocks will then be managed natively in Magento 2. This feature is useful for example when you’ve just installed the Advanced Inventory extension and you’re configuring stock management.
- Multiple assignation enabled
With Advanced Inventory for Magento 2, you can assign orders to many points of sale or warehouses.
- Automatic assignation enabled
If you activate the automatic assignation, your orders will be automatically assigned to one or more points of sale/warehouses according to the store view of the order, the customer group, the priority of the point of sale, the assignment rules and shipping address, the availability of the items in the stock.
- Default Assignation for admin order
Define a default assignation for the orders created from the Magento admin.
- Notifications in backend enabled
If you enable order assignation notifications, you should get a message at the top of your admin saying some orders need your attention and have to be assigned to a point of sale or a warehouse.
- Start date for order notifications
You can edit the start date for order assignation. Then only the orders placed after that date will be managed.
- Order status disallowed for manual assignation
Advanced Inventory allows you to disable assignation update according to order statuses such as Complete or Canceled orders. Then it won't be possible to modify stock assignation for orders with these statuses.
- Automatic stock status updated enabled
You can also enable an option to automatically update stock status when product quantities are changed from the admin panel.
With Advanced Inventory for Magento 2, you have the possibility to use some useful tools to save all the logs and the stock movements you have made.
- Enable log file
By enabling the log file, all actions will be logged in:
- Enable the stock movement journal
The stock movement journal is a useful tool that will allow you to see what has been done and if your stock changes have been taken into account. To check your stock movements, go to:
SalesPoint of SaleStock movement journal
- Stock movement journal lifetime history
You can also define the number of days you want to include in the Journal history. Any stock movement older than this value will be automatically deleted.
STEP 2: Manage your points of sale
Now, you need to create your points of sale and/or warehouses. For this, click on Create new point of sale/warehouse from:
SalesPoint of SaleManage POS/WH
In the General Information tab, you can define an internal code for your warehouse/point of sale. Give it a name and a type of display among point of sale and warehouse:
- the points of sale will be visible on the Google map
- the warehouses won’t be visible from the Magento 2 front-office
Finally, give it a priority (the order of display is used for the point of sale display on the map and for the priority of the assignation rules) as well as a latitude and a longitude using Google map.
Address & Hours
In the Address & Hours tab, define the address of the warehouse/point of sale. Add a phone number and an email address. Finally add an image and specify the opening hours and lunch hours if this is a point of sale. Note that if you have filled in the email field, a copy of the email sent to the customer will also be sent to the store when the order is assigned to a point of sale/warehouse.
Store Views Selection
In the Store Views Selection tab, define for which store view(s) you want this warehouse/point of sale to be visible. You can also make your warehouse/point of sale visible for all store views.
Customer Group Selection
In the Customer Group Selection tab, select the group(s) of customers that will be able to see that warehouse/point of sale. Here again, you can do what you want and decide to make that warehouse/point of sale visible for retailers only or for all customer groups.
In the Inventory Settings subtab, you can define the assignation method you want to use between:
- Do not assign any order
- Assign orders when product is available
- Assign orders depending on specific rules: when choosing that option, you have the possibility to fill in the rule to assign the orders to that particular point of sale (Check the following step to see how to manage assignation rules).
Advanced Inventory for Magento 2 offers you the possibility to notify by email the recipients, that is to say the manager(s) of the point of sale. For that, you simply need to add the different email addresses separated with a comma.
You also get the link of a RSS feed that will include any product that shows low stock for that particular POS.
You can check our faq to know how to display the stock status message on your frontend product page.
In the Default settings for products subtab, you'll also be able to define the default product settings for this stock.
You'll have the possibility to use the configuration settings for backorder. If you don't, you'll have to define your own parameter for the backorder status between:
- No backorders: no order is allowed if the product is out of stock.
- Allow quantity below 0: the product can be ordered even if it is out of stock.
- Allow quantity below 0 and notify customer: the customers are notified that they can order even if the product is out of stock.
Finally you'll be able to save and apply stock settings to all multi-stock products for this point of sale or warehouse.
After having filled in all fields, don’t forget to save the configuration of your warehouse/point of sale.
Check the documentation on the Point of Sale extension to know more about the point of sale management on Magento 2. Note that you can also enhance the Advanced Inventory features with the Pickup@Store extension that allows your customers to pickup their orders from any of your points of sale!
STEP 3: Manage your stocks
One of the most important features of Advanced Inventory for Magento 2 is to manage stocks.
A tool named Stock movement journal will help you to see if all your changes have been made. This includes changes made by any user, customer, or via the external API.
You should find a list of all the actions that have been made in:
SalesPoint of saleStock movement journal
For example, on the above screenshot, we can see that the Admin named Jon has edited a product page (product id = 2) and changed the quantity for the product in a point of sale/warehouse (id = 541) from 0 to 10 units.
If you hover the mouse over the reference code, you’ll see the details of the action such as the SKU of the product and the name of the point of sale/warehouse.
Advanced Inventory for Magento 2 allows you to manage your stocks according to 4 different ways:
- From the grid:
- From the backend product page:
- With Mass Stock Update
- With the API (for web developers only)
Stocks for each point of sale can be visible on the Magento 2 front-office product page directly.
The display of these stocks will depend on the configuration of each point of sale (which store view and customer group is linked to it) and also from which store view the customer is looking at the product page.
To display the stocks on your product frontend page, you need to go to the file:
And add the following script:
<?php $this->getLayout()->createBlock('\Wyomind\AdvancedInventory\Block\Catalog\Product\Stock')->output($_product); ?>
Manage your inventory from the stock grid
Advanced Inventory for Magento 2 allows you to manage your stocks from the product grid in:
The product grid displays the quantity available for each product.
To enable or disable multi-stock, you can either tick the products you want and choose Enable multi-stock or Disable multi-stock from the Actions dropdown or select the option you want for each product by clicking on the dropdown in the last column of the grid.
If you decide to enable multi-stocks, you will be able to enter the number of items in each point of sale or warehouse directly from the grid. The Qty column will then be adjusted according to the number of products in each point of sale and warehouse. Note that by selecting Disable multi-stock, you won't be able to manage your stocks.
Depending on your stock configuration for each product, you may see orange notifications below the quantity of a point of sale/warehouse.
- Backorders allowed: means that backorders are allowed. For example, if you type -10, it will be deducted from the total quantity.
- Qty not managed: means that the quantity is not managed for that particular point of sale/warehouse.
You can also filter by store view. For example, if you choose the FR store view, you'll see only the point(s) of sale linked to that store view and the product quantity of the FR store view.
Use the arrow keys to increase/decrease the stocks.
Manage your inventory from the backend product page
You can also manage your stocks for each point of sale at the product level. To have access to the back-office product page, you can either go to:
ProductsInventoryCatalog or toProductsInventoryStocks
Choose a product and click on Edit . You will have the possibility to manage stocks directly clicking on Advanced Inventory subtab (under the quantity of the product) then in the Wyomind Advanced Inventory section.
To manage your stocks, define Manage local stock on YES. Now you can manage your stocks for each point of sale or warehouse. You have the possibility to enable stock management for one or more points of sale or to keep it disabled.
Be careful when stock management is disabled, no quantity is managed for the product. This means that there is an unlimited number of items and so the product can be ordered.
When stock management is enabled, you can define the product stock for each point of sale. You have also the possibility not to use default settings. If you untick that box, you have the choice between 3 options:
- No backorders: when there's no stock, it's impossible to order the product
- Allow quantity below 0: even if there is no stock, the product can be ordered.
- Allow quantity below 0, and notify customer: even if there is no stock, the product can be ordered and the customer will be able to see in the front-office that backorder is allowed for that product.
You also have the possibility to filter by store view. For example, if you choose the DE store view, you'll see only the point(s) of sale linked to that store view and the product quantity of the DE store view.
Manage your inventory via the API
You may use a Web app or a software to manage your stocks. So that you can make the link between that tool and your Magento 2 instance, the Advanced Inventory extension allows you to use the RESTful API to manage your stocks.
You'll find the different methods that you can use in the webapi.xml file available in:
- getStockByProductId: Get stock data for one product
- getAllPointOfSaleAndWarehouse: Get all warehouses/points of sale
- getPointOfSaleAndWarehouseByStoreId: Get all warehouses/points of sale for one store view
- getStockByProductIdAndPlaceIds: Get stock data for a group of warehouses
- getStockByProductIdAndStoreIds: Get stock data for a group of store views
- updateStock: Update the stocks settings of a product for one warehouse
- updateInventory: Update the inventory settings for one warehouse
- get: Get an order only with products assigned to the warehouses visible by the user
- getList: Get orders only with products assigned to the warehouses visible by the user
You will find examples of usage for the different methods in the Advancedinventory-apicall.php file available in:
STEP 4: Manage your products
With Advanced Inventory for Magento 2, you can manage the stocks of each one of your products and on different levels.
There are several ways of enabling multi-stock for your products.
- From:ProductsInventory Stocks
Select the products you want by ticking each product manually, choosing Select all or Select visible.
Then from the Actions dropdown at the top, select Enable multi-stock. Click on Submit and then don’t forget to Save all changes.
Choose a product and click on Edit . Under, the quantity of the product, click the Advanced Inventory link and then go to the Wyomind Advanced Inventory subtab. There, you can decide to Manage local stock.
Use the tree-view
You should see a column named Stocks in:
In that column, you should see a link Show stock details which is displayed for all products which multi-stock is enabled. If you click on that link, a tree-view is displayed and shows the total of items for each store view.
If the treeview is not displayed make sure the Stocks column is selected in the Columns dropdown.
Below is a concrete example:
Each point of sale or warehouse is linked to one or more store views:
- French Paris Store: US and FR Store views
- Germany Berlin Store: US and DE Store views
- United Kingdom London Store: US Store view
For a product available in 3 points of sale:
- French Paris Store: 5 items,
- Germany Berlin Store: 2 items,
- United Kingdom London Store: 4 items
You will get the following treeview:
Main Website Main Website Store DE Store View (6) Germany Berlin Store (2) United Kingdom London Store (4) FR Store View (9) French Paris Store (5) United Kingdom London Store (4) US Store View (11) French Paris Store (5) Germany Berlin Store (2)United Kingdom London Store (4)
STEP 5: Manage your sales
Advanced Inventory for Magento 2 allows you to assign the orders in two different ways:
To manage the order assignations automatically, you need to define the Automatic assignation enabled option on Yes from:
Before anything, you must know that an order will be assigned to a pos or a warehouse according to these settings:
- the store view: which store view is assigned to the pos/wh.
- the customers group: which customer group is assigned to the pos/wh.
- the priority: does the pos/wh have priority.
- the availability of products: are all the ordered products available in the pos/warehouse.
- the assignation rules: what are the assignation rules defined for the pos/wh.
- the shipping address: what is the shipping address of the customer.
In order to manage the automatic assignations, 2 tools are essential. You can configure the assignation rules in the Inventory settings tab of a pos/wh so that the orders can be automatically assigned to a pos/wh depending on the area. Finally, you will be able to check to which pos/wh the orders have been assigned as well as to modify these assignations in the assignation table available in:
You should see a column named Assignation if you go to:
A notification is displayed in the box. It can be in different color depending on the order assignation:
- Name(s) of the pos/wh = the order is assigned to one or more pos/wh if you enabled the multi-assignation
- No assignation required = the status of the order is disallowed for manual assignation
- Order placed before multistock initialization = the date of the order is older than the start date for order assignation
- 1 item is partially unassigned = some products are partially assigned
- 1 item is unassigned = some products must be assigned manually to a pos/wh
The assignation table will be displayed in any Order view page, or by clicking on a green or a red notification from the Assignation column in:
A popup window opens and displays an assignation table. That table will show the products of the order, the different points of sale/warehouses and the stock for each item.
Whenever you want, you can assign each product to one or more points of sale/warehouses (if you have enabled the Multiple assignation enabled option in StoresSettingsConfigurationWyomindAdvanced Inventory) or modify the automatic order assignation from that table.
You also have the possibility to automatically assign the items by clicking on Run automatic assignation. The products will then be automatically assigned to the points of sale/warehouses bringing together the more assignation criteria.
In the example above, you can see how many items must be assigned in the Qty column. The last line is in red because one item still must be assigned.
Some colors and symbols will help you to understand how the assignation table works:
- Numbers in Green: means that the pos/wh has stock
- Numbers in Red: means that there is no stock and no backorders
- Numbers in Orange: means that backorders are allowed
- X Qty not managed: multi-stock is disabled
- - Stock not managed: you don't manage stock for a product at all (the product is then available)
The assignation rules allow you to automatically assign orders placed on your website to one or more points of sale. These rules allow you to define the geographical area that each one of your points of sale can cover. They are based on your customer's shipping address: code of the country and/or zip code and/or regional code.
In addition to the assignation rules, you need to have defined:
- the Automatic assignation enabled on Yes in:
- the Assignation method on Assign orders depending on specific rules in the Inventory settings tab of a point of sale configuration
You need to define assignation rules for each point of sale or warehouse. For this, choose a point of sale and click on Edit from:
SalesPoint of SaleManage POS / WH
In the Inventory settings tab, make sure you have selected Assign orders depending on specific rules. Here you can write your own assignation rules using the same syntax as the Owebia Shipping extension (with their agreement).
By default, the assignation rules are defined on “*” which means that the point of sale/warehouse will manage orders from worldwide. If the field is empty, the pos/wh won't assign any order.
Below are some examples that you can use in the Assignation rules field:
For a whole country:
US(*): All United-StatesUK(*): All United-KingdomFR(*): All France
For a specific region of a country:
US(CA): California / United-States
FR(75*): All French zip codes starting with 75 (Department of Paris)
DE(7*): All German zip codes starting with 7 (Region of Bade-Wurtemberg)
For many countries:
US,UK,CH,ES,IT: United-States, United-Kingdom, Switzerland, Spain and Italy
You can subtract some regions. For example:
* - (CAN, US(CA,FL)): Worldwide except Canada, California and Florida
For flexible assignation rules, it is also possible to use regular expressions:
FR(/^75[0-9]+$/): Department of Paris (All French zip codes starting with 75 followed by numbers from 0 to 9)
To better understand how to use assignation rules, you can have a look at the Owebia Shipping documentation.
With Magento 2 you can create credit memo for any customer that wants to return products that have already been invoiced.
In that case, Advanced Inventory will allow you to return products to specific stocks directly when editing the credit memo in:
For example, a customer wants to return an item. When creating the credit memo, you'll be able to choose to which stock you want to return the item.
In the case where you have many items to restock, you'll be able to choose a different point of sale or warehouse for each item.
Now, you should see that the credit memo has been taken into account and the items have been returned to the point(s) of sale/warehouse(s) you've choosen, if you check in:
SalesPoint of SaleStock movement journal
STEP 6: Manage permissions
With Advanced Inventory for Magento 2 you have the possibility to assign different rights to each admin user.
Let's imagine you have 6 points of sale managed by 3 store owners.
Each store owner manages 2 points of sale:
- Tom, the first store owner manages the German and Belgium points of sale.
- Sarah manages the Spanish and Italian points of sale.
- Jon, the third manager is in charge of the French and British points of sale.
Roles and Users
In a first time, you need to create a role in:
Define a name (ex: Manager) as well as the permissions associated to that role. You can choose the different permissions you want to assign to the role (for example not to allow the management of the permissions table for these users).
Then, create an admin user for each one of these managers in:
They can all be linked to a same role, for example Manager.
You can assign permissions to each store manager so that they can all manage the points of sale they’re in charge of, from:
SalesPoint of SaleUsers permissions
To do so, simply tick the appropriate boxes for each manager.
By ticking the All box, the store owner will be able to manage all the points of sale and orders placed by customers.
If you tick Unassigned orders, the store owner will be able to manage all the orders that haven’t been assigned to a point of sale.
Now, if a store manager logs into the Magento 2 back-office, for example Sarah. Among the orders placed by the customers, she'll be able to see, manage and change the number of items only assigned to the points of sale she manages: the Spanish and Italian points of sale.