✨ Four Powerful Features
📈 Sales History Tracking
Automatically calculates net quantity sold per product over a configurable period (e.g. last 90 days). Based on posted invoices minus credit notes. Displayed directly on the product form.
🛒 Generate PO from Sales Data
One-click button on any Purchase Order instantly creates order lines based on actual sales history and current inventory levels. Stop guessing what to order.
🚚 Vendor Lead Time Tracking
Automatically calculates each vendor's average delivery time from PO confirmation to first receipt. Backorders are excluded - only real first deliveries count.
💰 Auto-Update Margins
When confirming a PO, optionally update product costs and sale prices automatically while maintaining your existing margin ratios. Full details logged in the PO chatter.
⚡ Built for Scale
Unlike solutions that timeout on large catalogs, this module uses a datetime-based rotation system with a self-scheduling cron job that runs every 20 minutes from 11pm–3am in your local timezone.
| Catalog Size | Batch Size | Products/Night | Full Cycle |
|---|---|---|---|
| Any size | 100 (default) | 1,200 | ~21 nights for 25k products |
| Any size | 250 | 3,000 | ~8 nights for 25k products |
| Any size | 500 (tested max) | 6,000 | ~4 nights for 25k products |
- ✅ Runs immediately on install - first update fires automatically, no waiting
- ✅ Smart rotation - always updates oldest products first, no duplicates
- ✅ Self-healing - if a run is interrupted, it picks up where it left off
- ✅ Automatic timezone detection - uses the most common timezone across your users
- ✅ Chunked commits - prevents transaction timeouts on any server
🚀 Getting Started
-
Install the Module
Search for "Sales History & PO Improvements" in Apps and click Install. The first sales history update runs automatically. -
Configure Sales History
Go to Settings → Sales → Sales History. Set your tracking period in days and batch size per run. -
Configure Purchase Settings
Go to Settings → Purchase. Enable Auto Update Margins if you want costs and prices updated automatically when confirming POs. -
Generate Your First PO
Create a Purchase Order, select a vendor, and click "Generate from Sales History". Order lines are created automatically based on sales data and stock levels.
💡 Use Cases
📦 Smarter Restocking
Generate purchase orders based on what actually sold, not gut feeling. Reduce overstock and stockouts at the same time.
📊 Performance Visibility
Instantly see how much of any product sold in the last 90 days (or your chosen period) directly on the product form.
🤝 Vendor Comparison
Know which vendors actually deliver on time. Real lead time data based on actual receipts, not quoted estimates.
💸 Margin Protection
When supplier prices change, automatically update your sale prices to protect your margins without manual recalculation.
🔧 Technical Details
What's Included
- ✅ Sales history settings in Sales Configuration
- ✅ Auto-update margins setting in Purchase Configuration
- ✅ Sales performance section on product form
- ✅ Vendor lead time displayed on Purchase Order form
- ✅ "Generate from Sales History" button on Purchase Orders
- ✅ Single self-scheduling cron (replaces need for multiple jobs)
- ✅ Weekly vendor lead time update cron
- ✅ Detailed logging for monitoring and troubleshooting
- ✅ Statistics function for tracking update progress
Ready to make data-driven purchasing decisions?
Install now and start optimizing your inventory today.
Questions? Contact us at IT@profast.supply
Please log in to comment on this module