Skip to main content
Bookstore Retail Suite for Odoo — A made-to-order Odoo retail configuration for bookshops — ISBN-driven catalog, consignment  — 1/1Illustrative preview

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.

What is Bookstore Retail Suite for Odoo?

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 $999.00 USD; request a quote for a scoped proposal.

Key Features

Extends `product.template`/`product.product` with bibliographic fields: ISBN-13, legacy ISBN-10, imprint, author (`many2many`), series, format, edition, and publication date
ISBN check-digit validation enforced server-side via an `@api.constrains` guard so malformed identifiers never enter the catalog
`book.consignment` model tracking sale-or-return and publisher-consignment terms, with return windows and per-title commercial terms
`@api.depends` computed rollups of units received, units sold, and units due back per consignment agreement, so publisher statements reconcile without spreadsheets
POS barcode/ISBN resolution: a scanned book maps straight to the correct `product.product` variant across formats and editions
QWeb returns-manifest report that produces the pick-and-pack list and cover note for stock going back to a distributor
Automated action (`ir.cron` / base automation) that flags slow-moving consignment stock as its return window approaches
Buyer reorder worksheets driven from sell-through, with reorder points seeded from historical velocity
Distributor/wholesaler metadata pull via Odoo's XML-RPC/JSON-RPC API to populate new-title records instead of manual keying (optional, scoped)
List-price vs. net-cost handling so publisher RRP and your buy-in price are both tracked and margin is computed correctly
Record-rule-scoped access via `ir.model.access.csv` separating shop-floor staff, buyers, and owner permissions
Views built in XML/OWL: bookseller-tuned product form, consignment dashboard, and POS screen tweaks that fit real counter work
Targets Odoo 17.0, 18.0, and 19.0 on Community or Enterprise, packaged as a versioned module with a clean `__manifest__.py`
Demo/seed data option so staff can train on a realistic catalog before the live cutover

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

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 one working week 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 $999 (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.

What you get

  • Installable, versioned Odoo module source code for your chosen version (17.0 / 18.0 / 19.0), Community or Enterprise
  • Installation and configuration on your server or Odoo.sh, including POS and access-rights setup
  • Technical documentation: data model, models/fields, security rules, and integration points
  • End-user guide plus a live training session for shop-floor and buyer staff
  • UAT on a staging copy with a documented rollback plan before production cutover
  • Post-go-live support window for defect fixes and configuration questions
  • Git repository handover with full commit history and tagged release
  • Optional catalog data migration and demo/seed data load from your existing records

Who this is for

Independent bookshop owner running Odoo

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.

Store buyer / inventory manager

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.

Multi-branch retail operations lead

Oversees several bookstore locations on one Odoo database and needs per-branch stock, consistent bibliographic data, and multi-company scoping across the estate.

Odoo partner / internal IT team

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.

How Bookstore Retail Suite for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Bibliographic identity (ISBN-13/10, imprint, author, series, format)Built into the product model with validated ISBN check digitsPossible, but you design and maintain the schema yourselfUsually a single barcode field, limited or no bibliographic depthOne barcode field only; no bibliographic concept
Sale-or-return & consignment trackingDedicated `book.consignment` model with return windows and rollupsFull control but everything from scratch and untestedRarely covered; often left to spreadsheetsNo native concept of consignment or sale-or-return
POS behavior for booksellersISBN-resolving scan and counter-tuned POS screensBuildable, but POS extension is intricate to get rightGeneric retail POS, not bookseller-specificSolid generic POS with no book-aware handling
Fit to your workflowScoped and built to your exact terms and reportsExact fit, but you own the whole build effortFixed feature set; you adapt to itGeneric; you bend fields to cope
Delivery modelBuild-to-order, one working week from confirmed scopeDepends entirely on your team's capacityInstant download but generic and unsupported for your caseAlready present; no book-specific features
Documentation, training & handoverDocs, user guide, training session, and git repo handoverOnly what your team writesTypically a README and community forumGeneral Odoo docs only
Support & maintainabilityPost-go-live support window; clean, upgradeable moduleSelf-supported; quality varies with your teamVendor support varies; may lag Odoo versionsCovered by your Odoo support contract, no book features
Total cost pictureIndicative from $999, fixed quote after scopingDeveloper time can exceed a scoped buildLow sticker price, hidden adaptation costNo extra license cost, but manual workarounds cost time

Frequently Asked Questions about Bookstore Retail Suite

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

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.

How long does delivery take?

Typical delivery is one working week 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.

How does pricing and scoping work?

Pricing starts from $999 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.

What about support and future Odoo updates?

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.

Does it work on Odoo Community or only Enterprise?

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.

Can it pull book metadata from our distributor?

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.

We already have a product catalog in Odoo — can you migrate it?

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.

Request a quote

Bookstore Retail Suite

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.

  • Extends `product.template`/`product.product` with bibliographic fields: ISBN-13, legacy ISBN-10, imprint, author (`many2many`), series, format, edition, and publication date
  • ISBN check-digit validation enforced server-side via an `@api.constrains` guard so malformed identifiers never enter the catalog
  • `book.consignment` model tracking sale-or-return and publisher-consignment terms, with return windows and per-title commercial terms
  • `@api.depends` computed rollups of units received, units sold, and units due back per consignment agreement, so publisher statements reconcile without spreadsheets

Request a Quotation

Tell us about your Bookstore Retail 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.