The Inventory Management system lets you maintain an on-hand parts catalog with tracked stock levels. Instead of ordering every part from a vendor, technicians can fulfill commonly-stocked items (filters, fluids, fasteners, etc.) directly from shop inventory. This provides a faster workflow and integrates with the parts board, line items, purchase orders, profitability reports, and QuickBooks Online.
Key capabilities include:

Overview: The inventory catalog is where you manage all the parts your shop keeps in stock. Each item has a name, optional SKU, unit cost, default sell price, reorder point, preferred vendor, and category.
Click any item to edit its details. To remove an item from active use without losing history, click "Archive". Archived items no longer appear in fulfillment searches but their transaction history is preserved.
SKUs must be unique within your company. If you try to use a SKU that's already taken, you'll get an error.

Overview: Locations represent physical storage areas within your shop (e.g., "Main Shelf", "Back Warehouse", "Van #1"). Stock levels are tracked per item per location, so you always know where parts are stored.
A default location named "Default" is created automatically when you add your first inventory item. Location names must be unique (case-insensitive). You cannot deactivate a location that still has stock — transfer or adjust stock to zero first.

Overview: Stock levels show the current quantity on hand and quantity reserved for each item at each location. The available quantity is calculated as on-hand minus reserved.
| Field | Meaning |
|---|---|
| Quantity On Hand | Total physical stock at this location. |
| Quantity Reserved | Stock set aside for scheduled jobs (not yet consumed). |
| Available Quantity | On Hand minus Reserved — what's actually free to use. |
| Total Stock | Sum of on-hand across all locations for the item. |
The system uses optimistic locking to handle concurrent updates. If two people try to modify the same stock at the same time, the second operation will be asked to retry.

Overview: When a part on a job can be fulfilled from stock instead of ordered from a vendor, you can consume it directly from inventory. This transitions the part from "Pending" to "Fulfilled from Stock", bypassing the entire ordering workflow.
The part's cost is automatically set to the inventory item's unit cost at the time of fulfillment. This cost is locked in — if you later update the inventory item's cost, previously fulfilled parts keep their original cost for accurate profitability reporting.
If a part fulfilled from inventory needs to be returned, transition it to "Returned" status. The returned quantity is added back to the original stock location automatically.

Overview: Reserve inventory for a scheduled job to guarantee stock is available when the technician needs it. Reservations set aside quantity without actually consuming it — the stock stays on hand but can't be claimed by other jobs.
Use the "Reserve All" action on a repair order to automatically attempt reservations for all pending parts that match inventory items (by SKU or category). The system returns a summary showing which parts were reserved and which were skipped due to insufficient stock.

Overview: When you receive new stock, record it as a replenishment to keep stock levels accurate.
Received a shipment with multiple items? Use bulk replenish to record up to 50 items in a single action. If any item fails validation, the entire batch is rejected to keep your data consistent.
When you include a new unit cost with a replenishment, the inventory item's cost is updated to reflect your latest acquisition price. This new cost applies only to future fulfillments — previously fulfilled parts keep their original cost.

Overview: For larger restocking, create replenishment purchase orders that are not tied to any specific repair order. These work just like job-linked POs but exist purely for restocking your inventory.

Overview: Adjust stock quantities to match physical counts, account for damaged goods, or correct discrepancies.
Adjustments cannot set the quantity below the reserved amount. If parts are reserved at a location, you'll need to release reservations before adjusting below that threshold.
Every adjustment is recorded in the transaction ledger with both the previous and new quantities, the reason, and who performed it.

Overview: Configure reorder points on inventory items so you know when stock is running low. The system flags items as "low stock" when their total on-hand quantity falls at or below the threshold.
Low-stock items show one of two statuses to help you prioritize:
| Status | Meaning |
|---|---|
| Needs Reorder | Item is low and no replenishment PO is in progress. |
| On the Way | Item is low but a replenishment PO already exists for it. |
A badge on the Inventory section shows the count of low-stock items so you can spot issues at a glance.

Overview: Enable automatic inventory fulfillment so that when you create an invoice, matching inventory parts are automatically deducted from stock without manual intervention.
After auto-fulfill runs, you'll see a summary showing how many parts were fulfilled and how many were skipped.
When disabled (the default), inventory fulfillment is entirely manual.

Overview: See a part on a job that you'd like to start stocking? Save it to your inventory catalog with one click.
The system creates an inventory item using the part's existing data (description becomes name, part number becomes SKU, cost, vendor, and category are carried over). If an item with the same SKU already exists, the existing item is returned instead of creating a duplicate — and if you provided an initial quantity, it's added to the existing item's stock.

Overview: Scan a barcode or type a part number to instantly find the matching inventory item. This is the fastest way to identify and fulfill parts from stock.
If exactly one active item matches and has available stock, it's returned immediately — ready to fulfill. If no match is found, the system returns nothing, allowing you to fall back to manual search.
The camera scan button appears in the Fulfill from Stock dialog and anywhere the barcode scanner input is used. The SKU field is what barcodes resolve against, so make sure your items have accurate SKUs.
For shops that want a dedicated hardware scanner instead of (or in addition to) the phone camera:
Both the camera and hardware scanner paths use the same SKU lookup — no configuration needed.

Overview: Print barcode labels for your parts bins and shelves. Technicians can then scan the label to instantly look up or fulfill a part without knowing the SKU.
Items without a SKU cannot have labels printed. Add a SKU first.
Items without a SKU are automatically excluded with a note showing how many were skipped.
| Format | Best For | Printer |
|---|---|---|
| Dymo 30336 | Printing individual labels as items come in | Dymo LabelWriter (~$70–$100) |
| Avery 5160 | Batch printing a full shelf's worth of labels at once | Any inkjet or laser printer |
Each label shows a Code 128 barcode (encoding the SKU) and the item name centered below it. The barcode is readable by both phone cameras and hardware scanners.
Overview: Every stock change is recorded as an immutable transaction. The ledger provides a complete audit trail for any inventory item.
| Transaction Type | Meaning |
|---|---|
| Consumption | Stock was deducted to fulfill a part on a job. |
| Replenishment | Stock was added (manual receive or PO receiving). |
| Adjustment | Stock was manually adjusted (physical count, damage, etc.). |
| Return | A previously fulfilled part was returned to stock. |
Each transaction records: what changed, how much, previous and new quantities, who did it, when, and a reference to the related entity (part, PO, etc.).
You can filter transactions by item, location, type, and date range. Use the transaction summary to see totals for consumption, replenishment, adjustments, and returns over a given period.
Transactions cannot be edited or deleted — they serve as a permanent audit trail.

Overview: Associate inventory items with specific vehicle make, model, and year range combinations so technicians can quickly find which parts fit a given vehicle. When a job has a vehicle assigned, the system suggests matching inventory parts and lets you search your catalog by vehicle fitment.
You can add as many vehicle applicability entries as needed per item. For example, an oil filter might fit dozens of different vehicle combinations.
Need to tag multiple parts with the same vehicle fitment? Select up to 50 items from the inventory list, then click "Set Vehicle Fitment". A modal lets you configure the make, model, and year range once and apply it to all selected items in a single action.
Use the vehicle filter on the inventory items list to find all parts that fit a specific vehicle. Select a make, optionally a model, and optionally a year — the list filters to show only items with matching applicability entries.
When a repair order has a vehicle with make and model information, the system automatically suggests matching inventory parts in a "Suggested Parts" panel. This lets technicians quickly see what's in stock for the vehicle they're working on, without manually searching the catalog.

Overview: If you use QuickBooks Online, inventory transactions can automatically create journal entries to keep your balance sheet and P&L accurate.
| Event | Journal Entry |
|---|---|
| Part fulfilled from inventory | Debit COGS, Credit Inventory Asset |
| Stock replenished (via PO) | Debit Inventory Asset, Credit source account |
| Part returned to stock | Debit Inventory Asset, Credit COGS (reversal) |
If QBO accounts are not configured, inventory transactions proceed normally without creating journal entries. If QBO is temporarily disconnected, entries are queued and synced automatically when the connection is restored.
Each journal entry includes a memo referencing the transaction type, item name, and related order or PO for easy identification in QBO reports.
