Sector(s)

Project Team

Yogendra Prasad - Senior Developer - Material
Ajay Singh - Drupal Developer, Material
Ashutosh Singh - Drupal Developer, Material
Ranjeet Singh - Drupal Developer, Material
Abhinav Rana - Drupal Developer, Material

Amit Bhardwaj - QA, Material

Sidhartha Malhotra - Scrum Master, Material

Visit the site

Visit the site

Organizations Involved

Building a Massive Online Marketplace with 5 million SKUs and 250,000 merchants, using Drupal Commerce.

Launched in 2015, this online platform helps users discover local businesses and access the best deals and discounts based on their location.

Key Highlights

  • Massive online marketplace capable of hosting over 5 million SKUs
  • Merchant-app offering end-to-end store management, handling over 250,000 sellers
  • Robust architecture designed to handle 100 million pageviews

About the project

The Project

In addition to the existing platform, FindIt wanted to create a massive marketplace that would allow customers to buy products online from diverse sellers, while availing attractive deals and discounts.

The team had two key requirements from the marketplace:

  • Size: The team wanted an expansive marketplace, capable of showcasing millions of SKUs, numerous merchant stores, and handle upto 100 million pageviews.
  • Scalability: They wanted a platform and distribution model that could be quickly launched across different geographies.

Why Drupal was chosen

The client was looking to build a robust marketplace and had explored multiple out-of-box proprietary options and open source alternatives, including Drupal. They finally decided to move ahead with Drupal Commerce because:

  • It offered a host of modules that would deliver a lot of desired functionalities out of the box
  • Their familiarity with Drupal, as it was already powering the communities of AskME
  • Our expertise in working with Drupal

Technical Specifications

Drupal version:

Key modules/theme/distribution used:

Why these modules/theme/distribution were chosen

The Challenge

A key challenge faced with using Drupal Commerce was that most of the available modules were designed for single-seller platforms. However, our team worked closely with the Drupal Commerce team to tweak existing modules to enable the multi-seller functionality for the marketplace.

The final marketplace created had two separate Drupal installations, for the customer-facing frontend and the merchant portal. The team also implemented the Akeneo Product Information Management (PIM) module to manage product uploads from different geographies.

The Solution

Here’s how the marketplace was designed:

FINDIT Online Marketplace using Drupal Commerce - Solution Architecture

The Online Marketplace:

This was a Drupal installation, using the Drupal Commerce module, which allowed customers to view all products and complete their purchase. The marketplace allowed them to find products, choose and apply deals and discounts, and make payments via wallets and integrated payment gateways.

FINDIT Online Marketplace using Drupal Commerce - Product page

One of the key features implemented in the marketplace was Dynamic Pricing.

Out-of-the-box, Drupal Commerce only allows for a single order to be created for a customer purchase, irrespective of the number of items or sellers involved. However, customers ordered different products from different sellers, with specific coupons or discounts applying to each.

Our team resolved this issue by creating multiple orders within a parent customer order so that customers and sellers are able to:

  • purchase items from multiple sellers within the same order
  • apply different delivery addresses to each item
  • view the change in prices post discount, for each of their products ordered
  • easily process and track orders

Merchant Portal

The second Drupal installation was the merchant portal, which worked independent of the marketplace. With the ability to support over 250,000 sellers, the merchant portal allowed sellers to set up their virtual stores, with everything from order placement, inventory management, sales reviews, and customer engagement.

Here’s a quick look at the functional aspects of the merchant portal:

Dashboard

This gives a real-time snapshot of the seller’s key metrics. In addition to the number of orders placed, and payments received and pending, they can also get a view of the product inventory and an analysis of their sales performance over custom time periods. Sellers can also track the fastest selling product categories and items from their store, and stock up accordingly. And finally, they can monitor popular products on the marketplace and cater to rising demand.

FINDIT Online Marketplace using Drupal Commerce - Dashboard

Orders

All orders are logged into the system and segmented as open, pending, cancelled, returned, or completed. All orders are easily accessible by order IDs and tracking order completion status is also simplified.

FINDIT Online Marketplace using Drupal Commerce - Orders

Inventory

Sellers can choose from a huge list of over 5 million SKUs added to the FindIt PIM, and add them to their store’s inventory. Sellers can review their stocks, add additional items, or even bulk upload products to their store. They also have the ability set alerts when stock for any product falls below a set number of units, and add customized notes like ā€œfree shippingā€, warranty information etc. to specific products.

FINDIT Online Marketplace using Drupal Commerce - Inventory

Account

Sellers can add their store profiles, addresses, and facilities offered, like warranty, return policies etc. They can also view the current FindIt commissions offered across product categories. Most notably, customers could ā€˜follow’ particular sellers. This gives sellers the opportunity to connect with frequent buyers, and share new product additions, offers etc. via customized email blasts.

Reports

This allowed merchants to view demand trends on their store with a list of the top selling items and number of units sold. They can also view the top items and product categories on the larger marketplace for the client, so they can quickly stock new items that would cater to the demand and increase sales.

The merchant portal was also accessible to the client's platform administrators. It allowed them the flexibility of:

  • manage commissions and discounts for different product categories
  • generate coupon codes
  • adding/removing sellers
  • change product information
  • monitor order flows
  • communicate with customers to resolve issues

Delivering on Scalability

To ensure that the marketplace is fast and scalable despite its size, we implemented the following:

Akeneo PIM

Akeneo is an open source platform that streamlined product information management for FindIt. Even with close to 5 million SKUs, adding or removing inventory variations, making platform-wide changes to product information, and other product management tasks were simplified by implementing Akeneo PIM.

Here’s what Akeneo enabled for the FindIt marketplace:

  • Adding new products to the marketplace is simplified
  • Product information can be added and managed by FindIt on a central database, ensure consistent product descriptions across all stores
  • Faster time to market, with easy launching of new products across geographies
  • Translating and launching in different countries is simplified with simplified localization workflows

Elasticsearch

Elasticsearch was implemented to keep the marketplace database light and responsive, despite the huge number of SKUs. While the marketplace DB help product titles, all product information was being pulled from the merchant application, via elasticsearch.

It also offered a great user experience due to:

  • incredibly fast response time on customer search queries
  • better search filters and product organization on the marketplace
  • improved search results for customers, by throwing up products that were semantically related to their search queries, rather than just products that contained the exact keywords

SLIM Framework

To maintain fast processing speeds and performance, our team implemented the SLIM framework. This was a PHP framework between the merchant portal and the marketplace, handling all behind the scenes processes. All products added by merchants to their store are pushed to queue and added to the framework. SLIM processes this data and then sequentially pushes it to elasticsearch. This data can then be reflected on the marketplace, whenever customers search for a particular product.

This ensured that despite two separate Drupal implementations, the marketplace is capable of handling increasing number of simultaneous interactions.

Message Queue

Our team implemented a messaging queue (MQ) system for communication between the merchant app and marketplace and vise versa. The queue was also implemented to communicate between the merchant app and SLIM, and SLIM to marketplace.

Implementing Rabbit MQ made communication asynchronous, capable of handling multiple interactions simultaneously. Messaging queue also made the marketplace and merchant app decoupled and scalable.

Business Benefits

  • Massive online marketplace capable of hosting over 5 million SKUs
  • Merchant-app offering end-to-end store management, handling over 250,000 sellers
  • Robust architecture designed to handle 100 million pageviews
  • Scalable architecture, coupled with Akeneo PIM, makes it possible to swiftly add or remove SKUs, and launch across geographies.