Inventory Management

Overview

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:

  • Maintain a catalog of parts you keep in stock with SKUs, costs, and reorder points
  • Track stock levels across multiple storage locations
  • Fulfill parts on jobs directly from inventory (bypasses vendor ordering)
  • Reserve inventory for scheduled jobs so stock isn't claimed by others
  • Replenish stock manually or via replenishment purchase orders
  • Low-stock alerts with configurable thresholds and "on the way" tracking
  • Auto-fulfill inventory parts when creating invoices
  • Barcode/SKU scanning for fast lookup
  • QuickBooks journal entries for Inventory Asset and COGS
Inventory Overview

Inventory Catalog

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.

Adding an Inventory Item
  1. Navigate to the Inventory section from the side menu.
  2. Click "Add Item".
  3. Fill in the item details:
    • Name (required) — descriptive name for the part.
    • SKU (optional) — unique part number for barcode lookup.
    • Unit Cost (required) — your acquisition cost, used for profitability calculations.
    • Default Sell Price (optional) — suggested price to charge on jobs.
    • Reorder Point (optional) — quantity threshold that triggers low-stock alerts.
    • Preferred Vendor (optional) — the vendor you typically order this from.
    • Category (optional) — maps to line item categories for filtering.
  4. Click "Save".
Editing & Archiving

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.

Inventory Catalog

Locations

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.

  1. Navigate to Inventory → Locations.
  2. Click "Add Location".
  3. Enter a name and optional description.
  4. Click "Save".

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.

Inventory Locations

Stock Levels

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 HandTotal physical stock at this location.
Quantity ReservedStock set aside for scheduled jobs (not yet consumed).
Available QuantityOn Hand minus Reserved — what's actually free to use.
Total StockSum 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.

Stock Levels

Fulfill from Inventory

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.

From the Parts Board
  1. Find the part in the "Pending" column on the Parts Board.
  2. Click the status dropdown and select "Fulfilled from Stock".
  3. A dialog appears asking you to select an inventory item and location.
  4. Choose the matching item (the system suggests matches based on SKU or category).
  5. Confirm. Stock is deducted and the part moves to the "From Stock" column.
From Line Items
  1. Expand a line item and find the part in the Parts subsection.
  2. Change the part status to "Fulfilled from Stock".
  3. Select the inventory item and location in the fulfillment dialog.

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.

Returns

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.

Fulfill from Inventory

Reservations

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.

Reserve a Single Part
  1. On a job's parts board or line items, find a pending part.
  2. Click "Reserve from Inventory".
  3. Select the inventory item and location.
  4. Confirm. The part's quantity is added to "Reserved" at that location.
Reserve All for an Order

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.

What Happens Next
  • Fulfill — When you fulfill the reserved part from inventory, both on-hand and reserved quantities are decremented together.
  • Release — If the part is removed from the job or cancelled, the reservation is automatically released and the reserved quantity goes back to available.
Inventory Reservations

Replenishment

Overview: When you receive new stock, record it as a replenishment to keep stock levels accurate.

Manual Replenishment
  1. Navigate to the inventory item detail page.
  2. Click "Replenish Stock".
  3. Select the location, enter the quantity received, and optionally update the unit cost.
  4. Add optional notes (e.g., vendor invoice number).
  5. Click "Save". Stock on hand increases immediately.
Bulk Replenishment

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.

Replenish Stock

Replenishment Purchase Orders

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.

  1. Navigate to Inventory → Replenishment POs.
  2. Click "Create Replenishment PO".
  3. Select a vendor and add line items from your inventory catalog (up to 50).
  4. Finalize the PO when ready to order.
  5. When items arrive, click "Receive" and enter the received quantities and locations.
Key Details
  • Stock is only updated when you explicitly receive items — finalizing the PO alone doesn't change stock levels.
  • Partial receiving is supported. You can receive a subset of items and come back later for the rest.
  • Over-receipts are allowed and recorded with a discrepancy quantity for auditing.
  • The PO must be finalized before you can receive against it.
  • QBO sync works the same as job-linked POs — expenses are synced based on the funding source.
Replenishment Purchase Order

Stock Adjustments

Overview: Adjust stock quantities to match physical counts, account for damaged goods, or correct discrepancies.

  1. Navigate to the inventory item detail page.
  2. Click "Adjust Stock" on the relevant location.
  3. Enter the new quantity (what you actually counted).
  4. Provide a reason (required, minimum 5 characters) — e.g., "Physical count discrepancy" or "Damaged goods removed".
  5. Click "Save".

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.

Stock Adjustment

Low-Stock Alerts

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.

How It Works
  • Set a Reorder Point on any inventory item (e.g., 5 means you want to be alerted when total stock drops to 5 or below).
  • The low-stock flag is automatically evaluated after every consumption, replenishment, return, and adjustment.
  • Items with a reorder point of 0 are excluded from low-stock alerts.
Replenishment Status

Low-stock items show one of two statuses to help you prioritize:

StatusMeaning
Needs ReorderItem is low and no replenishment PO is in progress.
On the WayItem 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.

Low-Stock Alerts

Auto-Fulfill on Invoice

Overview: Enable automatic inventory fulfillment so that when you create an invoice, matching inventory parts are automatically deducted from stock without manual intervention.

Enabling Auto-Fulfill
  1. Navigate to Inventory → Settings.
  2. Toggle "Auto-Fulfill on Invoice" to enabled.
How It Works
  • When an invoice is created, the system scans all pending parts on the invoice's line items.
  • Parts are matched to inventory items by SKU (exact match).
  • For each match with sufficient stock, the part is automatically fulfilled from the location with the highest available quantity.
  • If a part can't be auto-fulfilled (no match or insufficient stock), it's skipped and left in "Pending" status. Invoice creation is never blocked.

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.

Auto-Fulfill on Invoice

Quick-Save from Orders

Overview: See a part on a job that you'd like to start stocking? Save it to your inventory catalog with one click.

  1. On a job's line items, find the part you want to add to inventory.
  2. Click the "Add to Inventory" action on the part.
  3. Choose a location and optionally set an initial quantity on hand.
  4. Click "Save".

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.

Quick-Save to Inventory

Barcode / SKU Lookup

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.

  • Use a barcode scanner or manually type the SKU/part number.
  • 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 (no error), allowing you to fall back to manual search.

Barcode lookup works in the fulfillment dialog and in the inventory catalog search. The SKU field is what barcodes resolve against, so make sure your items have accurate SKUs.

Barcode / SKU Lookup

Transaction Ledger

Overview: Every stock change is recorded as an immutable transaction. The ledger provides a complete audit trail for any inventory item.

Transaction TypeMeaning
ConsumptionStock was deducted to fulfill a part on a job.
ReplenishmentStock was added (manual receive or PO receiving).
AdjustmentStock was manually adjusted (physical count, damage, etc.).
ReturnA 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.

Transaction Ledger

QuickBooks Integration

Overview: If you use QuickBooks Online, inventory transactions can automatically create journal entries to keep your balance sheet and P&L accurate.

Setup
  1. Navigate to Inventory → Settings → QuickBooks Accounts.
  2. Select your Inventory Asset account (balance sheet account for stock value).
  3. Select your COGS account (expense account for cost of goods sold).
  4. Click "Save".
What Gets Synced
EventJournal Entry
Part fulfilled from inventoryDebit COGS, Credit Inventory Asset
Stock replenished (via PO)Debit Inventory Asset, Credit source account
Part returned to stockDebit 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.

QuickBooks Integration