Skip to content

Auto Repair Shop

Digital vehicle inspections that price declined work and keep it on a standing board.

The short answer

Auto Repair Shop is an Odoo app for independent workshops, tyre shops and service centres. It runs job cards from reception through to invoiced, and its multi-point digital inspections price every finding and record the customer's answer. Declined and deferred work then collects in a standing worklist attached to the plate, so the money a technician found but nobody sold stays visible after the ticket closes.

Request this module

Last updated

What it is for

Our biggest untapped job list is work our own technicians already found and the customer said no to. Most repair software records that answer and then loses it. The ticket closes, the inspection is filed behind it, and the tyres nobody bought disappear from every screen a service manager looks at. Nothing brings them back except somebody who happens to remember the car. Meanwhile the shop chases new arrivals for revenue that is already sitting in the filing system, priced and quoted, waiting for a phone call nobody has made.

Platform
Odoo
Category
Field service
Works with
Odoo 18 · Odoo 19
Technical name
auto_repair_shop
Status
Direct from webbox
Pricing
Paid

What is inside it

  1. 01

    The unsold work

    Every declined or deferred finding collects in one standing worklist with the plate, the checkpoint, the category and the price. No date range bounds it, so the oldest recommendation stays live money instead of ageing off.

  2. 02

    Inspections

    A technician works a checkpoint list by category, marking pass, attention, fail or not applicable, with a photo and a note per point. Anything worth quoting is flagged, priced, and given the advisor's recorded decision.

  3. 03

    The board

    Job cards move reception, estimate, approved, in progress, ready, invoiced. Empty lanes stay visible on purpose, because an empty estimate column is news and a column that vanishes hides it.

  4. 04

    Labour economics

    Effective labour rate and labour efficiency are computed only over jobs that actually clocked time, so an unclocked job cannot flatter the divisor. Parts-to-labour sits beside them on the same board.

  5. 05

    Dashboards

    A shop cockpit led by the unsold pool, plus a weekly shop analysis split by bay and by technician. Every tile opens exactly the rows it counted.

What it looks like in practice

  1. A visit invoices small and leaves priced work standing

    An inspection on one van finds work across several checkpoints and the customer approves only part of it. The job card closes on what was sold.

    Each finding keeps its own estimated cost and the customer's answer, so the declined and deferred rows stay on the standing worklist with the plate against them. Declined rows render red, deferred amber, and the columns total at the foot.

    Work the inspection found
    $1,680
    Invoiced on the job card
    $513
    Brake pads deferred
    $420
    Tyres declined outright
    $760

    Figures from the module's own demo data, on a fresh install. Install with demo data and open the Deferred Work list.

    InspectionsThe unsold work

  2. A tile and the list behind it have to agree

    A service manager clicks the tile reporting the unsold pool and expects to land on the rows that produced the number.

    The tile's domain and the search filter behind the click are written once and read from the same place, and a test re-derives each tile from the rows the click actually opens. The footer total on the list matches the tile above it.

    Deferred and declined pool
    $3,035

    Figures from the module's own demo data, on a fresh install. On a demo install, open the shop cockpit and click the first tile.

    DashboardsThe unsold work

  3. A job nobody clocked is unmeasured, not inefficient

    Two jobs closed on the same day. One has actual hours recorded against it and the other has none.

    Labour efficiency divides estimated hours by actual hours and excludes jobs with no hours rather than counting them as zero. Effective labour rate is computed over jobs that clocked time only, so the divisor stays honest.

    Behaviour of the shipped code.

    Labour economics

What it deliberately does not do

It does not invoice or take payment
The primary button reads Create Quotation and means it: a draft sales quotation linked to the job, with the job moving to Invoiced. Confirming, invoicing and collecting all happen in Odoo Sales and Accounting.
No parts inventory or purchasing
A line carries a product, a quantity and a price. There is no stock move, no reservation and no supplier. Run Odoo Inventory alongside it if stock has to move.
The customer never sees the inspection
No portal, no shareable link, no approve-on-your-phone flow, no mail or SMS template anywhere in the module. Photos are internal attachments, and the decision is recorded by the advisor after the phone call.
No bay scheduling or capacity model
A bay is a field on the job, and nothing stops two live jobs sharing one. No calendar, no gantt, and no utilisation percentage, because that would need a capacity number the module does not hold.
No time clock
Actual hours is a number somebody types. There is no punch in and out and no timesheet integration, so labour efficiency is honest arithmetic over what technicians write down.

Questions

Can I install this on Odoo Online?
No. Odoo Online cannot install modules that contain Python, so this runs on Odoo.sh or a self-hosted instance. Check the versions listed above for the series and edition it is verified against.
Does it raise the invoice and take the payment?
No. The primary button on a job card reads Create Quotation, and that is what it does: a draft sales quotation linked to the job, with the job moving to Invoiced. Confirming the quotation, raising the invoice and collecting the money all happen in Odoo Sales and Accounting.
Does it manage parts stock?
No. A parts line carries a product, a quantity and a price, with no stock move, no reservation and no supplier behind it. There is also no VIN decode, no parts catalogue and no flat-rate labour guide. Run Odoo Inventory beside it when stock actually has to move.
What access groups does it ship?
Two, User and Manager, over 20 access rules. Users cannot delete vehicles, inspections or orders, and every model is company-scoped, so a multi-company database keeps each shop's records apart. An administrator sees the app the moment it installs.

Have something to build?

Tell us the problem. We'll come back with a plan, a price, and who'd actually build it.

  • Free scoping call
  • Reply within 1 business day
  • No lock-in