CNM Online is a UK supplier of bathroom and heating products, trading as Prestige Radiators Ltd since 2004. The business serves an unusual customer mix — NHS trusts, Wembley Stadium, the North Eastern Universities Purchasing Consortium, schools and councils on the public-sector side, and consumer renovators on the B2C side. Two very different buyer journeys through one platform. The store had been running on Magento 2.3.5 with PHP 7.3 — both well past end-of-life by the time CNM reached out. We delivered a full rescue and upgrade in approximately two months: staircase upgrade through Magento 2.4.8, PHP 7.3 → 8 migration, infrastructure migration to a new dedicated server with LiteSpeed, payment integration fixes across six methods, custom invoice PDF + VAT template work for B2B procurement workflows, and the bug fixing and performance optimization that an active UK supplier needs to stay compliant and competitive.
The challenge
CNM Online represents the kind of rescue project where the customer base creates the urgency.
The business has been online since 2004 — twenty years of UK B2B and B2C supply across radiators, boilers, bathroom furniture, shower wastes, and infrared heaters. Customer roster includes NHS trusts, Wembley Stadium, the North Eastern Universities Purchasing Consortium (NEUPC), plus schools, councils, and consumer renovators across mainland UK. The store also acts as the eCommerce arm of Prestige Radiators Ltd — meaning B2B procurement orders flow through the same platform as £99 consumer purchases.
But by late 2024, the technical foundation had fallen behind the business it supported. The store was running on Magento 2.3.5 with PHP 7.3 — a combination with several compounding problems:
Magento 2.3.5 well past end-of-life — Adobe officially ended support for 2.3.x in September 2022; by late 2024, that meant two years of unpatched CVEs accumulating
PHP 7.3 reached end-of-life in December 2021 — three years without security updates on the runtime itself, an issue that compounds the Magento exposure
Payment integration bugs — checkout-flow issues across the six payment methods CNM offers, including the B2B-critical Purchase Order and Proforma Invoice workflows that NHS, council, and university buyers depend on
Invoice generation friction — B2B customers (especially public sector) require specific invoice formats with correct VAT treatment; the existing setup needed cleanup to meet UK procurement expectations
Performance degradation — typical of a 2.3.x store running on aging infrastructure, slowing both consumer browsing and B2B account workflows
Pending UK procurement requirements — schools and NHS trusts increasingly require modern security postures and accessibility compliance from suppliers; a platform two major versions behind isn't a long-term option
A platform serving NHS trusts and Wembley Stadium can't afford the kind of failure modes that late-stage Magento 2.3.x typically produces. The brief was a structured rescue and upgrade — keep the business running, modernize the foundation, fix the payment and invoice friction, and get the platform on a supported stack that public-sector procurement teams would accept.
Approximately two months from start to launch. Every category of work to ship inside that window.
The solution
We delivered the rescue and upgrade across four phases over approximately two months, following the same rescue framework we apply to every inherited Magento store.
Phase 1 — Audit, Stabilization & Infrastructure Migration
Stage 1 of any rescue is "stop the bleeding." For CNM, that meant getting the immediate operational risks under control before touching the upgrade work.
Work in this phase:
Full technical audit — Magento 2.3.5 version state, PHP 7.3 runtime, server configuration, log analysis, indexer status, cron health, full module inventory
Infrastructure migration to new dedicated server — the existing hosting wasn't going to support the upgraded stack the business needed. We provisioned a new UK-based dedicated server sized for the catalog and traffic profile, with the headroom to handle peak B2B procurement volume without throttling
LiteSpeed Web Server setup with LSCache — chosen over Varnish for this engagement, LSCache provides full-page caching with native Magento 2 integration and significantly less configuration overhead than the standard Varnish stack. LiteSpeed also handles HTTP/3 cleanly, which UK Core Web Vitals measurement increasingly rewards
Stabilization checklist — production mode confirmed, JS/CSS merging and minification, image conversion to WebP, lazy loading enabled across the catalog
Security baseline — 2FA for all admin accounts, automated backups configured and verified, Content Security Policy applied
Immediate bug triage — the most disruptive payment and checkout bugs addressed before the larger upgrade was scheduled
After Phase 1, the store stopped degrading and stabilized on infrastructure ready to absorb the upgrade work.
Phase 2 — Magento 2.3.5 → 2.4.8 Staircase Upgrade & PHP Migration
The Magento upgrade ran through Adobe's recommended upgrade path — not a direct jump, which isn't supported across five minor versions. The staircase:
2.3.5 → 2.3.7-p3 (final 2.3 patch, mandatory pre-2.4 step)
2.3.7 → 2.4.0 → 2.4.3 → 2.4.6 → 2.4.8 (sequential through 2.4.x versions, with PHP and database compatibility checks at each step)
Critical technical transitions in this phase:
PHP 7.3 → PHP 8.x — runtime migration with full compatibility validation against every module, theme, and custom integration in the codebase
ElasticSearch → OpenSearch 2.19+ — mandatory as of Magento 2.4.8 (April 2025 release). Catalog index rebuilt; faceted filtering validated across all category trees including the bathroom/heating product hierarchy
Composer dependency resolution — third-party module compatibility validated at each minor version
Database schema migrations — applied through each staircase step with full backup verification before progression
Theme and frontend updates — visual refinements during the upgrade window without a full redesign, keeping the brand experience consistent for returning customers while modernizing the underlying frontend stack
Each staircase step ran first on staging with regression testing against production data before proceeding. Most of the engineering hours in Phase 2 went into module-by-module validation — a normal Magento store has 20-40 third-party modules; CNM's catalog and B2B/B2C dual operation involved enough integrations that every step needed careful validation.
Phase 3 — Payment Integration Fixes & B2B Invoice Workflow
This was the phase that addressed the operational pain points the business felt every day. CNM operates a six-method payment stack designed for the way UK public-sector and consumer customers actually pay:
Credit/Debit Card (American Express, Visa, MasterCard, Discover)
PayPal Express Checkout — fastest consumer path
Super – Pay by Bank App — UK Open Banking payment with customer cashback rewards (a modern Open Banking option growing in UK retail)
Proforma Invoice / Bank Transfer — preferred for B2B accounts requiring advance documentation
Purchase Order — required by NHS trusts, councils, and universities operating under procurement frameworks
Phone Order — legacy and accessibility option, important for older buyers and renovators preferring direct contact
Every integration was audited, fixed where buggy, and validated end-to-end on the new 2.4.8 stack. The Purchase Order and Proforma workflows received the most attention — public-sector procurement has specific approval, documentation, and delayed-billing requirements that consumer checkout doesn't.
Custom B2B invoice workflow:
Custom PDF invoice templates built to meet UK B2B procurement expectations — proper line items, VAT breakdown, supplier registration details, and the specific layout NHS/council/university accounts teams require
VAT logic validated for UK rates with B2B handling where applicable
Quote-to-Invoice workflow — customer requests quote, sales team reviews and sends formal quote, customer approves, invoice generated against approved quote. This is what makes B2B sales workflow actually function vs. just having a "Request Quote" button on the site
Email templates for transactional flows — quote sent, quote approved, invoice issued, payment received — rebuilt with consistent branding and the correct UK contact and VAT details
Performance optimization ran alongside:
LiteSpeed LSCache configuration tuned for the catalog hit pattern
Image pipeline optimization across the catalog
Database query optimization for the cart and checkout paths
Critical CSS inlining for above-the-fold rendering
Phase 4 — Launch, Monitoring & Ongoing
Launch shipped the upgraded CNM platform on Magento 2.4.8 with PHP 8, LiteSpeed infrastructure, fixed payment integrations, and the B2B invoice workflow operational. Post-launch work continues as an active partnership: ongoing development, performance monitoring, quarterly audits, and the targeted improvements an active UK supplier serving NHS-scale customers needs to stay compliant and competitive.
Key Deliverables
Magento 2.3.5 → 2.4.8 full staircase upgrade (through 2.3.7 → 2.4.0 → 2.4.3 → 2.4.6 → 2.4.8)
PHP 7.3 → PHP 8.x migration
ElasticSearch → OpenSearch 2.19+ migration (Magento 2.4.8 requirement)
Infrastructure migration to new UK-based dedicated server
LiteSpeed Web Server + LSCache configuration
Six-method payment integration fixes: Credit/Debit Card, PayPal Express, Super (Pay by Bank App), Proforma Invoice/Bank Transfer, Purchase Order, Phone Order
Custom PDF invoice templates with UK VAT compliance
Quote-to-Invoice B2B workflow
Custom email templates for transactional flows
Frontend visual refinements during the upgrade window
Performance optimization: image pipeline, critical CSS, database query tuning
Security baseline: 2FA, tested backups, CSP, CVE patching
~2-month rescue + upgrade delivery window
Active partnership post-launch
Results
CNM Online launched on Magento 2.4.8 with PHP 8 on the new LiteSpeed infrastructure. Real-user performance reflects what the rescue delivered:
Real user data — Chrome UX Report (desktop, last 28 days):
✓ Core Web Vitals — passed
✓ LCP 1.6s — good
✓ INP 55ms — good
✓ CLS 0.04 — good
✓ FCP 1.4s — good
⚠ TTFB 1.0s — room for improvement
Passed Core Web Vitals is the metric that matters for UK organic search ranking. LCP, INP, CLS, and FCP all land in Google's "good" range — a meaningful outcome for a recently-rescued Magento 2.3.5 store running on infrastructure that's also new. TTFB at 1.0s sits in the "needs improvement" range, reflecting the typical opportunity for further LiteSpeed tuning and database query optimization that we'll address through ongoing development.
Lighthouse scores (desktop):
Performance: 64
Best Practices: 92
SEO: 92
Accessibility: 75
The SEO and Best Practices scores reflect a clean post-upgrade technical foundation. Performance and Accessibility scores point to the next round of optimization targets — typical of any post-rescue platform where Phase 4 ongoing work is where the remaining gains compound.
Operational outcomes:
Six-method payment stack operational — Credit/Debit, PayPal, Super Open Banking, Proforma Invoice, Purchase Order, and Phone Order all working end-to-end across consumer and B2B/public-sector buyers
Custom B2B invoice workflow live — NHS trusts, councils, and university buyers receiving correctly-formatted UK VAT-compliant PDF invoices through the quote-to-invoice flow
Security exposure closed — platform now on Magento 2.4.8 with PHP 8, both supported with active CVE coverage
Infrastructure modernized — dedicated server + LiteSpeed providing headroom for catalog and traffic growth
Continuous partnership active — ongoing development, monitoring, and quarterly audits

Technologies & Tools
Magento 2.4.8 (upgraded from 2.3.5 through staircase: 2.3.7 → 2.4.0 → 2.4.3 → 2.4.6 → 2.4.8)
PHP 8.x (migrated from PHP 7.3)
OpenSearch 2.19+ (migrated from ElasticSearch)
LiteSpeed Web Server + LSCache
Dedicated UK-based server
MariaDB
Custom Magento 2 modules: PDF invoice generation, quote-to-invoice workflow, VAT templates
Payment integrations: Credit/Debit Card (Amex, Visa, MC, Discover), PayPal Express Checkout, Super (Open Banking + Cashback), Proforma Invoice / Bank Transfer, Purchase Order, Phone Order
Email transactional templates (quote, invoice, payment workflows)
WebP image optimization, lazy loading
Critical CSS inlining
Schema.org Product markup
2FA + automated tested backups + CSP security baseline
Related Reading
This project follows the methodology we describe in:
→ How to Rescue a Magento 2 Store Without Rebuilding It
→ Artizo — Magento 2.3 → 2.4.8 Rescue & Upgrade (parallel rescue + staircase upgrade case study)
