> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vortexiq.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Low-Stock SKUs, OpenCart

> Count of OpenCart SKUs at or below their low-stock threshold. Tracked live in Vortex IQ Nerve Centre. How to read it, why it matters, and how to act on it.

**Card class:** [Standard](/nerve-centre/overview#card-classes-explained)  •  **Category:** [Ecommerce Platform](/nerve-centre/connectors#connectors-by-type)

> 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](/nerve-centre/kpi-cards/opencart/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

```
COUNT(products)
  WHERE quantity > 0
    AND quantity <= low_stock_threshold
    AND subtract_stock = true
    AND status = enabled
```

## 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**         |                                  |

What's interesting here:

1. **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.
2. **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.
3. **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.
4. **Low stock is the lead indicator, out of stock is the lagging one.** Every SKU that lands in [Out of Stock Products](/nerve-centre/kpi-cards/opencart/out-of-stock-products) passed through this card first. Acting here is cheaper than acting there, because here you still have units selling.
5. **The trigger is `>0` but 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](/nerve-centre/kpi-cards/opencart/out-of-stock-products)                 | The lagging indicator. Every out-of-stock SKU was low stock first. Acting here prevents arrivals there.  |
| [Stock-Out Burst](/nerve-centre/kpi-cards/opencart/stock-out-burst)                             | A sudden cluster of SKUs hitting zero. Low stock is the runway; the burst is the crash.                  |
| [Total Products](/nerve-centre/kpi-cards/opencart/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](/nerve-centre/kpi-cards/opencart/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](/nerve-centre/kpi-cards/opencart/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 the `quantity`, `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.

**Why our number may legitimately differ:**

| 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 |

**Cross-connector note:** when an ad connector is linked, cross-reference low-stock fast-movers against live ad spend. Paying to drive traffic to a SKU that is about to sell out wastes budget and frustrates shoppers; [Top-Velocity SKUs vs Ad Spend](/nerve-centre/kpi-cards/opencart/top-velocity-skus-vs-ad-spend) makes that link explicit.

<details>
  <summary><em>Same-metric documentation cross-reference (for agencies running multiple platforms)</em></summary>

  The same low-stock concept exists on other commerce platforms with their own threshold mechanisms. This is not a reconciliation; your OpenCart store has no parallel store elsewhere. These cross-links let agencies running multi-platform client books navigate between equivalent inventory metrics across the docs.

  * [`shopify.low_stock_skus`](/nerve-centre/kpi-cards/shopify/low-stock-skus) (planned)
  * [`bigcommerce.low_stock_skus`](/nerve-centre/kpi-cards/bigcommerce/low-stock-skus) (planned)
</details>

## 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](/nerve-centre/kpi-cards/opencart/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.

***

### Tracked live in Vortex IQ Nerve Centre

*Low-Stock SKUs* is one of hundreds of KPI pulses Vortex IQ tracks across OpenCart and 70+ other ecommerce connectors. Nerve Centre runs the detection layer; Vortex Mind investigates the cause when something moves; Ask Viq lets you interrogate any number in plain English.

[Start for free](https://app.vortexiq.ai/login) or [book a demo](https://www.vortexiq.ai/contact-us) to see this metric running on your own data.
