Intake
The service writer finds the vehicle by plate or VIN, records the odometer and the customer's concern in their own words, and books an appointment.
An Odoo Community and OCA system built to run a truck repair shop end to end, from inspections and e-signed estimates to parts, scheduling, a technician iPad app, and billing.
Auto & heavy-truck repair
Odoo 18 Community (OCB) · NixOS
Odoo 18 Community (OCB), OCA modules, Python, PostgreSQL, Vue, Nix, odoo-nix, NHTSA vPIC, and 3 more
Service desk
Repair orders
Inspections
Estimates
Shop schedule
Parts
Vehicles
| Item | Measurement | Severity | Photos |
|---|---|---|---|
| Front brake lining, left | |||
| Brake chamber, front right | Air leak at diaphragm | ||
| Air dryer cartridge | Due by service interval | — | |
| Steer tires | 11/32 in tread |
A repair shop runs on handoffs. A technician inspects the truck and finds more than the customer reported. The front office prices the work, waits for a yes, orders parts, and books a bay. The office then bills what the customer approved. When each step lives in a different place, details slip through the gaps and good people spend their day re-keying.
This shop services both passenger vehicles and Class 6–8 heavy trucks. Before Odoo, schedules were tracked on paper, and parts availability and appointments were coordinated by hand throughout the shop. The result was fragmentation, overwhelm, inefficiency, and downtime. The shop wanted one system for intake, inspections, estimates, parts, scheduling, technician time, and accounting, and a way off QuickBooks without per-seat licensing.
Odoo Community was the right foundation, but its repair app doesn't cover the whole job out of the box. A repair order can't invoice on its own, doesn't know what a vehicle is, and has a single scheduled date with no model of technician capacity. The work was closing those gaps without forking Odoo.
The repair order anchors every job:
The service writer finds the vehicle by plate or VIN, records the odometer and the customer's concern in their own words, and books an appointment.
Technicians grade each checklist item by severity and record conditions, measurements, and photos; out-of-spec values flag themselves. One click emails the customer a branded report with a portal link to the photos.
A wizard prices each finding through the shop's canned service jobs. Must-do items become firm lines; the rest become optional services.
On the portal, the customer adds the jobs they want, watches the total update, signs, and pays a deposit if the shop asks for one. Approved jobs land on the repair order as parts and labor, flagged so nothing bills twice, and the order records what was approved and declined.
Confirming a repair reserves stocked parts and raises purchase orders for the rest. Vendor documents that arrive by email are imported automatically, and an AI matcher suggests which repair order an incoming purchase order belongs to, for one-click confirmation.
Openings are drawn from every qualified technician's shift, time off, and calendar at once. Taking a slot assigns whoever is free. Move the appointment, the job, or the date, and the other two follow.
Technicians run a timer on the job, feeding estimated-versus-actual reporting while the customer pays the flat rate they approved. An iPad-first app shows each technician their jobs, the timer, parts with camera barcode scanning, and inspections.
A catalog of 2,387 models across 87 makes, including Class 6–8 trucks, plus a Decode VIN button backed by NHTSA's public VIN service.
A US GAAP chart of accounts, automated FIFO inventory valuation, and a rehearsed QuickBooks cutover plan for accounts, customers, vendors, active products, and open receivables and payables, gated on a trial-balance match.
The system is built, tested, and ready for deployment at the shop. It gives the shop one record per job, from the first call to the paid invoice, and each vehicle's history stays with it for every future visit. Estimates require a signature automatically, so "no work without a signed estimate" is how the system works, not a rule to remember. Declined recommendations are on record. Parts ordering starts itself, and an availability signal tells the office when a truck can go in the bay.
Technicians log time where the work happens, and owners can compare actual hours with the hours they sold. Because it's Odoo Community and OCA, the shop owns all of it: no per-user license fees, and any qualified Odoo partner can support it.
Odoo 18 Community (OCB) with roughly 180 core and OCA modules listed in one file and pinned as git submodules, including OCA repair, fleet, resource_booking, queue_job, l10n_us_gaap, MIS Builder, EDI, and the shopfloor app framework.
odoo-nix builds the Python environment, runs PostgreSQL and Odoo in development, and applies module migrations at deploy time.
Small, tested custom modules, one concern each (vehicles, inspections, estimates, scheduling, VIN decode, the technician app), with tests run by Odoo's own test runner.
Dragging an appointment changes the calendar event, not the booking, so a targeted override keeps the repair order in sync. OCA's capacity checks run at every level, so double-booking is impossible rather than discouraged.
A demo module seeds a full shop with 18 repair orders across every stage, so we can show the whole flow on a fresh database.
Shared building blocks from our public Odoo addons: email and SMS through Cloudflare and Twilio, document import from email, and the Carbon theme and shopfloor tooling.
Reproducible Nix infrastructure for Odoo Community (OCB) and OCA projects, from scaffolding and development to containers and NixOS.
Odoo 18 modules that send and receive email through Cloudflare and run two-way Twilio SMS and MMS conversations inside Discuss.
Odoo 18 modules that turn vendor emails, PDFs, and printed documents into Odoo records, with templates, structured extraction, previews, and routing.
Odoo 18 modules for a Carbon-styled backend, a live timesheet timer in the navbar, and camera scanning and social sign-in for the OCA Shopfloor app.
“”
Tell us how your work flows today and where it hurts. We'll tell you honestly whether ERPNext, Odoo, or something custom fits, and what a first phase could look like.