A build-to-order Odoo module that turns a funeral home's case file into a working record — arrangements, merchandise, facility and staff scheduling, regulatory paperwork and family statements in one governed flow. ECOSIRE scopes, builds, installs and supports it on your Odoo 17.0, 18.0 or 19.0. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $499.00 USD; request a quote for a scoped proposal.
示意预览A build-to-order Odoo module that turns a funeral home's case file into a working record
— arrangements, merchandise, facility and staff scheduling, regulatory paperwork and family statements in one governed flow. ECOSIRE scopes, builds, installs and supports it on your Odoo 17.0, 18.0 or 19.0.
无需自行搭建——由 ECOSIRE 构建、安装并提供支持的可用应用。
以一次性构建价格开始。我们在启动时与您共同确定范围。
ECOSIRE 在您的 Odoo 上构建、配置并安装。
约 2–4 周内上线,并提供上线后的支持期。
A funeral home runs on a single object that Odoo does not have: the case. From the first-call notification through transfer, arrangement conference, service, disposition and final statement, everything a firm does hangs off one decedent record — and every one of those steps has a deadline, a signature, a permit and a family waiting. In stock Odoo the pieces exist but they do not connect. sale.order can sell a casket but has no concept of a decedent, a place of death, or an authorising next of kin. calendar.event can hold a chapel booking but will happily double-book the preparation room. account.move can invoice, but it cannot separate what the firm supplies from cash advances paid to a third party on the family's behalf — the distinction every regulator and every honest statement depends on. Firms end up bridging the gap with a whiteboard, a shared spreadsheet of permit numbers, and a director who carries the schedule in their head.
We build ecosire_funeral_services as a proper Odoo application on top of that gap. A new funeral.case model carries the decedent, informant and authorising party (all res.partner records, so the family relationship survives into CRM and accounting), place and time of death, the responsible director, and a stage-driven lifecycle rendered as a statusbar over a configurable funeral.case.stage model — first call, transfer complete, arrangement conference, documents filed, service scheduled, disposition complete, account settled. Arrangement lines live on funeral.case.line, which selects product.product records tagged by a funeral_item_type selection so caskets, urns, memorial print, professional service fees and cash advances behave differently on the same conference screen. Computed fields declared with @api.depends roll the general price list, selected merchandise and cash advances into separate running subtotals in real time, so the director quoting at the table sees the family's number change as options are added — and the same computation later produces the statement, rather than a second number typed somewhere else.
Scheduling is modelled rather than freeform. Facilities and vehicles become funeral.resource records with a resource type and an optional Odoo resource.resource link, and each booking is a funeral.booking window validated by an SQL constraint plus a Python @api.constrains overlap check, so a chapel or a preparation room cannot be committed twice — the failure mode most likely to reach a family. Staff assignment uses hr.employee where the HR app is present and falls back to res.users where it is not. Regulatory documentation is handled as configurable funeral.document.type records with a required flag, an issuing authority, and a due-date offset from a chosen anchor (date of death, date of transfer, date of service), plus a case-level checklist that computes an outstanding-documents field — the field a manager filters a list view on at eight in the morning. Permits, certified copies and cremation authorisations attach as ir.attachment records against their document line, and QWeb reports generate the arrangement summary, the itemised price disclosure and the family statement as PDFs your firm's letterhead controls.
Access is designed for a small building where roles overlap. Three groups — Funeral Staff, Funeral Director, Funeral Manager — are defined in security/funeral_security.xml with matching rows in ir.model.access.csv, and record rules keep multi-branch firms separated by company_id while allowing a manager visibility across branches. Because the same record holds clinical detail and family financials, the pricing and statement fields carry group-level groups= restrictions on the view, not just on the menu. Automated actions built on base.automation server actions (rather than the Enterprise studio automation UI, which Community lacks) drive the reminders: a document falling due, a service within twenty-four hours without a full staff assignment, an aftercare follow-up at a configurable interval after disposition. Everything is reachable through the standard XML-RPC and JSON-RPC endpoints, so a website first-call form, an answering service, or a crematory's system can create and read cases without bespoke middleware.
This is build-to-order, and we say so plainly: it is not an existing download on apps.odoo.com. We start with a scoping call, walk your actual arrangement conference and your jurisdiction's document set, and write a specification you approve before anyone writes code. Typical delivery is two to four weeks from confirmed scope for the standard configuration — longer where a specific registry integration or an unusual disposition workflow is in play, and we tell you which before you commit. You receive the installable source for your exact Odoo series (17.0, 18.0 or 19.0), a staging installation for UAT with a written rollback plan, and the git repository, so the module is yours to keep whether or not you keep working with us.
Runs one to four locations and already uses Odoo for accounting and purchasing. Needs the case, the schedule and the family statement in the same system as the books, so month-end stops being a reconciliation between a spreadsheet and an invoice ledger — and so a director's absence does not take the week's schedule with them.
Sits with a family and needs a screen that produces a defensible, itemised number as selections change, plus a printable summary the family can take away. Cares that cash advances are visibly separate from what the firm charges, and that nothing has to be re-keyed afterwards.
Owns permits, certified copies and authorisations across jurisdictions with different deadlines. Needs a checklist that computes what is outstanding and against which anchor date, with attachments filed where the next person will find them without asking.
Oversees several homes in one Odoo database. Needs `company_id` record rules that keep branches apart in daily use while still allowing a consolidated view of capacity, outstanding documentation and unsettled accounts across the group.
| 标准 | 伊科西尔 | 定制建造 | 竞争对手 | Odoo 原生 |
|---|---|---|---|---|
| Fit to your arrangement conference | Built from your actual arrangement sheet and document set after a scoping call | Also fits, but the fit depends entirely on the developer you find and retain | Generic funeral schema; your firm bends its process to the module's assumptions | No decedent, case or arrangement concept exists — you improvise on sale orders |
| Facility and vehicle double-booking | SQL constraint plus `@api.constrains` overlap check on every booking window | Depends whether the brief called it out; often discovered after a clash | Usually a calendar view with no hard constraint at the database level | `calendar.event` accepts overlapping bookings on the same resource without complaint |
| Cash advances vs firm charges | Separate computed subtotals carried through to invoice and family statement | Achievable, but this is the requirement most often missed in a first build | Often a single flat total, leaving the split to a manual note | One order total; the distinction is maintained outside the system or not at all |
| Regulatory document tracking | Configurable document types with anchored due dates and a computed outstanding count | Built to your spec, though every jurisdiction change means returning to the developer | Fixed checklist reflecting the author's country, hard to adapt | Attachments and activities only — no deadlines, no completeness gate |
| Delivery time and certainty | Two to four weeks from confirmed scope, with the estimate given before you commit | Open-ended; discovery, hiring and rework usually dominate the timeline | Installs the same day, then weeks of workarounds for what it does not do | Available immediately, but the gap is never closed — only worked around |
| Source code and ownership | Full git repository handover with commit history; yours to extend or reassign | You own it, and you also own every undocumented decision inside it | Vendor-controlled; extension usually means waiting on their roadmap | Odoo core — not adaptable to your workflow without a module in any case |
| Access control for sensitive records | Three roles, `company_id` record rules, view-level restrictions on financial fields | Often deferred to a later phase and shipped with everyone as manager | Typically one access group covering the whole application | Generic model access only; no funeral-specific separation of duties |
| Odoo version coverage | Built and tested for your specific series — 17.0, 18.0 or 19.0 | Whatever version was current at build time; upgrades are a fresh engagement | Lags major releases; upgrade timing is the vendor's decision, not yours | Ships with every version, and lacks the functionality in every version |
This is a build-to-order module, not an instant download. Typical delivery is two to four weeks from confirmed scope for the standard configuration. The clock starts when you approve the written specification — not at the enquiry — and we tell you before you commit if a registry integration or an unusual disposition workflow will push it past four weeks.
Delivery includes a post-go-live support window covering defect fixes and configuration adjustments within the agreed scope. Beyond that, ongoing support and Odoo major-version upgrades are quoted as a separate engagement — but you hold the git repository and full source, so you are never dependent on us to keep the module running or to have another developer extend it.
It installs and runs on Community. Automated reminders are implemented as `base.automation` server actions rather than the Enterprise studio automation UI, and any Enterprise-only touchpoints are isolated so the same codebase installs on either edition. Tell us your edition at the scoping call and we confirm which behaviours differ before we build.
We build against 17.0, 18.0 and 19.0, and you receive the module compiled and tested for your specific series rather than one branch full of version guards. If you plan to upgrade during the project, say so at scoping and we target the destination series instead.
Document types are configuration, not code: each carries a required flag, an issuing authority and a due-date offset anchored to date of death, transfer or service, so multiple jurisdictions coexist in one database. Disclosure and statement layouts are QWeb templates set to your wording during delivery. We are not a legal adviser — you tell us what your regulator requires and we make the system enforce it.
No. The module generates a standard `account.move` from the approved arrangement and maps cash-advance lines to accounts and analytic tags you nominate. It adds models and views; it does not fork core accounting. UAT runs on a staging database restored from your production data, with a documented rollback plan, before anything reaches live.
Yes. Cases are ordinary Odoo records exposed over the standard XML-RPC and JSON-RPC endpoints, so a web form, answering service or crematory system can create and read them with an API user and the usual access rights. If you want a specific integration built and tested rather than merely enabled, raise it at the scoping call so it is priced into scope.
A build-to-order Odoo module that turns a funeral home's case file into a working record — arrangements, merchandise, facility and staff scheduling, regulatory paperwork and family statements in one governed flow. ECOSIRE scopes, builds, installs and supports it on your Odoo 17.0, 18.0 or 19.0.