Magento inventory management is very basic – only an Inventory Qty figure. Strictly speaking, it is not an “in-stock” figure, but an “orderable”. Because orders keep coming in but you only do despatch once a day, Magento inventory quantity changes upon order is placed online, so you can not tell how many pieces of a product sitting in the warehouse.
Use only one figure to manage inventory is not enough. Imagine this scenario:
You are doing stocktake someday. At the time of last despatch, Magento inventory quantity of product X is 100. Stocktaking takes many hours, and when it finishes, Magento inventory quantity has changed to 80. If you physically count product X as 95, you can not simply update Magento inventory figure to be 95. Instead you should change it to 75 (worked out as 80 – 100 + 95). It is very easy to make such mistakes in stocktaking, but I have only Magento to blame – if stocktaking is based on a figure which is changing from time to time, it is not rock solid.
However, I am not thinking of introducing a 3rd party inventory management system to work with Magento, largely because I do not know which one can fit.
I am thinking of a simple extension to Magento – use 3 figures to show stock level from different concerts. Let’s clarify the terminology first.
Figure 1: inventory orderable, i.e. the existing Magento Inventory Qty;
Figure 2: inventory in-stock, i.e. how many pieces in the warehouse;
Figure 3: inventory coming, i.e. expected purchase.
- When an order is placed, decrease inventory orderable
- When an order is despatched, decrease inventory in-stock
- When an order is cancelled before despatch, increase inventory orderable
- When an order is cancelled after despatch, do nothing (some companies raise RMA at this point but we do not need it.)
- When an order is returned, if goods in good condition, increase inventory orderable, and increase inventory in-stock
- When a purchase order is placed (by us to our supplier), increase inventory coming
- When a purchase order arrives, decrease inventory coming, increase inventory orderable, and increase inventory in-stock
- When stocktake begins, snapshot inventory in-stock as inventory1
- When stocktake ends, update inventory in-stock to inventory2, and add (inventory2 – inventory1) to inventory orderable
If all above events are logged, we have a kind of traceability. The log gives some clue to analyse where “inventory2 – inventory1” is from.
In case a customer asks “how many you have? I take them all”, we tell him/her inventory orderable.
In case we need find out “how many on hold (for late despatch)”, we use the balance between inventory orderable and inventory in-stock.
Inventory orderable (figure 1) is built-in with Magento. Inventory coming (figure 3) is not essential to stock control. We can introduce it after we have implemented inventory in-stock (figure 2).