- 首页
- Apps
- Specialized Solutions
- Car Rental & Fleet Management
示意预览A build-to-order Odoo application for vehicle rental operators:
reservation calendar per unit, rate-driven agreements, photographic check-out/check-in with damage capture, traffic-fine and toll recharges, and preventive fleet maintenance.
ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 database.
什么是 Car Rental & Fleet Management?
A build-to-order Odoo application for vehicle rental operators: reservation calendar per unit, rate-driven agreements, photographic check-out/check-in with damage capture, traffic-fine and toll recharges, and preventive fleet maintenance. ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
核心功能
按需定制,全程代劳
无需自行搭建——由 ECOSIRE 构建、安装并提供支持的可用应用。
- 1
您下单
以一次性构建价格开始。我们在启动时与您共同确定范围。
- 2
我们构建与安装
ECOSIRE 在您的 Odoo 上构建、配置并安装。
- 3
上线 + 支持
约一个工作周内上线,并包含两周上线支持。我们交付的代码中的缺陷免费修复。
技术规格
- Odoo 兼容性
- Odoo 17, Odoo 18, Odoo 19
- 版本
- 企业版和社区版
- 许可证
- 许可证需要确认
- Python 要求
- Python 3.10+
- 数据库
- PostgreSQL 12+
关于此产品
Car rental is a per-asset business, and Odoo core is built around per-product quantities. sale.order will happily sell three units of "Compact Sedan" for the same week because stock has no notion of a specific chassis being physically on the road until Thursday. Odoo's fleet app tracks vehicles, odometers, contracts and service costs, but it is an internal-cost application: no customer-facing availability, no rate card, no deposit, and no concept of handing keys over and getting them back. Enterprise's sale_renting adds durations and pickup/return, but it is still quantity-based on a rentable product, and it has nothing to say about fuel level at handover, a dent in the nearside rear door, a speeding fine that arrives six weeks after the customer flew home, or the fact that unit 47 must go off-hire at 60,000 km. Operators bridge that gap with spreadsheets and a WhatsApp folder of handover photos — which is exactly where deposits get argued over and lost.
We build a rental layer that treats each vehicle as the bookable resource. A fleet.rental.agreement model carries the customer, the specific fleet.vehicle, the period, the rate line and the deposit, with overlap prevented at the database level rather than in a UI warning: a SQL/exclusion constraint plus an @api.constrains check on the date range means two confirmed agreements can never claim the same chassis, whatever concurrent path created them. Availability is exposed as a Gantt-style board (Enterprise web_gantt; a colour-coded calendar and list view on Community, since Gantt is not in Community) grouped by vehicle category, so the counter agent sees the real board, including units blocked by a scheduled service. Rates live on a fleet.rental.rate model with tiered daily, weekly and monthly bands, mileage allowance and excess-kilometre pricing, seasonal date ranges and customer-pricelist overrides; the charge is a compute field with @api.depends on the period, the rate and the returned odometer, so a re-read of the meter recalculates the settlement rather than requiring a manual invoice edit.
Check-out and check-in are the heart of the build. Both are OWL-based screens designed for a tablet at the counter or the kerb: fuel level, odometer, accessories checklist, and a vehicle diagram where the agent taps a panel to log damage. Each damage record is its own model row with a panel code, severity, a photo attached through ir.attachment, and a flag for whether it was pre-existing at check-out or newly found at check-in — which is what turns a deposit dispute into a two-column QWeb comparison report you can email the customer. Check-in computes the settlement: excess kilometres, fuel differential, late-return hours, damage charges, and deposit release or partial capture, posting to the customer invoice through standard account.move lines so your accountant sees ordinary Odoo entries. Traffic fines and tolls get their own model with an incident date, matched back to whoever held the vehicle on that date and recharged with an administration fee — the single largest source of unbilled revenue we see in this vertical. Maintenance closes the loop: rules on kilometres or elapsed months raise service requests against fleet.vehicle.log.services through ir.cron and Odoo automated actions, and a vehicle due for service is automatically withheld from the availability board so nobody books a car that is about to go into the workshop.
Everything ships as a proper Odoo addon with a complete __manifest__.py, not a customisation poked into your production database. Access is defined in ir.model.access.csv with record rules separating counter agents (their own branch's agreements), fleet supervisors and finance, and multi-company rules are honoured so a group with branches keeps its books apart. Documents — the rental agreement, the condition report, the settlement statement — are QWeb PDF templates using your letterhead and your terms, in the languages you operate in. Integration points are ordinary Odoo ones: the models are exposed over XML-RPC and JSON-RPC so a booking website, an aggregator feed or a telematics provider can create reservations and push odometer readings without us inventing a private protocol.
Because this is build-to-order, nothing is downloaded and installed blind. We start with a scoping call, agree the exact rate structure, damage taxonomy, deposit policy and document layouts in a written scope, and build against your Odoo version — 17.0, 18.0 or 19.0 — and your Community or Enterprise edition, since the availability board and sign-on-glass options differ between them. Typical delivery is one working week from confirmed scope, depending on how much of the fine-recharge and telematics surface you want in v1. You get the full source, a staging UAT round before anything touches production, a rollback plan, training for your counter staff, and a support window after go-live. If requirements change mid-build, we re-scope in writing rather than quietly shipping something different.
你得到什么
- Installable Odoo addon source built for your exact series (17.0, 18.0 or 19.0) and your Community or Enterprise edition, with a complete `__manifest__.py` and declared dependencies
- Installation and configuration on your environment — rate cards, damage taxonomy, deposit policy, maintenance rules and user groups configured with your data
- Technical documentation: model and field reference, `ir.model.access.csv` and record-rule matrix, cron and automated-action inventory, and the XML-RPC/JSON-RPC integration guide
- End-user guide plus a live training session for counter staff, fleet supervisors and finance, recorded so new hires can be onboarded later
- UAT on a staging copy of your database with a signed-off acceptance checklist before anything touches production, and a documented rollback plan
- QWeb document templates (rental agreement, condition report, settlement statement) styled to your letterhead and terms
- Post-go-live support window for defect fixes and configuration questions, with a named channel for raising issues
- Git repository handover — full history, tagged release and branch strategy so your team or another partner can maintain it
这是给谁的
Rental Operations Manager
Runs the daily board across one or more branches. Needs to see which specific vehicle is where, stop double-bookings before they reach the counter, and know that a unit going into service tomorrow cannot be rented out tonight.
Counter / Handover Agent
Works on a tablet at the kerb with a customer waiting. Needs a check-out and check-in flow that takes minutes, captures fuel, odometer and damage photos in a fixed sequence, and produces a signed condition report on the spot.
Fleet & Maintenance Supervisor
Owns vehicle uptime and cost per unit. Needs kilometre- and time-based service triggers that raise work automatically, and visibility of which damage found at check-in has actually been repaired versus carried forward.
Finance / Accounts Controller
Owns revenue leakage. Needs deposits tracked to a decision, excess-kilometre and fuel charges computed rather than negotiated, and every traffic fine matched to the driver who incurred it and recharged before it ages out.
Car Rental & Fleet Management 如何比较
| 标准 | 伊科西尔 | 定制建造 | 竞争对手 | Odoo 原生 |
|---|---|---|---|---|
| Booking granularity | Books a specific chassis, with overlap blocked by a database constraint | Achievable, but the constraint is usually written late and only as a UI check | Often still quantity-based on a rentable product | `sale.order` sells quantities; no notion of a specific vehicle being on the road |
| Availability view | Gantt board on Enterprise, colour-coded calendar/list on Community, service blocks included | Whatever the developer had budget for; Gantt work is frequently deferred | Usually a calendar, rarely aware of workshop downtime | Fleet has no availability view at all |
| Rate structure | Tiered daily/weekly/monthly bands, seasons, mileage allowance and excess-km, pricelist overrides | Built to your spec, at your cost, and re-costed each time policy changes | Typically a flat daily rate with limited tiering | Product price; durations only via Enterprise `sale_renting` |
| Handover and damage evidence | Tablet check-out/check-in, panel-level damage with photos, side-by-side QWeb condition report | Possible, but the OWL screen and photo lineage is the expensive part | Often a checklist with free-text notes and no photo history | None — this lives in a phone gallery today |
| Fines and toll recharges | Register matches incident date to the driver on hire and recharges with an admin fee | Rarely specified up front; usually added after revenue has already leaked | Uncommon; where present, manual linking back to the rental | Not modelled |
| Maintenance interlock | Km/time rules raise service via `ir.cron`, and due vehicles drop off the availability board | The cron is straightforward; the interlock with availability is what gets missed | May raise reminders, but rarely blocks the booking | Fleet logs services and costs, but nothing stops a booking |
| Security and multi-branch | `ir.model.access.csv` plus record rules per role and branch, multi-company aware | Depends entirely on the developer's discipline | Usually one broad rental user group | Generic Fleet manager/user groups only |
| Ownership and continuity | Full source, git repo with history, tagged release, documented support window | You own it, and you also own every future fix and version migration | Vendor-controlled; upgrade timing follows their roadmap | Maintained by Odoo, but it does not do this job |
关于Car Rental & Fleet Management的常见问题
How long does delivery take, and what happens first?
This is a build-to-order module, not an existing apps.odoo.com download. Typical delivery is one working week from confirmed scope. It starts with a scoping call where we agree your rate structure, damage taxonomy, deposit policy and document layouts; we then send a written scope, and the build clock starts when you confirm it. A larger v1 — website booking, telematics integration, multi-country fine handling — can extend that, and we say so before you commit rather than afterwards.
Which Odoo versions and editions do you support?
We build for Odoo 17.0, 18.0 and 19.0, on Community or Enterprise. The edition matters here: the Gantt-style availability board relies on Enterprise's `web_gantt`, so on Community we deliver a colour-coded calendar and list-based board carrying the same information. We build against your exact series and tell you at scoping which features shift shape on your edition.
Does this replace Odoo's Fleet app, or work with it?
It works with it. We extend `fleet.vehicle` rather than duplicating your vehicle register, and service records still land in `fleet.vehicle.log.services`, so existing cost tracking, odometer history and vehicle master data keep working. What we add is the customer-facing rental layer — availability, agreements, rates, handover, deposits and recharges — which the Fleet app does not cover.
How does the damage and deposit evidence actually work?
At check-out the agent walks the vehicle on a tablet, taps affected panels on a diagram and photographs them; those rows are marked pre-existing. At check-in the same walk runs and anything new is flagged as such. The result is a QWeb PDF showing both states side by side with photographs, emailed to the customer with the settlement. Deposit capture or release is recorded against the agreement with the user and timestamp, so a dispute weeks later is answered from the record rather than from memory.
Can it recharge traffic fines that arrive after the rental ended?
Yes — that is the point of the fine register. A fine is entered with its incident date and matched to whichever agreement held that vehicle at that moment, even if the rental closed months earlier. You can then recharge the customer with a configurable administration fee, generating an ordinary Odoo invoice. Automatic ingestion from a specific authority's portal or email feed is possible but is a scoped integration, not a default.
Can we connect our website or a booking aggregator?
Yes. The models are exposed over Odoo's standard XML-RPC and JSON-RPC API, so an external booking site, a channel manager or a telematics provider can check availability, create reservations and push odometer readings. If you want a public booking flow built on Odoo Website itself, we can include it — scoped and quoted separately, because it carries its own payment, terms and cancellation-policy decisions.
What support and updates do we get after go-live?
Every build includes a post-go-live support window for defect fixes and configuration questions, agreed in the scope before we start. Beyond that window, ongoing support and version upgrades — for example carrying the module from 18.0 to 19.0 when you upgrade — are available as a separate agreement. Because you receive the full source and the git repository, you are never locked in: your own team or another partner can maintain it.
相关模块
Car Rental & Fleet Management
A build-to-order Odoo application for vehicle rental operators: reservation calendar per unit, rate-driven agreements, photographic check-out/check-in with damage capture, traffic-fine and toll recharges, and preventive fleet maintenance. ECOSIRE builds, installs and supports it for your Odoo 17, 18 or 19 database.
- Per-vehicle reservation model (`fleet.rental.agreement`) with overlap prevented by a SQL/exclusion constraint plus `@api.constrains`, so two confirmed bookings can never hold the same chassis
- Availability board grouped by vehicle category — Gantt on Enterprise (`web_gantt`), colour-coded calendar and list views on Community — showing on-hire, reserved, in-workshop and available units
- Tiered rate cards (`fleet.rental.rate`) with daily/weekly/monthly bands, seasonal date ranges, included mileage, excess-km pricing and customer-pricelist overrides
- Compute-driven charges using `@api.depends` on period, rate band and returned odometer, so correcting a meter reading recalculates the settlement instead of needing a manual invoice edit



