The number of products whose stock has fallen to or below their low-stock threshold, the restock list before they sell out.
At a glance
Each OpenCart product carries a quantity and a stock status, and stores can set a low-stock threshold per product or as a store default. This card counts the SKUs that are at or below that threshold but not yet at zero. It is the early-warning list: these are the products to reorder before they tip into out of stock and start losing sales. The trigger is >0 so the restock signal is never silent, though many stores treat it as a working queue rather than an alarm.
| What it counts | COUNT(products) where on-hand quantity is greater than zero but at or below the low-stock threshold. |
| Threshold source | OpenCart supports a stock-warning configuration and per-product quantity tracking. Where a per-product low threshold is set we use it; otherwise we fall back to the store-level stock-warning setting. |
| Out of stock vs low stock | A SKU at zero is out of stock, not low stock; it moves to Out of Stock Products. This card is the band above zero. |
| Stock tracking off | OpenCart lets a product skip stock subtraction (subtract = No). Those products have no meaningful quantity and are excluded from this count. |
| Disabled products | A disabled product is not for sale, so a low quantity on it is not a commercial risk. The detail view can include or exclude disabled; the headline excludes them. |
| Options and variants | OpenCart tracks quantity at the product level by default, with optional per-option stock. Where per-option quantity is used, the connector evaluates the option stock. |
| Multi-store | Stock is shared across stores on one OpenCart instance (one oc_product quantity), so the count is per instance. |
| Time window | RT (real time, evaluated each sync) |
| Alert trigger | >0, driven by sentiment on inventory health |
| Roles | owner, operations |
Calculation
Worked example
A British outdoor-gear merchant on OpenCart 4.0 sells around 1,400 active SKUs. Their store-level stock warning is set to 5, and a few fast-movers have tighter per-product thresholds. On 12 Jun 26 the card reads 31 low-stock SKUs.| Category | Active SKUs | Low-stock SKUs | Notes |
|---|---|---|---|
| Tents | 90 | 3 | Peak season approaching |
| Sleeping bags | 120 | 11 | Supplier lead time 6 weeks |
| Cookware | 210 | 2 | Low risk |
| Headlamps | 64 | 9 | Single fast-moving SKU near zero |
| Clothing | 916 | 6 | Spread thin, low priority |
| Low-Stock SKUs (this card) | 1,400 | 31 |
- Eleven sleeping bags low against a six-week lead time is the real story. The headline of 31 is fine, but the lead time makes the sleeping-bag cluster urgent. A low-stock count is only actionable when read against supplier lead times; eleven SKUs that take six weeks to replenish need a purchase order today.
- Nine headlamps low, with one near zero, is a margin-of-safety problem. Headlamps sell fast. A SKU sitting at two units against a threshold of five can hit zero within a day of a good sales spike. This is the kind of SKU that should carry a tighter per-product threshold than the store default of 5.
- The clothing spread is noise. Six low SKUs across 916 is structurally normal for a long tail with many slow sellers. Treating every low-stock line as equally urgent wastes buyer time; the value is in the clustering by category and lead time.
- Low stock is the lead indicator, out of stock is the lagging one. Every SKU that lands in Out of Stock Products passed through this card first. Acting here is cheaper than acting there, because here you still have units selling.
- The trigger is
>0but the workflow is a queue. This card is best used as a daily restock worklist rather than an incident alarm. The alarm-grade inventory signal is the out-of-stock burst; this one is the planning list that keeps you out of it.
Sibling cards merchants should reference together
| Card | Why pair it with Low-Stock SKUs |
|---|---|
| Out of Stock Products | The lagging indicator. Every out-of-stock SKU was low stock first. Acting here prevents arrivals there. |
| Stock-Out Burst | A sudden cluster of SKUs hitting zero. Low stock is the runway; the burst is the crash. |
| Total Products | The denominator. Low-stock SKUs as a share of catalogue tells you whether replenishment is keeping pace. |
| Top-Velocity SKUs vs Ad Spend | A fast-moving SKU that is also low stock is the most urgent reorder of all. |
| Products Missing SKU / Model | Stock control depends on clean identifiers. Missing model numbers make purchase orders error-prone. |
Reconciling against OpenCart
Where to look in OpenCart admin: Catalog → Products shows each product’s quantity and status in the list. Reports → Products → Products Viewed and Products Purchased help you see velocity, but the cleanest stock view is the product list sorted by quantity ascending. The store-level stock-warning behaviour lives under System → Settings → your store → Option tab (Stock section), where you configure stock display and out-of-stock handling. The underlying data is thequantity, stock_status_id, and subtract columns on oc_product.
Other OpenCart views that look related but are not the same number:
- Reports → Products Purchased: a sales report, not a current-stock view.
- The storefront “out of stock” label: driven by stock status display settings, which can show in-stock even at zero depending on configuration.
- Catalog → Products total count: the whole catalogue, not the low-stock band.
| Reason | Direction of divergence |
|---|---|
| Threshold source. OpenCart’s native stock warning is a single store-level number. Where merchants set per-product thresholds outside the standard field (via an extension), our reading of the threshold may differ from the admin default. | Either direction |
Stock tracking off. Products with subtract = No have no real quantity. We exclude them; an admin list sorted by quantity may still show them at zero or a placeholder. | Vortex IQ lower |
| Disabled products. We exclude disabled products from the headline; an admin quantity sort includes them. | Vortex IQ lower |
| Per-option stock. Where option-level quantity is used, we evaluate the option; a product-level admin view may show a different aggregate. | Either direction |
Multi-currency / multi-store. Stock is shared across stores, so there is no per-store divergence, but a store_id-filtered product list can still look different. | Usually none |
| Sync lag. A sale in the last few minutes that pushed a SKU into the low band appears on the next sync. | Self-resolves at next sync |
Known limitations / merchant FAQs
What threshold does this card use? Where a per-product low-stock threshold is configured we use it; otherwise we fall back to the store-level stock-warning setting under System → Settings. If you want the count to match your buying process, set the threshold to reflect supplier lead time, not a flat number. Why is a SKU at zero not on this card? Because zero is out of stock, not low stock. Zero-quantity SKUs move to Out of Stock Products. This card is the band above zero, the SKUs you can still sell while you reorder. Do products with stock tracking turned off appear here? No. OpenCart lets a product skip stock subtraction (subtract = No), which means it has no meaningful quantity. Those are excluded because a low number on an untracked product is not real.
Are disabled products counted?
Not in the headline. A disabled product is not for sale, so a low quantity on it is not a commercial risk. The detail view can include them if you are auditing the full catalogue.
The count looks high, is that a problem?
Read it against lead time, not in isolation. Fifty low-stock SKUs with same-week replenishment is comfortable; five low-stock SKUs with a six-week lead time may be an emergency. Cluster by category and supplier before judging.
Does this handle product options and variants?
Where you track stock per option, the card evaluates option-level quantity. Where you track at the product level (the OpenCart default), it uses the product quantity.
Why does my admin product list show different numbers?
The admin quantity sort includes disabled and untracked products and uses the store-default threshold for everyone. This card excludes disabled and untracked SKUs and honours per-product thresholds, so the actionable count is usually smaller and cleaner.
Should I treat this as an alarm?
Most merchants treat it as a daily restock queue rather than an incident. The trigger is >0 so it is never hidden, but the alarm-grade inventory signal is the out-of-stock burst. This card is the planning list that keeps you out of that.