ReferenceInventory & purchasing

Inventory

Open Inventory in Thermal →

What it's for

Inventory is what you have, where it is, and what needs ordering. It covers warehouse shelves and van stock alike, because a part on a truck is stock too — it is just stock that moves.

Reach it from Materials & Purchasing → Inventory in the sidebar, at /inventory. Cylinders have their own view at Cylinders.

Tabs

  • Parts — the catalogue of stocked items.
  • Cylinders — refrigerant cylinders, tracked individually by serial.

Panels and controls

The list

  • Search covers the list — "Search inventory…".
  • Filters, each with a count: All, Low, Out, Trucks, and On order. Low and Out are the working views; Trucks answers "who has it" when the warehouse shelf is empty.
  • Columns: Part · Code, Category, Stock level, Avail, On hand, Reorder pt, Avg cost, and Actions. Avail is what you can promise; On hand is what is physically there — the gap is what is already committed to jobs.

Bulk actions

Adjust stock, Transfer, Set reorder pt, and Create PO for the ticked items. Creating purchase orders straight from the low list is the loop this screen is built around.

Locations

Create location adds a warehouse or a van. A van location can be assigned to a technician; a warehouse cannot — "Only van locations can be assigned to a technician." One location is the default warehouse, and it cannot be archived while it holds that role.

Restock requests

Technicians can ask for stock; requests show Item, Destination, Requested, Fulfilled, Remaining, Warehouse, and Status. Fulfill ships it, Queue request raises one. No pending restock requests is the empty state.

Archiving

Nothing with stock in it can be archived — "This item still has stock on hand — transfer or zero it out before archiving." and "This location still has stock — transfer it out before archiving." That is deliberate: archiving stock you still physically own would make the ledger lie.

What it accepts

FieldFormatRequiredRule
NameFree text — "e.g. 24V Transformer"Yes"Name is required."; "Name is too long."
CategoryFree text — "e.g. Refrigerant"No"Category is too long (100 characters max)."
Reorder point / thresholdA whole number, 0 or moreNo"Reorder point must be a whole number ≥ 0."
Unit costCents, 0 or moreNo"Unit cost must be 0 or greater."
Track individual unitsOn or offNoTurns on serial-level tracking
Preferred vendorPick a vendorNo"Vendor not found."
Vendor part #Free textNo
Lead timeDays, 0 or moreNo"Lead time must be 0 or greater."
Pricebook itemPick an itemNoOne inventory item per catalogue entry — "Another inventory item is already linked to that pricebook entry."
Location nameFree text — "e.g. Main Warehouse"Yes"Location is required."
Location typeWarehouse or vanYes
Assigned technicianPick a technicianVans only"Only van locations can be assigned to a technician."
AdjustmentA nonzero whole numberYes, to adjust"Enter a nonzero whole-number adjustment."
From / To locationPick locationsYes, to transferMust both be set and must differ; "Not enough stock at the source location."
QuantityA whole number greater than 0Yes, to transfer
Target quantityA whole numberNo"Target quantity must be greater than or equal to minimum quantity."

How to configure it

  • Inventory settings decide how stock is valued and whether reorder alerts are raised automatically.
  • Price book settings supply the catalogue items an inventory item links to.
  • Purchasing settings decide what happens when Create PO is used from a low-stock row.
  • Branches decide which locations belong where.

Who can see it

This screen sits behind the Inventory area.

Owners and office managers can open it. Dispatchers and technicians cannot — a technician sees their own van stock in the field app and raises restock requests from there. The gate is checked on the server, not just hidden in the sidebar, so a direct link does not get around it.

The full role matrix is on Roles & permissions.

On this page