Graham Sanderson Interiors

A Luxury Interior Design Retailer

Graham Sanderson Interiors

The Situation

The business had been running on ExpressionEngine 2 for years. The site was the primary sales channel for a luxury interiors retailer, processing real payments and managing a complex product catalogue of made-to-measure curtains, blinds, wallpapers, and homeware. ExpressionEngine 2 had reached end of life, leaving the site exposed to security vulnerabilities with no core updates available. The e-commerce store was built on a heavily customised version of the Store module, with over 70 third-party add-ons and more than 10 bespoke custom plugins handling everything from price calculations and product filtering to checkout and shipping logic. The payment gateway was SagePay, which was presenting reliability and compatibility challenges. The business needed a specialist who understood both the ExpressionEngine platform and the specific way their store had been built, without the risk of losing years of customisation.

What We Did

Karl carried out a comprehensive audit of the entire site before any upgrade work began, producing a detailed report covering every add-on, custom plugin, and area of customisation. This gave the client a clear picture of what the upgrade would involve and what risks needed managing. The full migration from ExpressionEngine 2 to ExpressionEngine 7 was then carried out, with each of the 70+ add-ons and 10+ custom plugins assessed, updated, or replaced. The custom Store e-commerce module required substantial work to bring forward, including modifications to the pricing calculator, product filtering, and shipping logic. The payment gateway was migrated from SagePay Server to Stripe Payment Intents, modernising the checkout significantly. Apple Pay and Google Pay were subsequently added via Stripe's Express Checkout Element, giving customers more ways to pay. The site was migrated to a dedicated server and full-page caching was implemented using LiteSpeed, with cache warming scripts to keep performance consistent across the catalogue. Post-upgrade testing was thorough and collaborative, with the client involved throughout before the new site went live. Karl has continued on a retainer basis since the launch.

The Outcome

The site now runs on ExpressionEngine 7 with all customisations intact and the e-commerce store fully operational. The SagePay dependency has been removed, replaced by a modern Stripe integration that supports Apple Pay and Google Pay alongside standard card payments. Full-page caching has significantly improved performance across the catalogue. The client has continuity of support from a specialist who understands the full history of how the site was built and the business logic it carries.

I cannot recommend Karl highly enough for his expertise and professionalism during our website upgrade. The transition from ExpressionEngine v2 to v7 was a significant undertaking, but Karl managed the entire process seamlessly, ensuring that every detail was addressed. The update of over 70 add-ons and 10 custom plugins was executed flawlessly, and the custom enhancements to our E-Commerce Store module have greatly improved our online shopping experience. The move to a more secure dedicated server has given us peace of mind regarding our site's performance and security. Karl's dedication to our project was evident at every stage, and the final result is a modern, efficient website that truly represents our brand.

Lisa Sanderson, Director ~ Graham Sanderson Interiors Ltd.
A Luxury Interior Design Retailer

Respecting Client Confidentiality

Much of our work involves long-term support and maintenance arrangements for business-critical sites. A significant portion of that work is covered by non-disclosure agreements to protect client confidentiality, so we are unable to show every project publicly.

If you would like to discuss your ExpressionEngine or Craft CMS requirements, get in touch directly, Karl will respond personally.

About Karl

Karl Bowers ~ ExpressionEngine & Craft CMS Specialist

Karl is the founder of Expression 37 Ltd and has been working exclusively with ExpressionEngine and Craft CMS since 2007. He works with a small number of clients on an ongoing basis, supporting business-critical websites that need a specialist who genuinely knows their system. Most clients are on long-term retainer arrangements. You deal directly with Karl throughout, with no account managers or junior developers involved.

Read more about how we work.

To get in touch you can reach Karl directly on 07771 656 606 or .(JavaScript must be enabled to view this email address). To make an online enquiry submit your request here.

» Get in touch