NovaWorks Low Stock Report for WooCommerce
NovaWorks Low Stock Report adds one screen to WooCommerce that answers a single question: what is about to run out? It lists every product and every variation with its current stock, its stock status, its backorder setting, the low stock threshold that actually applies to it, the units it sold in th
NovaWorks Low Stock Report adds one screen to WooCommerce that answers a single question: what is about to run out?
It lists every product and every variation with its current stock, its stock status, its backorder setting, the low stock threshold that actually applies to it, the units it sold in the last 30 days and how many days of cover that leaves. The view you land on is everything already at or below its own threshold, sorted so the item that runs out first is at the top.
The threshold column
WooCommerce lets you set a low stock amount on an individual product and falls back to a store-wide default when you have not. The report resolves that for every row and tells you which of the two it used, so the number in the threshold column is the number that applies to that product, and hovering it says whether it came from the product or from the store default. A product or variation that does not track stock gets no threshold and is never counted as low.
Days of cover
The days-of-cover column is units sold over the last 30 days, taken from the line items of your completed and processing orders, divided into the stock you hold now. An item that sold 60 units in 30 days with 30 in stock shows 15 days. Items with no sales in the window show a dash rather than a made-up number. The calculation is cached and rebuilt by a daily background job, so it does not run on a page load more than once per cache window.
Editing where you read
Change a stock quantity or a stock status in the table and it saves over AJAX through WooCommerce’s own product CRUD layer, so WooCommerce’s stock hooks fire and its transients and product lookup tables stay correct. Every row reports back: a green “Saved” with the value that is now stored, or a red line with the reason it was not written. Selected rows take bulk actions too: set stock to a value, increase or decrease by a number after a delivery, set a stock status, or turn stock management on or off.
A CSV round trip that shows its work
Export writes exactly the view you are looking at, every row in the filter and not only the page on screen, with the columns sku, name, type, stock, stock_status, threshold, units_30d and days_cover.
Import matches your rows by SKU and then stops. Uploading a file writes nothing. You get a preview table of every matched row with its current value, its new value and the difference, followed by the SKUs it could not find, the rows whose numbers it could not read and any SKU listed twice. Stock is written only after you press the confirm button, and each row’s outcome is reported afterwards.