is available for Magento® 2
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:
- Pickup At Store: gives to your customers the possibility to come and pickup their orders in a point of sale. (soon available with Advanced Inventory for Magento 2)
- 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.
You can start with configuring your extension in a general way and according to your needs in Stores > Settings > Configuration > Wyomind > Advanced Inventory.
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.
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 var/log/advanced-inventory-dd-mm-YYYY.log
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. Go to Sales > Point of Sale > Stock movement journal to check your stock movements.
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.
Points of sale management
Now, you need to create your points of sale and/or warehouses. For this, go to Sales > Point of Sale > Manage POS/WH and click on Create new point of sale/warehouse.
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 knowing that the points of sale will be visible on the Google map and that your customers will be able to pickup their orders from these places whereas warehouses won’t be visible from the Magento 2 front-office. Finally, give it a priority (order of display) as well as a latitude and a longitude using Google map.Stores > Settings > Configuration > Sales > Shipping methods so that your customers can pickup their orders from your points of sale.
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 if this is a point of sale.
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 tab, you can find 2 subtabs.
You can first 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.
Finally you get the link of a RSS feed that will include any product that shows low stock for that particular POS.
Default settings for products
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.To know more about the point of sale management, you can have a look to our documentation on the Point of Sale extension for Magento 2.
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.
Go to Sales > Point of sale > Stock movement journal. There you should find a list of all the actions that have been made.
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: Products > Inventory > Stocks
- From the backend product page: Products > Inventory > Catalog
- With Mass Stock Update: Soon available for Magento 2
- 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 add the following script to the file Magento2/vendor/magento/module-catalog/view/frontend/templates/product/view/form.phtml:
<?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 Products > Inventory > Stocks. 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.
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 Products > Inventory > Catalog or to Products > Inventory > Stocks, choose a product and click on Edit. You will have the possibility to manage stocks directly in the Advanced Settings and Advanced Inventory subtab.
To manage your stocks, define Enable multi-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.
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 magento2/app/code/Wyomind/AdvancedInventory/etc:
- 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
You will find examples of usage for the different methods in the Advancedinventory-apicall.php file available in magento2/app/code/Wyomind/AdvancedInventory.
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 Products > Inventory > 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.
- From Products > Inventory > Catalog.
Choose a product and click on Edit. In the Inventory tab and Stocks subtab, you can decide to Enable multi-stock.
Use the tree-view
In Products > Inventory > Catalog, you should see a column named Stocks. 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 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)
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 Stores > Settings > Config > Wyomind > Advanced Inventory.
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 the assignation table available in Sales > Operations > Orders will allow you to check to which pos/wh the orders have been assigned and modify these assignations.
If you go to Sales > Operations > Orders, you should see a column named Assignation. 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 Sales > Operations > Orders. 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 Stores > Settings > Configuration > Wyomind > Advanced 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 Stores > Settings > Config > Wyomind > Advanced Inventory
- 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, go to Sales > Point of Sale > Manage POS / WH, choose a point of sale and click on Edit.
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 (except when the pickup method is enabled which allows customers to choose the point of sale where they want to pickup their orders).
Below are some examples that you can use in the Assignation rules field:
For a whole country:
US(*): All United-States
UK(*): All United-Kingdom
FR(*): 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.
Credit memo management
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 Sales > Operations > Orders.
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 if you check in Sales > Point of Sale > Stock movement journal, 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.
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 management
In a first time, you need to create a role in System > Permissions > User Roles. 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 System > Permissions > All users. They can all be linked to a same role, for example Manager.
Permissions table management
Go to Sales > Point of Sale > Users permissions. There you can assign permissions to each store manager so that they can all manage the points of sale they’re in charge of.
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.