Inventory & Vendors
TheGarageOS treats inventory as a financially-tracked subsystem, not just a parts list. Every receipt, every adjustment, every return flows through the weighted-average cost engine, so job P&L and margins are always accurate.
Vendors
Inventory → Vendors is your supplier list.
Each vendor record carries:
- Name + contact info (phone, email, address).
- Payment terms (Net 30, COD, etc.).
- Vendor ledger — every charge and payment, with running balance.
- Purchase order history.
- Warranty claims raised against them.
From a vendor's detail page you can:
- Add a ledger entry (charge or payment).
- See all open POs for this vendor.
- Track average delivery time and claim rate.
Products
Inventory → Products is your parts catalogue.
Each product has:
- SKU + name + category.
- Unit (piece, liter, kg, etc.).
- Sale price + tax rate.
- Cost price — automatically tracked as weighted-average cost (WAC) from purchase receipts. You can also override per-product.
- Stock level + low-stock threshold.
- Multi-tier pricing (optional) — e.g. retail vs. wholesale.
- Warranty terms — primary and supplier-side.
From a product's detail page you can:
- See the price ledger — every price change with timestamp and user.
- See the stock ledger — every movement with reference (PO, sale, adjustment, return).
- Make a manual stock adjustment with reason.
Categories
Inventory → Categories — flat list or simple hierarchy. Used for
product organization, low-stock reports, and reporting.
Purchase orders
Inventory → Purchase Orders is the procurement workflow.
Lifecycle
draft → sent → partially_received → received → invoiced → paid
→ cancelled
| Status | What it means |
|---|---|
draft | Being built — not sent to vendor yet. |
sent | Sent to vendor — awaiting acknowledgment. |
partially_received | Some line items received. |
received | All line items received. |
invoiced | Vendor invoice recorded against this PO. |
paid | Payment posted against the PO. |
cancelled | Cancelled before receipt. |
PO actions
- Create — pick a vendor, add line items (product + quantity + expected cost).
- Send — emails the PO to the vendor.
- Receive — record partial or full receipt. Receipts post to the stock ledger and update weighted-average cost in real time.
- Invoice — generate a vendor invoice from the PO.
- Pay — record payment against the invoice. Posts to the GL.
- Cancel — void an unreceived PO.
Each PO line carries the per-line expected cost, received quantity, and per-line pricing.
Warranty management
Inventory → Warranty handles end-to-end warranty claims.
Lifecycle
customer_claimed → sent_to_vendor → received_from_vendor
→ return_to_customer → resolved
→ rejected
- Customer claims — record what failed, with photos and the original job / sale reference.
- Send to vendor — submits the claim to the vendor.
- Receive from vendor — records vendor resolution (replaced, repaired, rejected).
- Return to customer — closes the loop with the customer.
- Reject — claim denied.
Warranty claims can be linked to product returns (Sales → Returns → Link to Warranty) for unified tracking.
Stock adjustments
Sometimes you need to correct stock without a PO — breakage, found stock, theft, cycle count.
Inventory → Products → Stock Adjust lets you make a manual
adjustment with a reason. Every adjustment is logged with user,
timestamp, and reason in the stock ledger.
Low-stock alerts
The dashboard surfaces a low-stock count — products at or below their low-stock threshold. Combine with a purchase order workflow to keep your shelves full.
Tips
- Weighted-average cost means your job P&L is always true — no manual cost overrides needed.
- Price ledger + stock ledger are append-only — you get a complete audit trail.
- Vendor ledger mirrors the customer ledger — same accounting rigor for what you owe.
Next: Sales & POS, or the user journey.