Magento 2 Case Study

Improving the Perfume & Cosmetics Website Performance & Capability to Increase the Market Share

BrandBrocard
RegionUkraine
About client
Brocard is a large Ukrainian cosmetics and perfumery retail chain in the luxury segment, operating 100 stores in 26 cities and a multilingual website on Magento Open Source 2.2.6. More than 350 brands of premium skin and hair care, beauty accessories are presented in their stores (Chanel, Lancôme, Guerlain, Clinique, Clarins, Givenchy, Gucci).
Client in figures

25 years on the market
100 stores all over Ukraine
26 cities with retail stores
350 world premium brands

Project description

Challenges

The client has a goal to increase their market share so that they commit enough resources to marketing efforts and come to us with a bunch of SEO tasks and new features that could help to attract more traffic and boost sales. They also reach out to us to improve the integration with the customized ERP system Microsoft Dynamics NAV that requires upgrades and new features for enhanced performance.

Another development team is working on the rest of the tasks so far, which means that we work on the project along with other engineers, equally share our responsibilities, and coordinate our work with them.

Solutions

While carrying out the initial audit and code review, our specialists find out that the website contains critical pain points with a performance that are more crucial than the SEO tasks and should be fixed first.

We discover that the website can carry the load of a maximum 100-150 simultaneous users, and with the purpose to disable the 500 error display and make the website work well, we tackle code refactoring.

After that, the client gains confidence in our delivery and goes on working fully with our development team without involving the original developers.

Development

One of the most critical website performance indicators is the web page loading speed, which directly affects the conversion rate. We use the basic PageSpeed Insights tool and discover that the slowest parts are layered navigation and the store menu, which we refactor later on. As a result, we make the system fast enough to meet the website speed loading standards.

An additional important aspect of the project is the server side, which needs to be renovated. For this purpose, we communicate with the client and offer options where to set the whole system. The client eventually decides to move the existing system to the AWS hosting, after that we configure the server part of the system in collaboration with their DevOps Engineers and select a specific configuration of settings to carry a heavy load of simultaneous users.

We also make the whole infrastructure scalable and adaptable to the website traffic with instances that automatically grow and reduce — the AWS Auto Scaling solution, — which we often use for our client’s online store optimization.

We put the finishing touches on the integration with the customized ERP system Microsoft Dynamics NAV by improving a part of its architecture. The ERP system allows managing prices that follow a specific pattern, contain different wholesale and retail prices, discount cards to deliver a personal touch in customer experience. The price calculation system depends on user groups, promotions, a period of promotions, which are calculated on both sides of Microsoft Dynamics NAV and Magento.

The system regularly updates price information and checks its relevance once a product is added to the shopping cart — whether there’s such a quantity in the stock and analyzes if a price matches. If there’s a match for both options, the product is added to the cart, if not, a customer sees a validation message.

Afterwards, we delve into expanding the Magento capabilities so that the website can carry a heavy load of simultaneous users. We perform the load testing with JMeter, which reveals that the main challenge is to get instant results on prices from the ERP system, as we need to receive quick responses according to the particular number of users.

It works in the following way: we simulate 2,000 users with products in their shopping carts as an example, then the ERP system receives this information, processes it, and comes up with a response. We analyze how quickly the system reacts and record it, after that, we upgrade the infrastructure and repeat the same actions to see the progress. As a result, we gradually optimize the bandwidth of the system from 300 to 3,300 simultaneous users.

Alongside with these tasks, we work a lot with the client’s marketing team, who need separate pages dedicated to exclusive offers with applied product filters by 1–2 options, so we improve the URL structure for configurable products and develop promotional URLs from scratch. We also provide them with an option to effectively manage the data feeds by introducing the Feed Controller.

To improve the website performance, speed up its loading, and make the website work steadily, we enhance several things at the same time — rework the Backend logic that needed fundamental improvements, optimize the Frontend part, and develop the server component.

Features

‘Shop by Brand’ for brand partners. As the client’s business is associated with a brand partnership, we implement unique extended functionality to increase their loyalty. The brands are implemented in two types: common ones and partners that require pages with corporate identity — logos, colors, banners, texts, etc. The brand representatives also require custom filtering and catalog structures on their pages that work individually for each brand.

User-friendly search. According to our audits, the initial website search displays irrelevant results. After introducing some modifications, we decide to refine an on-site search and implement Multisearch, a paid service that provides a selection of words and has a bunch of synonyms for the Cyrillic alphabet.

Integration with offline stores. The client’s business has a chain of about 100 offline stores throughout Ukraine, and each store has their own promotional strategy and schedule. To engage customers and ensure the omnichannel user experience, we create an entity of shops in Magento that receives information from the ERP system — offline store addresses, phone numbers, working hours — and implement a custom store locator.

Registration & checkout flow. As the client’s customers have discount cards, we implement functionality for them to connect their profile on the website with a card received in the store. During the registration process, a customer enters a phone number, email address, name, while the system is searching for such an owner of a discount card, according to the hierarchy and logic of these fields. Once the system finds a match, it immediately links a relevant profile with a discount card.

Product labels. The store also features a range of labels — hits, new items, and best sellers — easily managed in the admin panel and smoothly fit the images.

Homepage Manager module. Our client’s admins usually change the content on the homepage, and we provide them with a custom module that allows quick adding banners, links, product sliders, and carousels without involving developers.

Result

We expanded the Magento capabilities for the website to carry a load of simultaneous users 10 times larger and reworked the architecture of the custom Microsoft Dynamics NAV ERP system to make the price logic work according to customer groups. We also introduced a unique ‘Shop by Brand’ feature to increase the loyalty of brand partners, implemented a user-friendly search, and provided the client with the module that allows changing the homepage content without involving developers.

Implementations
  • Advanced search
  • Layered navigation
  • Omnichannel user experience
  • Scalable high load infrastructure
  • Store locator