Skip to main content
Photography Business Suite for Odoo — A made-to-order Odoo package that models the full photography workflow — bookings, shoo — 1/1Illustrative preview

A made-to-order Odoo package that models the full photography workflow

— bookings, shoots, editing pipelines, client galleries, print/licensing orders, and delivery — on top of your existing CRM, Sales, and Accounting.

ECOSIRE scopes, builds, installs, and supports it for you.

What is Photography Business Suite for Odoo?

A made-to-order Odoo package that models the full photography workflow — bookings, shoots, editing pipelines, client galleries, print/licensing orders, and delivery — on top of your existing CRM, Sales, and Accounting. ECOSIRE scopes, builds, installs, and supports it for you. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

`photography.shoot` model (`models.Model`) as the single object tying customer, package product, shoot date, location, assigned photographer/second-shooter, and deliverables together
Deposit-then-balance handled as native Sales invoicing milestones so `account.move` revenue recognition stays clean and auditable
Compute fields (`@api.depends`) for balance due, days-to-delivery against SLA, and rolled-up pipeline status derived from editing tasks
Editing pipeline as a dedicated `photography.edit.batch` model or tailored Project Kanban: culled → edited → in review → approved, with per-stage ownership
Client proofing & image selection through the portal/website layer (QWeb + OWL) scoped to each client's own shoot
Per-package selection limits enforced in the model, with over-limit picks auto-generating an upsell `sale.order.line`
Structured licensing sales: usage-rights fields for media, territory, duration, and exclusivity — distinct, reportable from print/product sales
Shoot packages configured as `product.template` so quoting, tax, and invoicing flow through native Sales and Accounting with no parallel system
`ir.model.access.csv` + record rules so photographers see their own shoots, editors their assigned batches, and clients only their own gallery
Automated actions / scheduled jobs (`ir.cron`) for balance-due reminders, delivery-deadline alerts, and proof-approval follow-ups
Gear/checklist and location fields on the shoot with a printable QWeb call sheet for the shoot day
QWeb reports: booking confirmation, deposit/balance invoices, delivery note, and licensing certificate with usage terms
XML-RPC/JSON-RPC endpoints for syncing bookings, galleries, or delivery status with an external website, booking widget, or DAM
Delivery tracking with SLA countdown and a client-visible status so 'where are my photos?' is answered without an email

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Photography businesses run on a workflow Odoo core does not natively understand: an inquiry becomes a booking with a deposit, the booking becomes a scheduled shoot with a location and gear checklist, the shoot produces hundreds of assets that move through a cull-edit-retouch pipeline, and only then does the client select images, approve proofs, and order prints or license usage. Out of the box you can bludgeon this into crm.lead, sale.order, project.task, and calendar.event, but the moment you need shoot-specific fields, deposit-vs-balance milestones, per-image selection limits, or usage-rights terms on a licensing sale, you are maintaining a fragile mess of manual stages, spreadsheet trackers, and disconnected gallery tools. There is no single object that says "this is a wedding shoot on this date, at this venue, with this package, this deposit paid, these deliverables owed, and this delivery deadline."

We build a dedicated photography suite as a proper Odoo module (or small set of modules) with its own __manifest__.py, models, security, and views — installed into your database rather than bolted on from outside. The core is a photography.shoot model (models.Model) linking the customer (res.partner), the sold package (product.template/sale.order), a shoot date and location, an assigned photographer and second shooter, and a deliverables definition. Compute fields (@api.depends) derive the balance due from the deposit and package price, days-until-delivery from the shoot date and SLA, and a live pipeline status rolled up from editing tasks. Shoot packages are configured as products so quotes, invoices, and tax flow through native Sales and Accounting untouched; deposit and balance are handled as invoicing milestones so revenue recognition stays clean. Editing work is modeled either as a dedicated photography.edit.batch model or as a tailored Project pipeline, so retouchers see a Kanban of what is culled, edited, in review, and approved. Client-facing proofing and selection are exposed through the portal / website layer with QWeb and OWL views, with per-package selection limits enforced in the model (extra selections auto-generate an upsell line). Licensing sales carry structured usage-rights fields — media, territory, duration, exclusivity — so a print sale and a commercial license are distinct, reportable order types rather than a free-text note. Security is enforced with ir.model.access.csv plus record rules so photographers see their own shoots, editors see their assigned batches, and clients only ever see their own gallery; automated actions and scheduled jobs handle balance-due reminders, delivery-deadline alerts, and proof-approval follow-ups. Everything is reachable over XML-RPC/JSON-RPC if you want to sync galleries, bookings, or delivery status with an external website, booking widget, or asset-management tool.

Because every studio's package structure, deliverables, and licensing terms differ, this is delivered build-to-order rather than as a one-click download. After a short scoping call we confirm the exact shoot types, package definitions, pipeline stages, selection rules, and portal behavior you need, agree the data model and any migrations from your current tracker, and then build, test on a staging copy of your database, and deploy to production with your team trained. Delivery is typically one working week from confirmed scope, and we target your Odoo edition and version (17.0, 18.0, or 19.0), noting where a capability leans on Enterprise (e.g. advanced Studio-style customization or certain portal features) versus what runs on Community. Pricing starts from $999 (indicative, single-company base scope); additional shoot types, deeper licensing/usage-rights logic, multi-studio or multi-company setups, external gallery/website integrations, and migrating a large back-catalogue of past shoots increase the quoted scope. You receive a fixed quote after the scoping call — the from-price is a starting point, not the final number.

What you get

  • Installable source code for your Odoo version (17.0 / 18.0 / 19.0) — proper module(s) with `__manifest__.py`, models, security, views, and reports
  • Installation and configuration on your environment (staging first, then production), including package/product and pipeline-stage setup
  • Technical documentation: data model, field reference, record-rule matrix, cron/automated-action list, and XML-RPC/JSON-RPC integration notes
  • User guide plus a live training session for photographers, editors, and front-desk staff
  • UAT on a staging copy of your database with a documented rollback plan before go-live
  • Post-go-live support window for bug fixes and configuration tuning
  • Git repository handover with full commit history and branch/tag for your deployed version
  • Data migration of existing bookings/shoots from your current tracker where in scope (mapping documented and validated)

Who this is for

Studio owner running Odoo

Runs a wedding/portrait/commercial studio on Odoo and is tired of stitching bookings, deposits, editing status, and delivery across spreadsheets and a separate gallery tool. Wants one shoot record that drives quoting, invoicing, and delivery without leaving Odoo.

Studio manager / production coordinator

Owns the pipeline day to day and needs a real Kanban of every shoot's editing stage, balance-due status, and delivery deadline — plus automated reminders — instead of manually chasing photographers, editors, and clients.

Commercial / stock photographer selling licenses

Sells usage rights, not just prints, and needs licensing captured as structured terms (media, territory, duration, exclusivity) on the sale so licenses are reportable and the certificate is generated automatically rather than typed into a note.

Odoo admin / operations lead

Maintains the company's Odoo instance and wants photography-specific needs met as a clean, upgrade-safe module with proper access rules and API access — not brittle Studio hacks layered on core Sales and Project.

How Photography Business Suite for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Photography shoot modelDedicated `photography.shoot` object with date, location, package, crew, deliverablesWhatever your dev builds from scratch, if scoped correctlyGeneric booking fields, rarely photography-specificNone — you force-fit CRM leads or calendar events
Deposit + balance billingNative invoicing milestones with clean revenue recognitionBuildable, but often bolted on manuallyBasic deposit support at best, varies by appManual invoices; no shoot-linked deposit/balance logic
Editing pipelineTailored `photography.edit.batch`/Project Kanban with stage ownershipDepends entirely on your spec and budgetUsually absent — treated as generic tasksGeneric Project stages, not tuned to cull/edit/retouch
Client proofing & selection limitsPortal galleries with model-enforced limits and auto-upsell linesPossible but expensive to get rightExternal gallery tool, disconnected from Odoo billingNo native proofing; email and spreadsheets
Licensing / usage rightsStructured media/territory/duration/exclusivity fields, reportableOnly if explicitly specified up frontFree-text notes, not structuredNo concept of usage rights
Security & access rules`ir.model.access.csv` + record rules per role (photographer/editor/client)As good as the developer makes itCoarse app-level access, seldom per-shootStandard Sales/Project rules, no shoot scoping
Ownership & upgradesFull git handover, forward-portable across 17/18/19You own it, but must maintain it yourselfVendor-locked; upgrades depend on their roadmapMaintained by Odoo, but lacks the features
Support modelScoped build + training + post-go-live support windowWhatever you arrange with the developerTicket-based, generic, not studio-awareNo vendor for your specific workflow

Frequently Asked Questions about Photography Business Suite

Is this an app I can download and install right now?

No. This is a build-to-order package. ECOSIRE scopes, builds, installs, and supports it for your specific studio — there is no instant download. After a scoping call we confirm your exact packages, pipeline, and licensing rules, then build it against your Odoo version and deploy it for you.

How long does delivery take?

Typically one working week from confirmed scope. The scoping call locks the shoot types, package definitions, pipeline stages, selection rules, and portal behavior; from that agreed scope we build, test on a staging copy of your database, and deploy. Larger scopes — extra shoot types, deep licensing logic, big data migrations — extend the timeline, which we state in the quote.

How does pricing and scoping work?

Pricing starts from $999 as an indicative from-price for a single-company base scope. It is not a fixed price — after the scoping call you receive a firm fixed quote. Drivers that increase scope include additional shoot types, deeper usage-rights/licensing logic, multi-studio or multi-company setups, external gallery/website integrations, and migrating a large back-catalogue of past shoots.

Which Odoo versions and editions do you support?

We build for Odoo 17.0, 18.0, and 19.0, targeting your current edition. Most of the suite runs on Community; some conveniences lean on Enterprise (for example certain portal/website features or Studio-style customization). We confirm exactly what needs Enterprise during scoping so there are no surprises.

How are support and updates handled after go-live?

Every build includes a post-go-live support window for bug fixes and configuration tuning, and you get the full git repository so nothing is locked to us. Beyond the included window, we offer ongoing support and can build enhancements or forward-port your module when you upgrade to a newer Odoo version, quoted separately.

Will this break my existing Sales, Accounting, or Project setup?

No. The suite builds on native Odoo objects — packages are products, deposits and balances are invoicing milestones through Sales and Accounting, and editing can reuse Project. We add photography-specific models and rules alongside your data, tested on staging with a rollback plan, so your existing quoting, invoicing, and reporting keep working.

Can it connect to our external website or gallery tool?

Yes. The module exposes bookings, galleries, and delivery status over XML-RPC/JSON-RPC, so an external booking widget, marketing site, or digital-asset-management tool can push and pull data. The specific integration is scoped and quoted based on the third-party system's API.

Request a quote

Photography Business Suite

A made-to-order Odoo package that models the full photography workflow — bookings, shoots, editing pipelines, client galleries, print/licensing orders, and delivery — on top of your existing CRM, Sales, and Accounting. ECOSIRE scopes, builds, installs, and supports it for you.

  • `photography.shoot` model (`models.Model`) as the single object tying customer, package product, shoot date, location, assigned photographer/second-shooter, and deliverables together
  • Deposit-then-balance handled as native Sales invoicing milestones so `account.move` revenue recognition stays clean and auditable
  • Compute fields (`@api.depends`) for balance due, days-to-delivery against SLA, and rolled-up pipeline status derived from editing tasks
  • Editing pipeline as a dedicated `photography.edit.batch` model or tailored Project Kanban: culled → edited → in review → approved, with per-stage ownership

Request a Quotation

Tell us about your Photography Business Suite requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.