Reorder Points
Per-Product or per-category min/max stock thresholds, each set for one inventory location, that flag low stock and drive reorder suggestions.
A reorder point is the floor (and optional ceiling) you set for a Product's on-hand stock. When measured stock drops below the min amount, the Product is marked low and becomes a candidate for a reorder suggestion. The max amount tells the suggestion engine how much to order up to, so purchase quantities land in a sensible range rather than swinging to an arbitrary number.
Reorder points are the configuration layer; the reorder suggestions engine is what reads them to produce actionable purchase recommendations. Setting thresholds here is what makes the suggestion engine useful.
Where to set reorder points #
Reorder points live on the things being tracked, not in a separate admin screen. The Reorder Points tab appears on every Product, Category, and Kit detail page, and it behaves the same in each place:
- Product → Reorder Points tab — thresholds that apply to that specific Product only.
- Category → Reorder Points tab — thresholds that apply to every Product in the category. Category-level points are especially useful for large families of similar units where you want a shared floor without configuring each Product individually.
- Kit → Reorder Points tab — thresholds stored against the kit record. Note that current-stock measurement for kit-based points is not yet calculated (the system cannot currently sum assembled-kit stock the way it sums Product quantities), so kit reorder points will not trigger low-stock flags or appear in the reorder suggestions engine at this time.
You can mix and match: set a category default and then override it on any individual Product that needs a tighter or looser threshold.
Creating a reorder point #
From the Reorder Points tab on a Product or category, click + New to open the form:
- Location — which inventory location the threshold applies to. Required. Add one point per location if your business runs different safety stocks in different places.
- Min Amount — the quantity below which the Product is considered low. The
isBelowMinflag is checked against real-time on-hand stock calculated in the Product's own unit of measure. Leave blank to signal "no minimum enforced." - Max Amount — the desired stock ceiling. Reorder suggestions use this to compute an order-up-to quantity (max − on-hand − on-order), so it — not the minimum — is what decides how large a suggested order is. A Min of 5 and a Max of 50 with one unit on the shelf suggests 49, not 4. Optional: leave it blank and the suggestion covers the vendor's lead time plus a fixed period of demand instead.
- Unit of Measure — the unit label to display alongside the amounts (e.g.,
each,lb,ml). Defaults to the Product's unit of measure if you leave it empty.
Every reorder point names a location. Earlier versions let you leave it blank, and it was never clear what that meant — the default for every location without one of its own, or a single figure for the company as a whole. It could not act either way: the automatic purchase orders and transfers are raised for a named location, so a blank one never produced either. A shortfall has to end with stock arriving somewhere.
If you have points from before this change, the ones on an account with a single location were given that location automatically — it means exactly what it meant before. Where there was more than one location to choose between they were left alone for you to settle, because spreading one minimum across every location asks for far more cover than you set.
How current stock is measured #
The system calculates current stock in the same units as the reorder point when deciding whether a threshold is breached:
- For a Product-based point, it sums each matching unit's remaining quantity
(factoring in the Product's unit size). For example, a Product with
amount = 500 mland a unit at 50% remaining contributes 250 ml to the total. - For a Category-based point, it totals the same calculation across every Product in that category.
Only units at the point's own location are counted.
The isBelowMin check compares this live total against reorder_min_amount, so
the flag updates in real time as units are consumed, transferred, or received.
Low-stock indicators #
Products breaching their minimum appear with a low-stock indicator in the Product list. The list can be filtered by stock status to show only Products that are currently below their minimum — useful for a quick daily review before generating purchase orders.
A Product that no minimum applies to shows nothing in that column rather than an OK — there is no minimum to be above.
Which point the column reads matters here. Low and OK are about the Product's own reorder points. A point on the category is enough to stop the cell being blank, but a category's shortfall is a fact about the category rather than about each Product inside it, so it does not turn those Products' rows red. Put a point on the Product itself if you want that Product's own row on the list to say so.
The reorder suggestions page reads from the same data: every below-minimum Product is a candidate there, pre-populated with a suggested quantity computed from usage trends and vendor lead times.
Editing and deleting #
From the Reorder Points tab, click the edit icon on any row to update its location, min, max, or units. Click the delete icon to remove the threshold entirely — the Product is then unmonitored unless a category-level point still applies. Deletes are soft; historical records are retained for auditing.
Reorder points vs. reorder suggestions #
These two features work together but serve different purposes:
| Reorder Points | Reorder Suggestions | |
|---|---|---|
| What it is | Your stated threshold | The system's purchase recommendation |
| Set by | You, per Product / category | Calculated automatically |
| Location scope | Per location (required) | Per location (required) |
| Action it drives | Low-stock flag | Draft purchase order quantity |
Reorder points are the input; suggestions are the output. If a suggestion looks wrong, adjust the reorder point or the vendor's lead time on the Vendor SKU record.
Doing it from the API #
# List all reorder points (paginated, 50 per page)
curl "https://your-domain.com/api/v1/inventory/reorder-points" \
-H "Authorization: Bearer $TOKEN"
# Filter to a specific Product
curl "https://your-domain.com/api/v1/inventory/reorder-points?product_id=<product-id>" \
-H "Authorization: Bearer $TOKEN"
# Create a reorder point on a Product, at one location
curl -X POST "https://your-domain.com/api/v1/inventory/reorder-points" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target_type": "sku",
"target_id": "<product-id>",
"location_id": "<location-id>",
"reorder_min_amount": 10,
"reorder_max_amount": 50,
"units": "each"
}'
reorder_min_amountandreorder_max_amountare decimal quantities in the Product's own unit of measure — not cents. A Product measured in litres uses litres here; a Product counted by the piece uses whole numbers.