Scaling Bagisto for 10 Million Products

Updated 29 April 2025

Bagisto, an open-source eCommerce platform powered by Laravel, is designed to be adaptable and robust, supporting businesses as they scale. As product catalogs grow into the millions, performance becomes critical.

dx0W02FRp0k

This blog delves into advanced strategies for scaling Bagisto to efficiently manage 10 million products, focusing on key areas like database optimizations, caching solutions, and efficient queue management.

Understanding the Challenges

When scaling an eCommerce store to handle millions of products, the challenges evolve as the product catalog grows.

banner-1

With around  0.2 million products, the system performs smoothly, handling database queries and searches efficiently without the need for advanced optimizations.

At 10 million products, the system experiences significant strain on the database and search, requiring advanced strategies like Elasticsearch, and optimized caching to maintain performance.

Key Challenges:

  1. Database Performance – Handling a massive volume of records efficiently without slowing down the system.
  2. Search Optimization – Ensuring that users can quickly find products, even with such a large catalog.
  3. Indexing & Caching – Reducing load times and improving response speed with proper indexing strategies and caching mechanisms.

Let’s explore how Bagisto, built on Laravel, handles these challenges and scales efficiently.

Database Performance in Bagisto

Bagisto uses MySQL/MariaDB by default, and to handle 10 million products efficiently, we need to optimize both the database and the way the platform interacts with it.

Optimizing Database Queries in Bagisto

Bagisto uses Eloquent ORM for database queries, which makes it easier to interact with the database but can sometimes lead to performance bottlenecks with large datasets. To mitigate this:

Indexing Strategies in Bagisto for Scalable Database Performance

Bagisto structures indexed data for efficient search and retrieval, storing product information in Elasticsearch as documents within indices.

banner-2

Each document in an index represents a product or product-related data (like product name, price, description, etc.).

This structured approach allows Elasticsearch to efficiently manage and retrieve product information.

When a user searches in Bagisto, Elasticsearch analyzes indexed data and retrieves relevant results. Its powerful algorithms ensure fast, accurate searches, enhancing the user experience.

To enhance Bagisto’s performance, the following indexers play a crucial role:

 

Leveraging Elasticsearch for Scalable Search

One of the most critical components of scaling an eCommerce platform is ensuring that product search functionality remains fast and efficient, even with millions of products.

While MySQL/MariaDB can handle basic queries, they are not optimized for full-text search or complex filtering across large catalogs, which is where Elasticsearch excels. This is where Elasticsearch comes in.

1. Why Elasticsearch?

Elasticsearch is a distributed search engine optimized for speed and scalability, offering powerful full-text search capabilities. By integrating Elasticsearch with Bagisto, we can achieve the following benefits:

banner-3

Integrating Elasticsearch with Bagisto enables search performance to scale seamlessly as product volume grows.

2. Integrating Elasticsearch with Bagisto

Integrating Elasticsearch with Bagisto is straightforward. First, configure your Elasticsearch instance and connect it through the admin panel. Bagisto will automatically index products, including attributes like name, description, price, and availability.

Here’s a simple configuration for integrating Elasticsearch with Bagisto:

To configure Elasticsearch, please refer to the Configuration Setup documentation.

3. Real-Time Indexing and Synchronization

Elasticsearch indexes products in real-time, ensuring that Bagisto instantly reflects additions or updates. This keeps product searches up-to-date, which is crucial in eCommerce environments where product information changes frequently.

4. Final Performance Benchmark

Here’s a final benchmark of search performance and page load time after implementing Elasticsearch.

In the below image, you can see the page load time around  585.16 milliseconds with the 10 million products.

Admin Benchmark

In the below image, you can see the Home page load time around  561 milliseconds with the 10 million products.

Home page Benchmark

In the below image, you can see the category page load time around  516 milliseconds with the 10 million products.

Category page Benchmark

Conclusion: Future Scalability Beyond 10 Million Products

Scaling Bagisto to handle 10 million products is a challenging but achievable task.

By optimizing the database with eager loading and batch updates, integrating Elasticsearch for fast, real-time search, and leveraging advanced caching techniques, you can ensure that your Bagisto-powered store remains performant, even as your product catalog grows.

Thank you for taking the time to read this guide. We hope it provided valuable insights for scaling your Bagisto store. If you have any questions or run into challenges, don’t hesitate to leave a comment we’re here to help!

If you’re looking for tailored solutions, consider hiring a Laravel developer to create custom features for your store. To discover more extensions and tools for Bagisto, explore the full range at bagisto.com.

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Start a Project




    Message Sent!

    If you have more details or questions, you can reply to the received confirmation email.

    Back to Home