Parts in Pistonlog live inside the jobs of a jobcard. Each part records a description, quantity, unit cost (what you paid) and sale price (what the customer pays), and can move through a series of order statuses to track its progress from "needed" through "fitted".
What the parts module covers
- Adding parts on a jobcard — line items under each job
- The parts catalogue — a per-garage library of frequently-used parts so you don't retype them
- Suppliers — who you buy from
- Returns — for parts you didn't end up using
- Cost vs price — internal unit cost (gated behind
parts.view_cost) is never shown to the customer; sale price is what appears on the invoice
Cost-visibility rule
A technician sees the part in the job and knows what it does — but doesn't see what the garage paid for it. The Unit Cost column is permission-gated behind parts.view_cost, so only roles with that key (owner, manager) can see the buying price. Customers never see it on a printout.
See Permissions reference for the full matrix.
Related
In this section
Adding parts to a jobcard
Add a part to a job — description, quantity, unit cost, sale price. Pre-fill from the catalogue.
Part order statuses
The seven order statuses — pending, ordered, arrived, fitted, return_required, return_sent, credited
Parts catalogue
A per-garage library of frequently-used parts — pre-fill jobcard rows in one tap
Suppliers
Manage your suppliers — name, contact, account number — and link them to parts
Parts returns
Process parts flagged for return — grouped by supplier, batch-update statuses, reconcile credits
Unit cost visibility
The unit cost column is gated by parts.view_cost — owners and managers see it, reception and technicians don't