Skip to main content
Back
2021
Ecommerce Platform

Retail checkout

Led the build of a multi-tenant React micro-frontend checkout for Sainsbury's, Argos, Habitat & TU, delivering 8% conversion uplift and reducing critical errors to 1.5%.

ReactTypeScriptReduxRedux SagasInternationalizationStyled ComponentsMicro-frontendAgile

Project Overview

My first project at Sainsbury's was to lead the front-end development team on the long-awaited checkout migration for all their sub-brands (Argos, Habitat, Tu Clothing). With much of the checkout experience still powered by dated IBM WebSphere software and an even more dated UX/UI, our goal was to completely modernise the bottom-of-funnel flow.

The Challenge

The primary aim was to deliver a fast, straightforward checkout experience that delights customers. We focused on providing reassurance for placed orders and clear communication of key information. Additionally, the project involved migrating to AWS microservice infrastructure and launching a newly designed React-based front-end. Users were enabled to view previously saved addresses, add and edit addresses, apply Argos and Flexecash gift cards, and apply Nectar points to orders.

Address entry form in Sainsbury's checkout
Gift card and payment method selection in checkout
Order confirmation screen after successful checkout
Nectar card and points balance during checkout

The Solution

With the top-of-funnel ecosystem recently adopting micro frontends, our app followed suit. We used a Node.js-powered Express application to render our React UI, along with a custom-built, route-based server-side data fetching pattern (similar to Next.js's getInitialProps). The UI communicates with a checkout API microservice "snapshot," representing the current user's journey within the checkout flow. Frequent interaction with the snapshot ensures the front-end and back-end remain aligned.

Results & Impact

The new checkout delivered a 5% increase in conversion across multiple channels and sub-brands, an 8% uplift in conversion rate, reduced critical error rate from 7% to 1.5%, achieved payment page completion times under 3 minutes, and enabled the successful onboarding of credit and monthly payment plans.

Accessibility

Inclusive design was a key focus. I aimed not just for a passable experience, but a delightful one. Argos design system components were rebuilt or enhanced to meet industry standards, benefiting both our project and the wider Argos website. Key improvements included enhanced screen reader UI labelling for text and iconography, fully functional keyboard-only navigation, focus state retention when opening and closing modals, relative font scaling respecting user zoom and browser defaults, and meeting color contrast standards for all components.

Micro Interactions

Animation was used to convey meaning and provide context throughout the checkout journey. We maximised micro-interactions to communicate with users at every stage, including asynchronous button animations, themable place order animation, view, add, and edit address modals, payment merchant iframe loading, and payment accordion steps.

Testing

Improving TDD standards was a key objective, aiming to boost developer experience and test confidence. I introduced React Testing Library to modernise UI testing, moving away from Jest and Enzyme. RTL's user-centric testing philosophy improved test confidence and made refactoring easier. Additionally, we migrated from WebDriver.io to Cypress.io, improving developer experience and reducing E2E test flakiness. Using the cypress-cucumber-preprocessor plugin, we seamlessly migrated existing Cucumber-based tests with minimal changes.

Ready to explore more work?

View All Projects