Skip to main content
Point of Sale Order Discount — A build-to-order Odoo Point of Sale extension that lets cashiers apply fixed-amount or percent — 1/1Illustrative preview

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.

What is Point of Sale Order Discount?

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

Key Features

Order-level discount action on the POS screen applying a single fixed amount or percentage across all order lines in one tap
Streamlined per-line discount entry writing to the standard `discount` field on `pos.order.line` without voiding the ticket
Discount ceilings enforced per user group so a cashier cannot exceed a configured maximum percentage or amount
Manager-approval gate above a configurable threshold, prompted directly in the POS UI before the discount commits
Optional mandatory reason codes captured per discount and stored on the order for audit and analysis
Compute methods on `pos.order`/`pos.order.line` using `@api.depends` so subtotal, tax base, and grand total recalculate correctly after any discount
Correct tax handling — discount applied to the taxable base so the posted `account.move` and journal entries reconcile with the session
Discount settings surfaced on `pos.config` so different registers or shops can carry different rules
Security modeled via `ir.model.access.csv` plus record rules gating who can see, set, and approve discounts
OWL frontend components layered over the standard `point_of_sale` client, preserving offline session sync and re-sync behavior
QWeb receipt template extended to print the applied discount, reason, and net line prices on the customer receipt
Reporting fields exposing markdown by cashier, product category, and session for pivot and graph analysis
Read/write exposure through Odoo's XML-RPC/JSON-RPC API so external systems can query discounted orders
Built and tested against Odoo 17.0, 18.0, and 19.0, compatible with both Community and Enterprise editions

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

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 one working week from confirmed scope, depending on how many permission tiers, approval flows, and integrations are in play. Pricing starts from $999 (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.

What you get

  • Installable Odoo module source code for your specified version (17.0, 18.0, or 19.0), Community or Enterprise
  • Installation and configuration on your environment, including POS config, discount ceilings, and permission tiers
  • Technical documentation covering models, fields, security rules, and the `__manifest__.py` dependency map
  • End-user guide plus a live training session for cashiers and managers on the discount and approval flows
  • UAT on a staging copy of your database with a documented rollback plan before production cutover
  • Post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover with tagged release and commit history
  • Compatibility notes and upgrade guidance for future Odoo version migrations

Who this is for

Retail Operations Manager

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.

Odoo Administrator / Internal IT

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.

Finance / Accounting Lead

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.

Franchise or Multi-Store Owner

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.

How Point of Sale Order Discount Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Whole-order discount in one actionOne-tap fixed or percentage discount across all linesPossible but you design and build it yourselfOften per-line only or clunky on touchscreenNo true order-level discount action
Permission ceilings and approval gatesGroup-based limits with manager-approval thresholdWhatever you have time to implementLimited or fixed to the vendor's modelNo ceilings; any user can key any discount
Version and edition fitBuilt for your exact 17/18/19, Community or EnterpriseDepends on your team's version expertiseVersion support varies; upgrades lagShips with core but lacks the controls
Tax and accounting reconciliationDiscount on taxable base, reconciles to account.moveMust get compute and tax logic right yourselfUsually correct but hard to verifyBasic per-line discount only
Reason codes and markdown reportingCaptured reasons plus cashier/category analysisBuild the fields and reports from scratchRarely includes reporting depthNo reason codes or discount analytics
Support and source ownershipSupport window plus full source and git handoverYou own it entirely, including all fixesSupport tied to the vendor's termsStandard Odoo support only
Delivery modelScoped, built, tested on staging, installed for youYour own timeline and resourcingInstant download, then self-integrateAlready present, no build needed
Cost predictabilityIndicative from-price, fixed quote after scopingOpen-ended developer timeLow list price, hidden integration costNo extra cost, but missing features

Frequently Asked Questions about Point of Sale Order Discount

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

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.

How long does delivery take?

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

How does pricing and scoping work?

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

What about support and future Odoo updates?

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).

Does it work with Odoo Community, or only Enterprise?

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.

Can we control who is allowed to give discounts?

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.

Will discounts reconcile correctly with accounting?

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.

Request a quote

Point of Sale Order Discount

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.

  • Order-level discount action on the POS screen applying a single fixed amount or percentage across all order lines in one tap
  • Streamlined per-line discount entry writing to the standard `discount` field on `pos.order.line` without voiding the ticket
  • Discount ceilings enforced per user group so a cashier cannot exceed a configured maximum percentage or amount
  • Manager-approval gate above a configurable threshold, prompted directly in the POS UI before the discount commits

Request a Quotation

Tell us about your Point of Sale Order Discount 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.