Stop orders that erode your margin before they are confirmed
Define cost-relative minimum-margin policies with tiered rules, enforce them with a real hard block on Sales and POS, and give managers an auditable override path — instead of a warning reps can simply dismiss.
The problem
Odoo's standard sales flow shows a computed margin but never enforces one. A busy rep can confirm a quote at or below cost, and the leakage only surfaces weeks later during a profitability review — by which point the goods are already shipped. A flat currency minimum cannot govern a catalog spanning a €3 item and a €300 item, so most teams end up policing margin by hand, product by product.
The solution
Build reusable margin policies out of cost-band tiers, assign them to products, categories, or the whole catalog in bulk, and let the system hard-block non-compliant sale and POS lines automatically. Reps see a live margin-gap badge before they hit the block, and a manager can approve a documented exception without disabling the control for everyone else.
Everything a margin control needs
Every capability below is implemented in the module.
Reusable margin policies
Build a policy once from cost-band tiers and reuse it across as many products or categories as you need, instead of configuring a minimum on every product form.
Percentage, cost-relative tiers
Set cost bands with their own minimum margin percentage — for example 75% under €5 and 50% between €5 and €10 — so one policy correctly governs both cheap and expensive items.
Product, variant & category assignment
Assign a policy directly on a product or variant, inherit one from the product category, or fall back to a company-wide default — your choice, per product.
Live margin-gap badge
Every sale order line shows a clear badge for how far it sits above or below its minimum, so reps can self-correct pricing before they ever hit a block.
Configurable warn or hard-block
Choose warn-only or a real hard block on confirmation, per company. A blocked quotation shows a violation ribbon and cannot be confirmed without going through the override workflow.
Manager approval & audit trail
Give an authorized approver group a documented override path for genuine exceptions, so enforcement stays strict without being rigid — with a record of who approved what.
Bulk assignment across catalogs
Select thousands of products in a list view and apply a margin policy to all of them in one wizard, instead of opening every product form one at a time.
Point of Sale enforcement
Configure the same margin policy engine to warn or block below-minimum lines at the register, so cashiers get the same protection as your sales desk.
Missing-cost handling
Choose how lines with no recorded cost are treated — warn or ignore — so an incomplete cost catalog never silently blocks every quotation.
How it works
Define a margin policy
Create cost-band tiers, each with its own minimum margin percentage, to match how your catalog actually prices.
Assign it to your catalog
Set the policy on a product, a whole category, or bulk-assign it to thousands of SKUs at once from the product list.
Reps quote as usual
The margin badge updates live on each line, and the system warns or blocks automatically the moment a line falls below minimum.
Managers override with a trail
An authorized approver can clear a genuine exception, and every override is logged for later review.
Frequently asked
No sales fog. If your question isn't here, email us and we'll answer it the same way.
Yes. Each margin policy is built from cost-band tiers, so you can require a higher percentage on cheap items and a lower percentage on expensive ones within the same policy.
Buy it on the Odoo App Store
Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.
Minimum Sales Margin Restriction
Reusable cost-relative margin tiers assigned by product, variant or category, enforced as a warning or a real hard block on Sales and POS — with a manager override that is recorded.
Buy on Odoo App StoreMore Odoo sales apps
Mixed Discount in Sale, Purchase and Invoicing
An itemized stack of discount components per line on sale orders, purchase orders and invoices — resolved sequentially or cumulatively into the native discount, with templates, a bulk wizard and over-limit guardrails.
Multiple Delivery Addresses on Sales Orders
Order-level and line-level delivery addresses with required confirmation, automatic delivery splitting behind a preview, per-line instructions and delivery-versus-invoice conflict warnings — visible on reports, the portal and an immutable audit trail.
Odoo Digital Signature Pro
Capture company and counterparty signatures on Sales Orders, Purchase Orders, Invoices, Bills and Deliveries — with a compliance-grade audit trail, configurable enforcement, and passwordless email-to-sign.
One-time Delivery Contact
Capture a one-off shipping address on the sales order, preview and confirm it, and let it archive itself afterwards — with postal-code validation, duplicate reuse and auto-purge.
Partner Last Order Details
Last sale order and last purchase order, with an inline line-item preview and one-click access, right on every contact — plus a recency report for triage.
Portal Sale Orders & Quotations Filter
Status badges, sortable columns, quick filters, date ranges, grouping, saved presets and CSV export on the customer portal's orders and quotations — self-service order tracking without backend access.