Wiselin Jaya Jos Kanagamani
HomeBlogAbout MeProductsContact
Optimizely

Integrating Searchspring with Optimizely – Part 1: Architecture & Setup

March 17, 2026
1 min read
Integrating Searchspring with Optimizely – Part 1: Architecture & Setup

Introduction

Modern e-commerce platforms demand fast, relevant, and intelligent search experiences. While Optimizely (Episerver) provides robust CMS and Commerce capabilities, scaling search for large product catalogs often requires a more specialised solution.

This is where Searchspring comes in.

In this two-part series, we’ll explore how to integrate Searchspring with Optimizely. In this first part, we’ll focus on the architecture, data flow, and setup.


Why Searchspring with Optimizely?

Optimizely Search & Navigation (Find) is powerful, but in complex commerce scenarios, businesses often need:

  • Advanced faceting and filtering
  • Merchandising controls for business users
  • AI-driven product ranking
  • Real-time autocomplete
  • High-performance search for large catalogs

Searchspring complements Optimizely by handling search and merchandising, while Optimizely continues to manage content and commerce logic.


High-Level Architecture

A typical Searchspring + Optimizely integration follows this flow:

  1. Product data is sourced from Optimizely Commerce (or PIM)
  2. A feed is generated and sent to Searchspring
  3. Searchspring indexes and processes the data
  4. Frontend applications call Searchspring APIs
  5. Optimizely renders the UI using API responses

Key idea:

Search is externalised, but experience stays within Optimizely


Product Feed Synchronisation

The foundation of this integration is the product feed.

You’ll need to push structured product data into Searchspring regularly.

Common approaches

  • Scheduled jobs in Optimizely
  • Middleware service
  • Direct PIM integration

Example: Scheduled Job in Optimizely

public class SearchspringFeedJob : ScheduledJobBase
{
public override string Execute()
{
var products = _productService.GetAllProducts();
var feed = products.Select(p => new {
id = p.Code,
name = p.DisplayName,
price = p.Price,
brand = p.Brand
});
_searchspringService.PushFeed(feed);
return "Feed synced successfully";
}
}

Tip: Always validate and transform data before sending—especially brand names and categories.


Searchspring API Basics

Once data is indexed, Searchspring exposes APIs for:

  • Search results
  • Category pages
  • Autocomplete

Example API Call

fetch(`https://api.searchspring.net/api/search/search.json?siteId=YOUR_SITE_ID&q=fridge`)
.then(res => res.json())
.then(data => {
console.log(data.results);
});

These APIs become the primary data source for your product listings.


Key Design Considerations

Before moving to implementation, keep these in mind:

  • Keep Searchspring responsible only for search and merchandising
  • Avoid mixing business logic into feed generation
  • Ensure consistent data mapping (especially brands, categories)
  • Plan for pagination and large datasets early

Wrapping Up

At this stage, you now have:

  • A clear architecture
  • Product feed flowing into Searchspring
  • APIs ready to consume

Coming in Part 2:

  • Frontend integration
  • Inline banners and merchandising
  • Real-world challenges (pagination, caching, data mismatches)

Tags

SearchspringOptimizelyEpiserverEcommerceSite SearchProduct Search

Share

Let's build something great together

Have a project in mind, or just want to talk Optimizely, .NET or AI? I'd love to hear from you.
Let's Connect
Wiselin Jaya Jos Kanagamani
DXP Solution Architect specialized in Optimizely, helping businesses design and scale modern digital experiences.

Quick Links

BlogAbout MeLet's ConnectRSS Feed

Social Media

© 2026 Wiselin Jaya Jos Kanagamani. All Rights Reserved.