The Challenge

How do you build an e-commerce platform that enables merchants to sell 100,000 products while meeting the online shopper's performance demands?

The Solution

By building a platform on Elasticsearch to deliver the best results in less than a second

Case study highlights

Meet the demands of online shoppers

  • Maintain 100% availability
  • Provide query results from product catalog with 100K+ entries in ~500 miliseconds
  • Constantly add new features

Improve online conversion rates

  • Enable high performance search across 100,000 products with 30+ attributes
  • Offer advanced search with filters and facets
  • Provide highly accurate and actionable results

"On the backend, we use Elasticsearch in conjunction with Logstash and Kibana, so our developers have access to all our logs, and can see what is going on."

Hajo Eichler, Head of commercetools platform Development

Making 100,000 products searchable online

The commercetools platform is an e-commerce Platform-as-a-Service (PaaS) from Commercetools, a technology provider based in Berlin and Munich, Germany. The platform is designed to make it easy for a company to develop any type of e-commerce solution, from apps to online shops to scalable international websites. The commercetools platform provides components for all aspects of e-commerce including product cataloging, order processing and customer management.

Currently 300 merchants use e-commerce solutions built on the commercetools platform to sell their products online. The typical commercetools platform merchant offers between 3,000-5,000 products, each with about 30 different attributes, but some companies offer as many as 100,000 products via the commercetools platform.

When Commercetools started developing the commercetools platform, the first challenge was to find a search engine offering filtering and faceting, so online shoppers can search specific price ranges, define attributes such as color and size, and search through a variety of subcategories, with query results delivered quickly and efficiently in a single call. The second challenge was to find a search engine offering scalability and reliability, with no downtime. Commercetools solved both of these challenges by designing Elasticsearch into the platform from the beginning.

Enabling e-commerce flexibility in the cloud with Elasticsearch

"Elasticsearch enables the customers of our merchants to find specific products," explains Hajo Eichler, Head of commercetools platform Development at Commercetools. "Our entire e-commerce scenario relies on Elasticsearch in terms of searching for products."

In addition to enabling online shoppers to find the right products, Elasticsearch also enables merchants to manage their product lines, another key aspect of e-commerce. Commercetools operates a user interface called the Merchant Center, where all product, customer and order information is kept in one place. Built on Elasticsearch, the Merchant Center is where each merchant can manage their own commercetools platform account, and perform tasks such as checking prices, changing products, modifying product descriptions, and managing orders and customer records.

Elasticsearch's flexibility enables merchants to structure their products any way they like, such as giving different prices for various currencies, countries, customer groups, etc. Utilizing Elasticsearch faceting on the commercetools platform makes it easy for a merchant to perform a universal change, such as a price change across a line of thousands of products. This level of self-serve flexibility enabled by Elasticsearch allows each Commercetool customer to leverage the economic and productivity advantages of PaaS while still maintaining complete control over their e-commerce operation.

"The merchant's ability to easily work with the products is very important," Eichler asserts. "Changes must be made frequently and quickly, in order to be up-to-date all the time. Sometimes a merchant needs to rapidly react to the public or the market. The easy use provided by Elasticsearch is crucial."

Improving conversion rates with search

"The search engine must be highly available and very fast, and that is why we use Elasticsearch for searching," says Eichler. "We aim to always deliver all results under one second, and that is what we can do with Elasticsearch. Even in a case where the merchant offers 100,000 products, almost all queries, even fulltext search, take less than one second – 500 milliseconds or even less in most cases. We are very happy with the response time we get from Elasticsearch."

Delivering all the query results in one call, another requirement fulfilled by Elasticsearch, is also crucial for Commercetools, because this enables the speed that online shoppers demand.

"Search is important from the customer point of view," Eichler continues. "Today, consumers do not have much time, so finding the right products very fast is crucial."

"The most important advantage of Elasticsearch is that we can count on the fact that it works."

Hajo Eichler Head of commercetools platform Development

Normally, the shopper does not have the name of the product, so they are searching on some attribute of the product, s.g. something contained in the product description, Eichler explains. Despite this challenge, it is important to get good results from the beginning, because people tend to look at the first 10 results.

"It is very crucial to get the right list, because this enhances the conversion rate," Eichler says. "The advanced features of Elasticsearch enable the commercetools platform to provide the best results while still delivering 500 millisecond response time performance."

Keeping online businesses up and running

"Our customers expect very high availability," says Eichler. "Elasticsearch is very good at getting fast query response time plus reliability."

"With the Elasticsearch cluster we are always online," he continues. "Elasticsearch enables us to easily update one node of the cluster. We can take one node out of the cluster and do maintenance, and then bring it back to the cluster. We can sleep well every day because the cluster keeps us online even if a node crashes, which happens in any cloud. This helps us maintain 100% uptime."

High availability is also ensured because Commercetools maintains two indexes for each of customer in Elasticsearch. One of the indexes is always active, while the second index can be changed at any time. When changes are made, the updated index becomes active.

"Elasticsearch helps us to always be online,"  Eichler adds. "We know other e-commerce solutions have downtime for 5 to 10 minutes while updating the index."

In addition, Elasticsearch empowers Commercetools to rapidly bring new features to market, to improve the company's competitive position.

"From a development point of view, Elasticsearch enables us to add features very quickly for our customers," Eichler concludes. "We can add new features every few days or as often as more than one per day. Delivering these new features is crucial to show the customers that we are agile to adapt to their needs."

Commercetools' benefits using Elasticsearch

Fast query response time

Elasticsearch enables Commercetools to provide search results in under a second – often 500 ms or less – a key in e-commerce where query response time can make or break a sale.

Improved conversion rates

With filtering and faceting, Elasticsearch delivers excellent results quickly, consequently improving conversion rates for online shoppers.

High availability

Elasticsearch clustering and indexing enables Commercetools to maintain 99.9% uptime for all customers – a critical advantage for any e-commerce solution.

Faster time to market

Elasticsearch provides Commercetools with development agility to accelerate time to market on new features, often delivered daily.