A build-to-order Odoo Point of Sale extension that lets cashiers apply fixed-amount or percentage discounts to the whole order or to individual lines, with configurable limits and permissions. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $249.00 USD; request a quote for a scoped proposal.
App manifest
Built around your workflow
A build-to-order Odoo Point of Sale extension that lets cashiers apply fixed-amount or percentage discounts to the whole order or to individual lines, with configurable limits and permissions. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19.
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.
Cashiers routinely need to grant a discount at the register — a manager waving through 10% on a slow afternoon, a line item marked down because the box is dented, a loyalty gesture keyed in by hand. Out of the box, Odoo POS handles discounts unevenly: the per-line discount field exists but is fiddly to reach on a touchscreen, there is no clean one-tap way to apply a single discount across the whole order, and there are no guardrails to stop a junior cashier from keying in 90% off. Teams end up training around the gaps, voiding and re-ringing orders, or disabling discounts entirely — which pushes markdowns back to the manager's terminal and slows the queue.
ECOSIRE builds a Point of Sale Order Discount extension that closes those gaps as a first-class POS action. We add an order-level discount control to the POS screen (OWL components layered over the standard point_of_sale frontend) that applies either a fixed cash amount or a percentage across every line, plus a streamlined per-line discount path so a cashier can mark down a single product without touching the rest of the ticket. On the backend, the discount is modeled cleanly on pos.order and pos.order.line with compute methods (@api.depends on quantity, price, and tax) so totals, tax bases, and the eventual account.move invoice all reconcile correctly — no phantom values, no rounding drift between the session and the posted journal entry.
Control is the point of the build. We wire discount limits and reason codes to POS configuration (pos.config) and to user groups via ir.model.access.csv and record rules, so you decide who may discount, up to what ceiling, and whether a reason or manager approval is required past a threshold. Every discount is captured on the order for reporting, so you can slice markdown by cashier, product category, or session in a QWeb receipt footer and in analysis views. Because it is built on the standard ORM and session sync, it works with your existing payment methods, receipt printers, and the offline-capable POS client, and it is compatible with both Community and Enterprise editions of the release you run.
Delivery is made-to-order, not an instant download. After a short scoping call we confirm the exact discount rules, permission tiers, and reporting you need, then build against your target Odoo version (17.0, 18.0, or 19.0), test on a staging copy of your database, and install to production with a rollback path. Typical delivery is 2 to 4 weeks from confirmed scope, depending on how many permission tiers, approval flows, and integrations are in play. Pricing starts from $249 (indicative, single-company base scope); multi-company rollouts, custom approval workflows, loyalty or ERP integrations, and localization or fiscal-receipt depth increase the quoted scope.
Runs one or more Odoo POS shops and needs cashiers to grant discounts quickly without giving away margin. Wants ceilings, approval gates, and per-cashier markdown reporting so promotions stay controlled.
Owns the Odoo instance and prefers a clean, ORM-native module with proper access rules over a fragile in-house patch. Needs source, docs, and a version-matched build they can maintain and upgrade.
Cares that discounts flow correctly into tax bases and the `account.move` ledger so session totals reconcile with posted journal entries and audit trails stay clean.
Operates several registers or locations and needs consistent discount rules per `pos.config`, with reason codes and approvals that hold up across shops and staff.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Whole-order discount in one action | One-tap fixed or percentage discount across all lines | Possible but you design and build it yourself | Often per-line only or clunky on touchscreen | |
| Permission ceilings and approval gates | Group-based limits with manager-approval threshold | Whatever you have time to implement | Limited or fixed to the vendor's model | |
| Version and edition fit | Built for your exact 17/18/19, Community or Enterprise | Depends on your team's version expertise | Version support varies; upgrades lag | |
| Tax and accounting reconciliation | Discount on taxable base, reconciles to account.move | Must get compute and tax logic right yourself | Usually correct but hard to verify | |
| Reason codes and markdown reporting | Captured reasons plus cashier/category analysis | Build the fields and reports from scratch | Rarely includes reporting depth | |
| Support and source ownership | Support window plus full source and git handover | You own it entirely, including all fixes | Support tied to the vendor's terms | |
| Delivery model | Scoped, built, tested on staging, installed for you | Your own timeline and resourcing | Instant download, then self-integrate | |
| Cost predictability | Indicative from-price, fixed quote after scoping | Open-ended developer time | Low list price, hidden integration cost |
No. This is a build-to-order module. ECOSIRE builds it to your confirmed scope and target Odoo version, tests it on staging, and installs it for you. There is no instant download — you receive a version-matched, tested module plus source code.
Typical delivery is 2 to 4 weeks from confirmed scope. The exact timeline depends on how many permission tiers, approval flows, and integrations you need. We confirm a schedule with you on the scoping call before any build work begins.
Pricing starts from $249 as an indicative single-company base scope. After a short scoping call we confirm your exact discount rules, permissions, and reporting, then issue a fixed quote. Drivers like multi-company rollout, custom approval workflows, integrations, and fiscal-receipt localization increase the quoted scope.
Every build includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full source and git repository, you can maintain it yourself, and we can quote a separate migration when you upgrade to a newer Odoo major version (17 to 18 to 19).
It is built for both Community and Enterprise editions. We target the exact release you run — 17.0, 18.0, or 19.0 — and build on the standard `point_of_sale` app so it works with your existing payment methods, receipt printers, and offline POS client.
Yes. Discount permissions are modeled via user groups, `ir.model.access.csv`, and record rules. You set which roles can discount, up to what ceiling, and whether a reason code or manager approval is required past a threshold — all configurable per POS register.
Yes. Discounts are applied to the taxable base with proper compute methods, so the tax, session totals, and the posted `account.move` journal entries all reconcile. This is a core part of the build and is validated during UAT on your staging database.
A build-to-order Odoo Point of Sale extension that lets cashiers apply fixed-amount or percentage discounts to the whole order or to individual lines, with configurable limits and permissions. ECOSIRE scopes, builds, installs, and supports it for your Odoo 17, 18, or 19.