Commercial Proposal Generator for HVAC Distributor
Automated proposal generation system integrated with OpenCart e-commerce platform. Reduced proposal creation time from 40 minutes to 3 minutes, enabling faster response to customer inquiries during peak HVAC season.
Duration
3 weeks MVP + 2-3 months refinement
Team Size
1
My Role
Full-Stack Developer

Executive Summary
The client, a major HVAC equipment distributor, faced significant bottlenecks in their sales process. Sales managers spent up to 40 minutes creating each commercial proposal manually—looking up prices on the website, formatting documents in Word, and calculating totals. With the peak season approaching in April, this inefficiency threatened to impact conversion rates.
A key constraint: their online store ran on OpenCart 1.5.6.4—a platform over 10 years old. Despite its age, the site had excellent SEO rankings driving substantial organic traffic, making the client understandably reluctant to modify or migrate it.
We built a web application that integrates with their legacy OpenCart database through custom read-only connectors, enabling real-time product search with accurate pricing—all without touching the existing codebase. The system automatically generates professionally formatted PDF proposals with company branding, sequential numbering, and itemized pricing. The solution launched just before peak season and dramatically improved the team's response time to customer inquiries.
Key Metrics
Proposal Creation Time
Before
40 min
After
3 min
Daily Time per Manager
Before
3 hours
After
15 min
Calculation Errors
Before
Manual
After
Automated
Price Accuracy
Before
Manual lookup
After
Real-time sync
Mobile Access
Before
None
After
Full
The Challenges
Key obstacles that needed to be addressed
Time-Consuming Manual Process
Sales managers created proposals manually using Word/Excel templates, requiring 35-50 minutes per proposal
Business Impact
Slow response to customer inquiries led to lost sales opportunities, especially during high-demand periods
Outdated Pricing Information
Prices in proposals often didn't match the current website prices, requiring manual lookups and verification
Business Impact
Pricing discrepancies damaged customer trust and required time-consuming corrections
Seasonal Capacity Constraints
HVAC sales peak in spring (April-May), overwhelming the sales team with proposal requests
Business Impact
Unable to scale proposal output during critical revenue period, limiting growth potential
Legacy E-commerce Platform
The client's online store runs on OpenCart 1.5.6.4 — a version released over 10 years ago. The client was reluctant to migrate due to well-established SEO rankings that drive significant organic traffic
Business Impact
Any new tooling had to integrate with the legacy system without modifications, as changes risked breaking SEO URLs and disrupting revenue-generating search traffic
Failed API Approach
Initial plan was to add a simple REST API to the OpenCart installation. After deployment attempts, the legacy codebase proved extremely fragile — even minor modifications caused unexpected issues across the site
Business Impact
Pivot was required mid-project. Needed an alternative integration approach that avoided any code changes to the production e-commerce platform
Our Solutions
How we tackled the challenges and delivered results
Non-Invasive Legacy System Integration
After the API approach failed, pivoted to direct database integration. Built custom read-only connectors for OpenCart 1.5.6.4 without touching the legacy codebase. Zero modifications to the existing e-commerce platform preserved SEO rankings and site stability
Implementation
Dual-database architecture: mysql2 for direct OpenCart DB queries (products, prices, SEO URLs) + Prisma ORM for application data. Carefully mapped legacy table structures including `url_alias` for SEO-friendly links. Created a dedicated MySQL user with read-only permissions restricted to product catalog tables only — ensuring that even in case of credential exposure, no customer data or sensitive information could be accessed (only publicly available product catalog)
Server-Side PDF Generation
Professional PDF documents generated automatically with company branding, stamps, and consistent formatting
Implementation
Puppeteer renders HTML templates to PDF on the server, ensuring consistent output across all devices
Manager & Admin Roles
Simple authentication system allowing managers to create proposals while admins have full control
Implementation
Cookie-based auth with role headers, no external auth provider needed
All solutions successfully implemented and deployed
Results & Impact
Measurable outcomes achieved through our solutions
92% reduction in proposal creation time
Managers can respond to customer inquiries within minutes instead of hours
Improved lead-to-proposal conversion
Faster response during peak season captured more sales opportunities
Real-time price synchronization
Eliminated pricing discrepancies between proposals and website
Mobile-first field access
Sales team can create proposals during customer meetings
Project delivered on time and exceeded expectations
Technology Stack
Tools and technologies used to build this solution
Frontend
Backend
Database
Infrastructure
DevOps
All technologies were carefully selected to ensure optimal performance, scalability, and maintainability
“Honestly, I was worried going into April. Our Head of Sales had just left, I was covering his role on top of my own, and we had the busiest season ahead. The sales team was already struggling — creating proposals manually was eating up half their day. This tool was a lifesaver. Proposals that took 40 minutes now take 3. My managers can actually focus on selling instead of copy-pasting prices from the website. We not only survived the season without a sales lead — we beat last year's numbers. One thing that really mattered to me: they didn't touch our website. It's old, I know, but it brings in good traffic and I wasn't about to risk that. They found a way to pull product data directly without changing anything. That's the kind of problem-solving I appreciate.”
John S.
CEO / Acting Head of Sales