A made-to-order Odoo retail configuration for bookshops — ISBN-driven catalog, consignment and sale-or-return handling, and a bookseller-tuned point of sale. ECOSIRE builds, installs, and supports it after a scoping call; it is not an off-the-shelf download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $349.00 USD; request a quote for a scoped proposal.
App manifest
Built around your workflow
A made-to-order Odoo retail configuration for bookshops — ISBN-driven catalog, consignment and sale-or-return handling, and a bookseller-tuned point of sale. ECOSIRE builds, installs, and supports it after a scoping call; it is not an off-the-shelf download.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your Odoo.
You go live in about 2–4 weeks, with a post-launch support window.
Running a bookshop on generic Odoo works until the details of the trade start to bite. A book is not just a product — it carries an ISBN-13 (and often a legacy ISBN-10), an imprint, an author, a series, a format (hardback, paperback, ebook, audio), an edition, and a publication date, and titles arrive on radically different commercial terms: firm-sale, sale-or-return, and publisher consignment. Odoo core gives you product.template, a barcode field, and a solid Point of Sale, but it has no native concept of "return this unsold stock to the distributor next quarter," no bibliographic identity beyond a single barcode, and no clean way to reconcile a consignment statement. Booksellers end up bending fields, keeping spreadsheets alongside Odoo, and losing the thread on what they actually owe each publisher.
This is a build-to-order retail configuration that ECOSIRE designs and builds to your shop's real workflow — not a template you self-install. Technically it extends product.template/product.product with bibliographic fields (ISBN-13/ISBN-10 with check-digit validation enforced by an @api.constrains guard, imprint, author many2many, series, format, edition, publisher list price vs. your net cost), and adds a book.consignment model to track sale-or-return and consignment terms with @api.depends computed fields that roll up units received, units sold, and units due back. Barcode scanning in POS is wired to resolve on ISBN so a scanned book jumps straight to the correct variant, and a QWeb "returns manifest" report generates the pick-and-pack list for stock going back to a distributor. Access is governed with a proper ir.model.access.csv plus record rules so shop-floor staff, buyers, and the owner each see the right scope.
On top of the data model we build the operational layer you actually run the shop with: reorder points and buyer worksheets driven from sell-through, an automated action that flags slow-moving consignment stock as its return window approaches, and optional integration to a distributor or wholesaler feed via Odoo's XML-RPC/JSON-RPC API so new-title metadata and availability can be pulled in rather than keyed by hand. Everything is delivered as a versioned Odoo module with its own __manifest__.py, targeting Odoo 17.0, 18.0, or 19.0 on Community or Enterprise — we confirm the edition during scoping because a few conveniences (e.g. advanced studio-style tweaks and certain accounting flows) differ between the two, and we build to what you run.
Delivery is build-to-order. After a short scoping call we confirm the exact fields, terms handling, POS behavior, reports, and any integrations, then hand back a fixed written quote and timeline; typical delivery is 2–4 weeks from confirmed scope, faster for a lean configuration and longer where multi-company or distributor integrations are involved. You get the installable source, deployment on your server or Odoo.sh, UAT on a staging copy with a rollback plan, documentation, and a training session before go-live. Pricing starts from $349 (indicative, single-company base scope); multi-company or multi-branch operation, distributor/wholesaler API integrations, and the depth of catalog data migration increase the quoted scope.
Runs the shop day-to-day and needs sale-or-return and consignment tracked accurately so publisher statements reconcile and unsold stock goes back on time — without a parallel spreadsheet.
Places orders against distributors and manages sell-through. Needs reorder worksheets, velocity-based reorder points, and slow-mover flags to buy tighter and avoid dead stock.
Oversees several bookstore locations on one Odoo database and needs per-branch stock, consistent bibliographic data, and multi-company scoping across the estate.
Owns the Odoo instance and wants a clean, well-documented module with proper security rules and a git handover they can maintain, rather than studio hacks and one-off fields.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Bibliographic identity (ISBN-13/10, imprint, author, series, format) | Built into the product model with validated ISBN check digits | Possible, but you design and maintain the schema yourself | Usually a single barcode field, limited or no bibliographic depth | |
| Sale-or-return & consignment tracking | Dedicated `book.consignment` model with return windows and rollups | Full control but everything from scratch and untested | Rarely covered; often left to spreadsheets | |
| POS behavior for booksellers | ISBN-resolving scan and counter-tuned POS screens | Buildable, but POS extension is intricate to get right | Generic retail POS, not bookseller-specific | |
| Fit to your workflow | Scoped and built to your exact terms and reports | Exact fit, but you own the whole build effort | Fixed feature set; you adapt to it | |
| Delivery model | Build-to-order, 2–4 weeks from confirmed scope | Depends entirely on your team's capacity | Instant download but generic and unsupported for your case | |
| Documentation, training & handover | Docs, user guide, training session, and git repo handover | Only what your team writes | Typically a README and community forum | |
| Support & maintainability | Post-go-live support window; clean, upgradeable module | Self-supported; quality varies with your team | Vendor support varies; may lag Odoo versions | |
| Total cost picture | Indicative from $349, fixed quote after scoping | Developer time can exceed a scoped build | Low sticker price, hidden adaptation cost |
No. This is a build-to-order product: ECOSIRE designs, builds, installs, and supports it for your shop after a scoping call. There is no instant download — you receive a module built to your confirmed workflow, delivered as versioned source with installation included.
Typical delivery is 2–4 weeks from confirmed scope. A lean single-company configuration lands toward the shorter end; multi-company operation, distributor API integrations, or large catalog migrations push toward the longer end. You get a fixed timeline in writing with your quote after the scoping call.
Pricing starts from $349 as an indicative single-company base-scope figure. It is not a fixed price — after a short scoping call we confirm exact fields, terms handling, reports, and integrations, then send a fixed written quote. Multi-company operation, extra integrations, and data-migration volume are the main drivers that increase scope.
Every build includes a post-go-live support window for defect fixes and configuration questions. Because we hand over the git repository and target a specific Odoo version, upgrades to a newer major version (e.g. 18.0 to 19.0) are handled as a separate scoped engagement — the module is built to be maintainable, not locked.
Both. We confirm your edition during scoping because a few conveniences differ between Community and Enterprise (certain accounting and studio-style flows), and we build to what you actually run — Odoo 17.0, 18.0, or 19.0.
Yes, as scoped. We can integrate a distributor or wholesaler feed via Odoo's XML-RPC/JSON-RPC API so new-title metadata and availability are pulled in rather than keyed by hand. The specific feed, fields, and refresh cadence are confirmed during scoping and priced into the quote.
Yes. Existing products can be extended with bibliographic fields and mapped to the new consignment model as part of an optional data-migration deliverable. Migration volume and data quality are assessed during scoping, and they influence the final quote.
A made-to-order Odoo retail configuration for bookshops — ISBN-driven catalog, consignment and sale-or-return handling, and a bookseller-tuned point of sale. ECOSIRE builds, installs, and supports it after a scoping call; it is not an off-the-shelf download.