---
title: Index POCO objects
slug: commerce-connect-14/docs/indexing-poco-objects-instead-of-catalogcontentbase
docTags: 
createdAt: 2026-07-23T10:25:32.999Z
---

These examples apply to solutions with the Optimizely Search & Navigation and Optimizely Commerce Connect integration (`EPiServer.Find.Commerce`) installed.

## Exclude CatalogContentBase from being indexed

Creating a POCO class and indexing it in Search & Navigation is easy. The problem is to figure out how to reindex objects when catalog content changes. This is an example of ensuring that nothing inheriting from `CatalogContentBase` gets indexed.

```csharp
public class SiteCatalogContentClientConventions : CatalogContentClientConventions
{
  public override void ApplyConventions(IClientConventions clientConventions)
  {
    base.ApplyConventions(clientConventions);
    ContentIndexer.Instance.Conventions.ForInstancesOf<CatalogContentBase>().ShouldIndex(x => false);
  }
}
```

## Add default price, prices, and inventory

You can add desired properties to your POCO class. For example: `IEnumerable<Price> Prices`, `Price DefaultPrice`, and `IEnumerable<Inventories>`. These properties can be populated by using `ReadonlyPriceLoader` and `InventoryLoader`.

## Listen for updates

You can override methods that return a delegate for indexing content by creating POCO objects and indexing them.

```csharp
public class SiteCatalogKeyEventListener : CatalogContentEventListener
{
  public SiteCatalogKeyEventListener(
    ReferenceConverter referenceConverter,
    IContentRepository contentRepository,
    IClient client,
    CatalogEventIndexer indexer,
    CatalogContentClientConventions clientConventions)
    : base(referenceConverter, contentRepository, client, indexer, clientConventions)
  {
  }

  protected override Action<IContent> GetIndexContentAction()
  {
    return (content) =>
    {
      // Create the POCO class here, and call the indexer
    };
  }

  protected override Action<IContent> GetIndexContentAndDescendantsAction()
  {
    return (content) =>
    {
      // Create the POCO class here, and call the indexer
    };
  }
}
```
