Elliotts
Personalising the buyer experience through a bespoke e-commerce platform.
The Challenge
As one of the oldest family-run businesses in the UK, Elliotts operate 13 builders merchant branches and 4 kitchen and bathroom showrooms across Hampshire and Dorset. Until 2020 the company focused only on physical stores, but the pandemic accelerated the need for an e-commerce platform. Thought was engaged to design a bespoke solution to meet their complex operational needs and maintain their exacting standards of customer service.
How we helped
Our starting point was to map out the different purchase and delivery paths that Elliotts wished to offer their customers. We created clear service blueprints for each of these, prioritising those paths that would be most frequent and that also created the greatest commercial value.
From here we wireframed and tested key parts of the user journeys for both customers and store staff, ensuring the new systems would be as simple and friction-free as possible. We also modelled a complex personalised pricing structure with over 10k pricing options - based on trade and public accounts and previous purchase behaviour.
The platform was built from scratch and installed within 9 months. It carried a number of features to ensure an excellent experience for internal and external users, including:
Supporting 3 key purchase paths - click & collect, local delivery via Elliot’s fleet, and national delivery via couriers - with automated updates to stock and logistics teams.
Integration with Elliotts PIM for near real-time product catalogue sync to the website.
Real time stock checks and updates via integration with existing PIM (Product Information Management) System to help store managers control branch stock levels.
Real time stock checks and updates via integration with existing PIM (Product Information Management) System to help store managers control branch stock levels.
Personalised pricing system based on buyer’s purchase history, via integration with their existing ERP (Enterprise resource planning) system to increase customer loyalty.
Clear user flows to add competitive advantage e.g. personalised price is shown when the buyer views a product rather than being shown as a discount on the final payment page.
Thought took the time to understand the complexity and nuance of our business. It's rare to find a consultancy that has the expertise to deliver best-in-class, innovative solutions that are also phenomenal collaborators and problem solvers who can work with you to both formulate and deliver your digital strategy.
Mark Jones - Head of Digital
Tech Stack
-
Backend
- Code Quality: Use code analysis tools like SonarQube to identify and fix code smells, technical debt, and security vulnerabilities.
- Security: Implement security measures like data encryption, user authentication, and authorization. Consider using tools like Azure Key Vault to securely store and manage its application's secrets.
- Performance: Optimize its code and database queries for speed and scalability. Use profiling tools like ANTS Performance Profiler to identify and fix performance issues.
- Testing: Implement automated testing for its code to ensure that it meets requirements and performs as expected. Use tools like NUnit or xUnit for unit testing.
-
.NET 6Update to the latest version of .NET 6 to take advantage of the latest features and performance improvements.
-
NHibernate ORM and EF Core for data accessUse NHibernate best practices for data access, including using the second-level cache, avoiding lazy-loading, and optimizing queries.
-
SQL Server or any other supported database management system (DBMS)Use SQL Server best practices for database management, including indexing, partitioning, and optimization.
-
Frontend
- Code Quality: Use code analysis tools like ESLint to identify and fix code smells, technical debt, and security vulnerabilities.
- Security: Implement security measures like data encryption and user authentication. Consider using tools like Azure Active Directory to manage user authentication and authorization.
- Performance: Optimize its code and assets for speed and scalability. Use tools like Webpack to bundle and optimize assets.
- Testing: Implement automated testing for its code to ensure that it meets requirements and performs as expected. Use tools like Jest or Cypress for end-to-end testing and Enzyme or React Testing Library for unit testing.
-
Razor Pages or MVC for server-side renderingUse best practices for server-side rendering, including caching, partial rendering, and client-side hydration.
-
Parcel for task automation and bundlingUse best practices for task automation and bundling, including minification, tree shaking, and code splitting.
-
SASS for stylingUse best practices for styling, including responsive design, modular architecture, and accessibility.
-
Deployment
- Cloud Platform: Deploy the application to Azure, taking advantage of its robust infrastructure and services like App Service, Azure SQL Database, and Azure Key Vault.
- Continuous Integration and Deployment: Use a CI/CD pipeline like AppVeyor to automate the build, test, and deployment process. This helps ensure that code changes are properly tested and validated before being released to production.
-
AzureUse Azure best practices for cloud infrastructure, including scalability, availability, and security.
-
AppVeyor for automated deploymentsUse Git best practices for version control, including branching, merging, and code review. Use tools like Bitbucket to manage its code repositories and collaborate with other developers.
-
Git
- Version Control: Use Git for version control to manage code changes and branches.
- Branching Model: Use Gitflow for managing branches and releases in Git. This provides a structured approach to managing branches and releases, with two main branches (
master
anddevelop
) and feature, release, and hotfix branches used to manage the development process.