| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Inventory (stock) • Website (website) • eCommerce (website_sale) • Invoicing (account) |
| Lines of code | 3180 |
| Technical Name |
ecommerce_stock_notification |
| License | OPL-1 |
| Website | https://www.hexalian.com |
| Versions | 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Inventory (stock) • Website (website) • eCommerce (website_sale) • Invoicing (account) |
| Lines of code | 3180 |
| Technical Name |
ecommerce_stock_notification |
| License | OPL-1 |
| Website | https://www.hexalian.com |
| Versions | 17.0 18.0 19.0 |
E-commerce Stock Notifications
Bring customers back when products restock
Maximize your revenue by capturing interest even when inventory runs out. Allow customers to subscribe to back-in-stock notifications directly from the product page and automatically notify them when stock is replenished.
🌐 Unified Stock Configuration
ONE global setting for consistent stock logic
Global Stock Calculation Method
This module uses ONE unified setting that applies to ALL stock
features:
✅ Stock notification triggers (when to send "back in stock" emails)
✅ Add to cart disabling (when to block purchases)
✅ Stock status displays (out of stock badges)
📦 Actual Quantity (Default)
Active in all triggers: Uses physical On Hand stock only. This is the standard setting that ensures notifications and cart disabling happen only when goods have physically entered your warehouse.
📈 Forecasted Quantity
Active in all triggers: Uses Forecasted stock (On Hand + Incoming - Outgoing). Perfect for notifying customers and enabling purchases as soon as a Purchase Order is confirmed, even before goods arrive.
✅ Available Quantity (Strict)
Active in all triggers: Checks Free to Use stock (On Hand - Reserved). Ensures you never notify customers or allow purchases for stock that is technically on hand but already reserved for other pending orders. Safest for e-commerce.
Notification Data Management
Preserve Sent Notifications: Check this to keep a history of every notification sent. If unchecked (default), processed notifications are automatically deleted to maintain a lean, high-performance database.
Easily access all notification settings and records from the Sales > Configuration > Stock Notifications menu in the backend.
Seamless User Experience
Clear communication with your customers
Clear Status Indicators: When "Disable add to cart" is active, products automatically display a clear "Out of Stock" badge in the catalog, managing customer expectations before they even click.
Smart Product Pages: The "Add to Cart" button is automatically disabled and quantity selection is locked. A prominent "NOTIFY WHEN AVAILABLE" button appears, inviting the customer to subscribe.
Instant Feedback: Upon subscribing, customers receive immediate confirmation that they will be notified, providing assurance and improving the user experience.
Hybrid Mode: If "Disable add to cart" is off, you can still offer stock notifications while allowing purchases (e.g., for backorders). The "NOTIFY WHEN AVAILABLE" button appears alongside the active "Add to Cart" button.
Guest & Incognito Support
Capture Every Lead: Users don't need to be logged in to subscribe. Incognito or guest visitors are presented with an email input field, ensuring you capture every potential sale.
🧠 Smart Stock Logic
We handle the complexity so you don't have to
How It Works Technical Deep-Dive:
Odoo's default behavior is to hide out-of-stock products completely or remove the ability to interact with them. This loses you valuable leads!
Our Smart Fix:
- We force "Allow Out of Stock Orders" in the background.
- Our Javascript intercepts the "Add to Cart" event.
- If stock is 0, we block the purchase and show the "Notify Me" button.
- This guarantees your customers can ALWAYS subscribe to alerts.
Zero Configuration
Just install and it works.
Customer Portal Control
Self-service management for your users
Integrated Navigation: A dedicated "My Stock Alerts" link is automatically added to the customer's portal account menu for easy access.
Comprehensive Dashboard: Customers can view their active subscriptions, see product details and "Requested On" dates, and easily manage or cancel alerts from a clean, mobile-responsive interface.
Powerful Backend Management
Full visibility into demand
Request Tracking: Monitor all stock requests in real-time. The list view provides a quick overview of products, customers, and current status (e.g., Pending, Sent).
Detailed Control: Drill down into individual requests. Administrators can view full details including user email and requested date. You can even manually trigger notifications using the "Send notification Now" button for immediate engagement.
📞 Professional Support in English & Spanish
We're here to help you succeed
Need help or have questions? Contact our support team.
📧 Email: support@hexalian.com
💬 WhatsApp: +1 (724) 215-3235
🌐 Website: https://www.hexalian.com
🇺🇸 English | 🇪🇸 Español
- ✓ Module sold "AS-IS" without warranty of any kind
- ✓ Bug fixes provided at developer's discretion only
- ✓ No customization or feature requests included in base price
- ✓ Basic installation support provided via email
- ✓ Updates may be provided but are NOT guaranteed for all future Odoo versions
- ✓ Test thoroughly in staging environment before production deployment
⚖️ LEGAL TERMS & CONDITIONS
1. LICENSE: This module is licensed under the Odoo Proprietary License v1.0 (OPL-1). By purchasing, installing, or using this module, you acknowledge that you have read and agree to comply with all terms of the OPL-1 license. Unauthorized copying, modification, or distribution is strictly prohibited and may result in legal action.
2. LIMITATION OF LIABILITY: In no event will Hexalian LLC, its owners, developers, employees, or affiliates be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, data loss, or any other pecuniary loss) arising out of the use of or inability to use this module, even if Hexalian LLC has been advised of the possibility of such damages. In any case, Hexalian LLC's entire liability under any provision shall be limited to the amount actually paid by you for the module.
3. SUPPORT POLICY: Purchase of this module includes basic email support only for installation and initial configuration questions. Support does NOT include: (a) custom development, (b) feature requests or modifications, (c) troubleshooting custom code or third-party modules, (d) on-site assistance, (e) phone support, (f) urgent/emergency support, (g) training services. Response time for support requests is typically 24-48 hours during business days, but is not guaranteed.
4. UPDATES & MAINTENANCE: While the developer may release updates, bug fixes, or feature enhancements, there is NO GUARANTEE of updates, ongoing maintenance, or compatibility with future Odoo versions. Updates are provided at the sole discretion of the developer. Major version upgrades (e.g., Odoo 19 to Odoo 20) may require additional purchase. Security updates will be prioritized but are not contractually guaranteed.
5. COMPATIBILITY & TESTING: This module is designed for the specified Odoo version running on a standard installation. Compatibility with: (a) custom modules, (b) third-party modules, (c) modified Odoo core, (d) custom themes, or (e) specialized hosting environments is NOT GUARANTEED. It is YOUR responsibility to thoroughly test this module in a staging/development environment before deploying to production. Hexalian LLC is not responsible for any conflicts, errors, or data loss resulting from module interactions.
6. USER RESPONSIBILITIES: By using this module, you agree that you are solely responsible for: (a) maintaining complete and regular backups of your database before installing or updating this module, (b) testing the module thoroughly in a non-production environment, (c) ensuring compliance with all applicable laws, regulations, and data protection requirements (GDPR, CCPA, etc.), (d) proper configuration and security of your Odoo instance, (e) monitoring module performance and reporting bugs promptly, (f) understanding Odoo's architecture and basic troubleshooting.
7. DATA PRIVACY & SECURITY: This module processes customer notification data within your Odoo database. You are responsible for: (a) complying with applicable data protection laws, (b) obtaining necessary user consents, (c) securing your Odoo instance, (d) implementing appropriate data retention policies. Hexalian LLC does not have access to your data and is not a data processor under GDPR or similar regulations.
⚠️ BY PURCHASING, DOWNLOADING, INSTALLING, OR USING THIS MODULE, YOU ACKNOWLEDGE THAT YOU HAVE READ, UNDERSTOOD, AND AGREE TO BE LEGALLY BOUND BY ALL OF THESE TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO THESE TERMS, DO NOT PURCHASE OR USE THIS MODULE.
E-commerce Stock Notifications v19.0.1.0.0
Developed by Hexalian LLC
License: OPL-1 (Odoo Proprietary License v1.0) | All Rights Reserved
© 2026 Hexalian LLC. Unauthorized copying, modification, distribution, or use is strictly prohibited.
🔔 Never miss a sale again!
🛡️ Anti-Spam Security Features
Enterprise-grade rate limiting and fairness algorithms
Production-Safe Notification System
Advanced anti-spam protection prevents email server overload when hundreds of users are waiting for the same product. Intelligent rate limiting with FIFO fairness ensures no user is left behind.
Product-Level Rate Limiting
Prevents email server overload:
- Max Notifications per Product: 100 per cron cycle (default)
- FIFO Fairness Algorithm: First-come, first-served processing
- Attempt Tracking: Records all notification attempts for analysis
✅ Prevents burst sending when 500+ users wait for same product
✅ Ensures fair distribution across cron cycles
Notification Attempt Counter
Enhanced monitoring and analytics:
- Field:
notification_attempt_counton stock notification model - Tracks: How many times system tried to send each notification
- Use Cases: Identify popular products, analyze demand patterns
✅ Business intelligence for inventory planning
✅ Identify products causing rate limit hits
✅ Optimize stock replenishment strategy
Configuration Parameters
Customize rate limiting via Settings > Technical > Parameters > System Parameters:
| Parameter Key | Default Value | Description |
|---|---|---|
ecommerce_stock_notification.max_notifications_per_product
|
100 | Maximum emails sent per product per cron execution |
Tip: Lower this value if you have limited email server capacity. Increase for high-demand scenarios with fast restocking cycles.
FIFO Fairness Algorithm Implementation
How it works:
- Grouping: Notifications are grouped by product_template_id
- Sorting: Within each group, sorted by create_date (earliest first)
- Limiting: Only first N notifications per product are processed
- Tracking: All attempts are counted, even rate-limited ones
- Retry: Unprocessed notifications remain in queue for next cron cycle
Result: Even with 1000 waiting users, system sends only 100 emails per cycle (configurable), ensuring fair distribution and preventing email server overload.
Real-World Spam Prevention Scenarios
Scenario 1: Viral Product Launch
Problem: 500 users subscribed to notifications for limited-edition
product.
Without Protection: 500 emails sent instantly → email server
throttled/blacklisted.
With Rate Limiting: 100 emails per cycle, 5 cycles needed, all users
notified fairly.
Scenario 2: Stock Fluctuation
Problem: Product stock updates multiple times per day (manual adjustments,
warehouse sync).
Without Protection: Same users get multiple notifications per day.
With Rate Limiting: Processed notifications are archived/deleted,
preventing duplicates.
Enhanced Logging
Monitor anti-spam protection in real-time:
_logger.info("Rate limiting active for product X: found Y notifications, will process Z")_logger.info("Successfully sent email to X, attempt count: Y")_logger.info("Total notifications sent in this cycle: X")
Check Odoo logs to verify rate limiting is working correctly and adjust parameters as needed.
✅ FIFO Fairness Algorithm | ✅ Configurable Rate Limits | ✅ Production-Grade Stability
⚠️ IMPORTANT CONFIGURATION REQUIREMENT
PLEASE READ CAREFULLY: MANUAL CONFIGURATION REQUIRED
This module relies on the website_sale_stock core functionality. If you have been using Odoo with the "Continue Selling" option DISABLED (which is the default behavior), YOU MUST MANUALLY UPDATE YOUR PRODUCTS.
If a product is set to "Show as Out of Stock" (default Odoo behavior when stock is 0), Odoo's core logic will completely hide the "Add to Cart" button and prevent this module from verifying stock or showing the "Notify Me" button. This is NOT a defect of this module but a core Odoo stock prevention mechanism.
1. Global Setting (Inventory Defaults):
2. Product Level Setting (Sales Tab):
ACTION REQUIRED:
You must enable "Continue selling when out-of-stock" for your products. You can do this:
- Via GUI: Go to Product > Sales Tab > Out-of-Stock > Select "Continue selling when out-of-stock".
- Via Database/Import: Update the
allow_out_of_stock_orderfield toTruefor all product templates.
Note: We have removed the automatic overwrite of this field to prevent data loss or unwanted configuration changes. You are responsible for ensuring this configuration is correct.
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