Sale Minimum Order Amount | Customer MOQ | Block Below Minimum | Odoo 19
by Odoo Cube https://odoocube.com$ 5.00
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 104 |
| Technical Name |
sale_minimum_order |
| License | OPL-1 |
| Website | https://odoocube.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 104 |
| Technical Name |
sale_minimum_order |
| License | OPL-1 |
| Website | https://odoocube.com |
Sale Minimum
Order Amount | Customer MOQ | Block Below Minimum
for Odoo 17 / 18 / 19
Enforce minimum order policies per customer â set the minimum order value, get a warning banner when an order falls short, and optionally block confirmation until the minimum is met. Sales Managers can override for exceptions.
Protect Margins with Minimum Order Enforcement â Built for Odoo Sales
No more unprofitable micro-orders slipping through. Set a minimum per customer, get warned instantly, and let your Sales Manager approve exceptions â all without leaving the sale order.
💸
MOQ per Customer
Set a minimum order amount directly on each customer or contact record â overrides the global default when present.
📌
Warning Banner
A clear warning banner is shown on the sale order when the total falls below the customer's minimum â visible before any action is taken.
📈
Optional Confirmation Block
Enable hard enforcement â order confirmation is blocked when the total is below the minimum, preventing under-minimum orders entirely.
📋
Manager Override
Sales Managers can override the block for special cases â the exception reason is logged in the order chatter for a full audit trail.
🛠
Global Default Setting
Configure a company-wide default minimum in Sales settings â applied to all customers who don't have an individual MOQ set.
🔢
Multi-Currency Support
Minimum amounts are enforced per the order's currency â works seamlessly in multi-currency environments without manual conversion.
Setup Guide — How It Works
Step-by-step guide to using this module
💰 Set minimum order amount (MOQ) per customer or contact
Set minimum order amount (MOQ) per customer or contact

🔢 Warning banner displayed on the sale order when total is below minimum
Warning banner displayed on the sale order when total is below minimum

👤 Optional: block confirmation if order total is below minimum
Optional: block confirmation if order total is below minimum

📊 Sales Manager can override the block for exceptions
Sales Manager can override the block for exceptions

📋 Default global minimum configurable in Sales settings
Default global minimum configurable in Sales settings

Why You Need This Module
❌ The Problems
- No minimum order enforcement â small orders confirmed without warning
- Salespeople manually check MOQ on each order â slow and error-prone
- No per-customer minimum â one-size policy doesn't fit all accounts
- No audit trail when exceptions are granted to special customers
✅ The Solutions
- Set minimum order amount (MOQ) per customer or contact
- Warning banner displayed on the sale order when total is below minimum
- Optional: block confirmation if order total is below minimum
- Sales Manager can override the block for exceptions
Where It Applies
Wholesale distributors enforcing minimum case quantities
Service companies with minimum engagement fees
E-commerce operators setting a minimum order for free shipping
Protect against unprofitable micro-orders that cost more to process
Compatibility
✓ Odoo 17 / 18 / 19 Community ✓ Odoo 17 / 18 / 19 Enterprise ✓ Depends on: base, saleKey Features
💸 Set minimum order amount (MOQ) per customer or contact
Set minimum order amount (MOQ) per customer or contact
📌 Warning banner displayed on the sale order when total is bel
Warning banner displayed on the sale order when total is below minimum
📈 Optional: block confirmation if order total is below minimum
Optional: block confirmation if order total is below minimum
📋 Sales Manager can override the block for exceptions
Sales Manager can override the block for exceptions
🛠 Default global minimum configurable in Sales settings
Default global minimum configurable in Sales settings
🔢 Works per currency and is multi-currency compatible
Works per currency and is multi-currency compatible
📄 Exception reason logged in order chatter when manager overri
Exception reason logged in order chatter when manager overrides
Key Positioning
Why Minimum Order Enforcement Matters For Your Business
Protect Profitability
Stop micro-orders that cost more to process than the margin they generate.
Flexible Policy
Global default + per-customer override â set different minimums for different account tiers.
Full Audit Trail
Every manager exception is logged in the chatter â who approved it, when, and why.
Frequently Asked Questions
QIs this compatible with Odoo 19?
Yes, fully compatible with Odoo 17, 18 and 19 Community and Enterprise.
QDoes it work with both Community and Enterprise?
Yes. The module is tested on both Odoo Community and Enterprise editions for versions 17, 18 and 19.
QCan I set a different minimum for each customer?
Yes. Each customer has a Minimum Order Amount field on their contact form. When set, it overrides the global default configured in Sales settings. Customers without an individual minimum fall back to the global setting.
QCan a Sales Manager approve an order below the minimum?
Yes. The block mode is optional. When enabled, a user with the Sales Manager role can override the block and confirm the order anyway â the exception reason is automatically logged in the order chatter for a complete audit trail.
QIs a subscription required?
No. It is a one-time purchase of $5.00 with lifetime access and free bug-fix updates.
QHow do I get support?
Email us at info@odoocube.com or submit a ticket. Include your Odoo version, module version, and a description of the issue.
Support & Contact

Bug Reports
Submit a Ticket ↗

Our Website
odoocube.com ↗

Chat with us ↗
$5.00
One-time · Odoo 17 / 18 / 19 · OPL-1
✓ Lifetime access ✓ Free updates ✓ Email support ✓ Community & Enterprise
Get It Now — $5.00Scan to visit our website
odoocube.com
Scan to chat on WhatsApp
WhatsApp Us
Why OdooCube?
Practical, lightweight Odoo modules built for real business operations
Practical Focus
Modules built around how operations actually run, not just demo flows.
Multi-Version Support
Every module on Odoo 17, 18 and 19 — Community & Enterprise, fully tested.
Email Support Included
Free bug-fix updates and email support included with every purchase.
Most Demanded Apps
Connect With Us
odoocube.com |
WhatsApp Us |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module