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
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:
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:

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.
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.
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.
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.
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.