Garage Door OS Docs

Inventory Management

The inventory system automatically tracks stock levels across estimates, invoices, and jobs. When you add items from your price book, the system manages reservations and deductions.

How It Works

The inventory system follows a reservation-based workflow to ensure accurate stock tracking:
1. Estimate Created
Inventory is reserved (put on hold) for the items
2. Invoice Created
Reservations are fulfilled, stock is deducted
3. Stock Updated
Available quantity reflects actual inventory
4. Transaction Logged
Full audit trail of all changes

Stock Level Fields

Each inventory item tracks multiple quantities to support the reservation workflow:
FieldDescriptionExample
quantityTotal stock at location100 units
availableQuantityStock available for new sales85 units
reservedQuantityStock reserved for pending estimates/jobs15 units
damagedQuantityStock marked as damaged0 units

Inventory Actions

Here's how different actions affect your inventory:
ActionEffectStock Level Changes
Create EstimateInventory reserved (put on hold)reservedQuantity ↑, availableQuantity ↓
Invoice from EstimateReservations fulfilled, stock consumedquantity ↓, reservedQuantity ↓
Direct InvoiceStock directly deductedquantity ↓, availableQuantity ↓
Cancel Estimate/JobReservations releasedreservedQuantity ↓, availableQuantity ↑
Complete JobReservations fulfilledquantity ↓, reservedQuantity ↓

Estimate Reservations

When you create an estimate with price book items that have inventory components:
  • Automatic Reservation: The system automatically reserves the required inventory quantities
  • Expiration: Reservations expire based on the estimate's "Valid Until" date (default 30 days)
  • Multiple Options: If your estimate has multiple pricing options, reservations are made for the selected option
  • Component-Based: If a price book item has multiple inventory components, each is reserved

What Happens to Reservations

Estimate → Invoice
Reservations are fulfilled and inventory is consumed
Estimate → Job
Reservations transfer to the job
Estimate Cancelled
Reservations are released back to available stock

Invoice Inventory Deduction

Inventory is deducted when invoices are created. The process differs based on how the invoice is created:

Invoice from Estimate

  • Existing estimate reservations are marked as 'fulfilled'
  • Inventory is deducted from the reserved quantity
  • A transaction record is created for audit purposes
  • The reservation is linked to the invoice

Direct Invoice (No Estimate)

  • System identifies price book items with inventory components
  • Inventory is deducted directly from available quantity
  • A transaction record is created with 'invoice_consumption' type

Smart Invoice Creation

To help avoid duplicate work and ensure proper inventory tracking, the system includes smart estimate detection:

How It Works

  • Customer Selection: When you select a customer for a new invoice, the system checks for open estimates
  • Auto-Load: If estimates exist, the most recent one is automatically selected and its items are loaded
  • Alert Shown: An alert notifies you that an estimate was auto-loaded
  • User Choice: You can continue with the estimate or dismiss it to create a fresh invoice

Benefits

Accurate Inventory
Using the estimate ensures reservations are properly fulfilled
No Duplicates
Prevents creating multiple invoices for the same work
Time Savings
Auto-populates customer info, items, and pricing

Transaction History

All inventory changes are recorded in the transaction history for complete audit trails:
Transaction Types:
  • invoice_consumption Invoice deduction
  • job_consumption Job completion deduction
  • transfer Location transfer
  • receipt Inventory received
Transaction Details:
  • Reference to invoice/job/estimate
  • Quantity changed
  • Timestamp
  • Notes

Best Practices

Do:
  • ✅ Create estimates before invoices when possible
  • ✅ Use the auto-selected estimate when available
  • ✅ Set accurate "Valid Until" dates on estimates
  • ✅ Link price book items to inventory for tracking
Avoid:
  • ❌ Creating direct invoices when an estimate exists
  • ❌ Ignoring low-stock warnings
  • ❌ Deleting estimates instead of cancelling them
  • ❌ Creating duplicate estimates for the same work

Related Topics

Inventory Management
Estimates
Invoices