Skip to content

Garage Parts Inventory & Job Templates

Keep a catalogue of the parts your shop uses, with cost, charge price and stock levels, import or export it as CSV, and save common jobs as Job Templates that fill in parts and labor on a work order in one click.

Overview

  • Parts (Garage sidebar) opens Parts Inventory: every part of your current office with its SKU, Category, Cost, Charge, Margin and Qty, 25 per page.
  • Three tabs: Active, Low Stock and Disabled. A part is low on stock when it has a Reorder Point above 0 and its quantity on hand is at or below that reorder point.
  • There is no delete for parts. Disable a part you no longer use; you can enable it again at any time.
  • Import CSV adds parts in bulk, with a preview before anything is saved. Export downloads the active parts of your office as a CSV file.
  • Templates (Garage sidebar) opens Job Templates: named jobs (for example Oil Change) with a list of parts and labor lines. On the work order form, Apply Template adds a template's lines to the work order.
  • Stock goes down automatically when a work order with catalogue parts moves to In progress. See Parts inventory.
  • Parts and templates belong to the office you are working in. Each office has its own catalogue and its own templates.

Quick Start

Add a part:

  1. In the Garage sidebar, click Parts, then New Part.
  2. Enter the Name (required), and optionally the SKU, Category and Description.
  3. Enter the Purchase Price (your cost), the Charge Price (what the customer pays), the Qty on Hand and a Reorder Point.
  4. Click Create Part.

Create a job template:

  1. In the Garage sidebar, click Templates, then New Template.
  2. Enter the Template Name (required) and a Description.
  3. Under Parts, search for a catalogue part (or type a description) and set Qty, Cost and Charge. Click Add Part for more lines.
  4. Under Labor, enter a Description, Hours and Rate. Click Add Labor for more lines.
  5. Click Create Template.
  6. On a new or existing work order, pick the template under Apply Template and click Apply.

Access & Permissions

Role Parts and Templates
Admin Full access: create, edit, disable/enable, import, export
Manager Full access, for the offices they belong to
Garage Full access, for the first office on their user account (they cannot switch office)
Dispatch, Customer Service, Accountant, Customer, drivers and yard workers No access (the Garage menu item is hidden)
  • The Garage add-on must be turned on. See Garage Module Overview.
  • There are no finer permissions inside the Garage: anyone who can open it can manage parts and templates.

Where to find it:

  • Main menu Garage sidebar Parts — page Parts Inventory
  • Main menu Garage sidebar Templates — page Job Templates

The Parts Inventory Page

The page header shows Parts Inventory (Manage parts, pricing, and stock levels) with three buttons:

Button What it does
Import CSV Opens Import Parts (see Importing parts from CSV)
Export Downloads the active parts as CSV (see Exporting parts)
New Part Opens the New Part form

Tabs

Tab Shows
Active (default) All active parts
Low Stock Active parts whose Reorder Point is greater than 0 and whose quantity on hand is equal to or lower than the reorder point
Disabled Parts you have disabled

Parts with a Reorder Point of 0 are never low on stock

A part with Reorder Point 0 never appears on the Low Stock tab and never gets the red quantity badge, even when its quantity on hand is 0. Set a reorder point on every part you want to monitor.

Type in Search parts... and press Enter (or click ). The search matches part of the Name or the SKU, is not case-sensitive, and stays within the tab you are on.

Columns

The list is sorted by name, 25 parts per page.

Column What it shows
Name Part name
SKU Part number, or - if empty
Category Category, or - if empty
Cost Purchase Price
Charge Charge Price
Margin Margin as a percentage of the charge price (see below)
Qty Quantity on hand. Shown in a red badge when the part is low on stock
Actions edit, and disable (active parts) or enable (disabled parts)

Margin colours

Margin = (Charge Price − Purchase Price) ÷ Charge Price × 100, rounded to one decimal. A part with a charge price of 0 shows 0%.

Colour Margin
Green 50% or more
Yellow 30% to under 50%
Red Under 30% (including negative margins, when the cost is higher than the charge)

Empty list

When the tab has no parts, you see No parts yet — Add parts to your inventory to use them in work orders. — and a New Part button.


Adding and Editing a Part

Click New Part, or the edit icon on a row (page Edit Part: ).

Field Required Notes
Name Yes Shown in part searches on work orders and templates
SKU No Part number. Must be unique across all offices (see below). Searchable
Category No Pick from the list, or leave Select category...
Description No Free text
Purchase Price No (defaults to 0) Your cost. 0 or more, up to 2 decimals
Charge Price No (defaults to 0) Price charged to the customer. 0 or more, up to 2 decimals
Qty on Hand No (defaults to 0) Whole number, 0 or more
Reorder Point No (defaults to 0) Whole number, 0 or more. Above 0, it turns on the low stock warning

Click Create Part (new) or Update Part (edit). You return to the list with Part created successfully. or Part updated successfully. Cancel returns to the list without saving. If something is wrong, the form shows the errors in a red box at the top (for example Name can't be blank).

Categories

The Category list is fixed:

Brakes, Engine, Tires, Electrical, Suspension, Transmission, Cooling, HVAC, Exhaust, Filters, Fluids, Body, Lighting, Other.

You cannot add your own categories. Use Other for anything that does not fit.

SKUs are unique across all offices

When you save a part, its SKU must not be used by any other part, in any office, including disabled parts. The comparison is exact (ABC-1 and abc-1 count as different SKUs). If the SKU is taken, you see Sku has already been taken. Use a different SKU.

Changing a part's price

Work order and template lines keep the cost and charge they had when the part was added. Changing the price in the catalogue does not change existing work orders or templates.

Disabling and enabling a part

  • Click on an active part and confirm with Yes, proceed in the Are you sure? pop-up (Disable ?). The part moves to the Disabled tab with the message disabled.
  • On the Disabled tab, click to enable it again (no confirmation). Message: enabled.

A disabled part:

  • no longer appears in the part search on the work order form and the template form,
  • is left out of Export,
  • stays on the work orders and templates that already use it.

Adjusting stock

There is no separate stock-adjustment or receiving screen. To record parts you received or to correct a count, edit the part and change Qty on Hand.

Stock is taken out automatically when a work order moves to In progress (only for lines picked from the catalogue), and put back when such a line is removed from a work order that is In progress, Completed or on a draft invoice. Details: Parts inventory.


Importing Parts from CSV

Use Import CSV to add many parts at once. The import only adds new parts. It never updates or disables parts that already exist.

Step by step

  1. On Parts Inventory, click Import CSV. The Import Parts from CSV page opens.
  2. Optional: click Download Current Catalog as CSV Template to get a file with the right headers (it contains your current active parts).
  3. Prepare your CSV file (see CSV columns).
  4. Choose the file in the upload area and click Preview Import.
  5. Check the Import Preview page (see The preview page).
  6. Click Import N Parts (N is the number of rows ready to import), or Cancel to go back.
  7. You return to Parts Inventory with Import complete: X parts imported, Y skipped.

CSV columns

The first row must contain these column headers:

name, sku, category, description, purchase_price, charge_price, quantity_on_hand, reorder_point
Column Required How it is imported
name Yes Rows without a name are not imported
sku No Rows whose SKU already exists in your office (ignoring capitals) are skipped. SKUs must be unique across all offices
category No Must be exactly one of the categories, with the same spelling and capitals (for example Brakes, HVAC), or left empty
description No Free text
purchase_price No Plain number such as 12.50, 0 or more. Empty or not a number becomes 0. Do not use $ or thousands separators: $12.50 becomes 0 and 1,250.00 becomes 1
charge_price No Same rules as purchase_price
quantity_on_hand No Whole number. Empty, not a number or negative becomes 0; decimals are dropped
reorder_point No Whole number. Empty, not a number or negative becomes 0; decimals are dropped
  • Header names are not case-sensitive, and spaces are read as underscores (Purchase Price works like purchase_price). Columns can be in any order; other columns are ignored.
  • Spaces at the start and end of each value are removed.
  • Every imported part is active.

File rules and messages

Message Cause
Please select a CSV file. You clicked Preview Import without choosing a file
Please upload a CSV file (.csv). The file is not a CSV
File too large. Maximum size is 1 MB. The file is larger than 1 MB
Invalid CSV file: ... The file could not be read as CSV (for example a broken quote). The message gives the technical reason
No CSV data found. Please upload again. The uploaded file was no longer available when you clicked Import N Parts (for example you clicked it a second time, or reloaded the page). Upload the file again

The preview page

Import Preview shows three counters:

Counter Meaning
Ready to import Rows that passed the preview checks
Duplicate SKUs (will skip) Rows whose SKU already exists in your current office
Invalid rows (will skip) Rows with a problem (see below)

Below the counters:

  • Parts to Import (N) lists the rows ready to import, with Row (the line number in your file, the header being line 1), Name, SKU, Category, Cost, Charge and Qty. Only the first 20 rows are listed, followed by ...and N more rows.
  • Skipped Rows lists the duplicate and invalid rows, with Row, Name (or (blank)), SKU and Issue.
  • If no row is ready, you see No valid rows found. Please check your CSV and try again. and a Try Again link.

Nothing is saved until you click Import N Parts.

What the preview checks

Issue shown Rule
SKU already exists The SKU matches a part of your current office (active or disabled), ignoring capitals
Name is required The name column is empty
Purchase price must be >= 0 purchase_price is negative
Charge price must be >= 0 charge_price is negative

A row with a duplicate SKU is listed only as a duplicate, even if it also has other problems.

Parts without a SKU are never treated as duplicates

The duplicate check only works on SKUs. If you import the same file twice, or re-import the Download Current Catalog as CSV Template file, every row without a SKU is added again as a new part. Give your parts a SKU, or remove rows you have already imported.


Exporting Parts

Click Export on Parts Inventory (or Download Current Catalog as CSV Template on the import page). The browser downloads parts_catalog_YYYYMMDD.csv (today's date, for example parts_catalog_20261010.csv).

  • It contains the active parts of your current office, sorted by name. Disabled parts are not exported.
  • It ignores the tab and search you are on: it always exports all active parts.
  • Columns: name, sku, category, description, purchase_price, charge_price, quantity_on_hand, reorder_point — the same headers the import expects.

Job Templates

A job template is a reusable job: a name, a description, and lists of parts and labor lines with their quantities, hours and prices. Templates are only used to fill in work orders; changing a template later does not change work orders it was applied to.

The Job Templates page

Click Templates in the Garage sidebar. The page Job Templates (Pre-defined jobs to quickly populate work orders) has a New Template button and two tabs:

Tab Shows
Active (default) Templates you can apply to work orders
Disabled Templates you have disabled

The list is sorted by name, 20 per page, and has no search box.

Column What it shows
Name Template name
Description The description, shortened to 60 characters (ending with ...) when longer
Parts Number of part lines
Labor Number of labor lines
Actions view, edit, and disable (active) or enable (disabled)

When the tab is empty, you see No templates yet — Create reusable job templates to speed up work order creation. — and a Create Your First Template button.

Creating and editing a template

Click New Template, or on a row (page Edit Template).

Field Required Notes
Template Name Yes For example Oil Change, Brake Service. Shown in the Apply Template list on work orders
Description No Short description of the job

Parts section (one row per part, Add Part adds a row, removes one):

Column Notes
Part / Description Type at least 2 characters to search active catalogue parts by name or SKU (up to 15 results, shown as Name (SKU)). Picking a part links the line to the catalogue and fills in Cost and Charge from the catalogue. You can also type a free description without picking a part
Qty Whole number, at least 1. Defaults to 1
Cost Purchase price for the line. 0 or more
Charge Price charged to the customer. 0 or more

When a line is newly linked to a catalogue part and you leave Cost or Charge at 0, or leave the description empty, the template takes the part's catalogue values when you save.

Labor section (one row per labor line, Add Labor adds a row, removes one):

Column Required Notes
Description Yes For example Replace front pads
Hours Yes 0 or more, in steps of 0.25
Rate Yes Hourly rate, greater than 0. It is not taken from Garage Settings; enter it on each line

Click Create Template or Update Template. You return to the list with Template created successfully. or Template updated successfully. Cancel returns without saving. If something is wrong, a red box lists the errors (N errors prevented this template from being saved:).

Remove empty rows you don't need

A new template starts with one empty part row and one empty labor row (a template being edited with no parts or no labor also shows one). If the template has no labor, remove the empty labor row with before saving, since every labor line needs a Description and a Rate. Likewise, remove an unused empty part row so the template only lists the parts you need.

Viewing a template

Click on a row. The page shows the template name and description, an Edit button, and two tables:

  • Parts: Description, Qty, Cost, Charge (or No parts in this template).
  • Labor: Description, Hours, Rate (or No labor in this template).

Back to Templates returns to the list.

Disabling and enabling a template

  • Click on an active template and confirm with Yes, proceed (Disable this template?). Message: