---
title: Multi-site catalogs
slug: commerce-connect-14/docs/multi-site-for-catalogs
docTags: 
createdAt: 2026-07-23T10:25:33.704Z
---

When using multi-site, you can create site-specific catalogs. To filter for catalogs based on site, you can use the following API:

```csharp
//Using commerce search prvoider,
ServiceLocator.Current.GetInstance<SearchManager>().Search(new CatalogEntrySearchCriteria
{
    CatalogNames = GetCatalogNames(),
});

 

 private StringCollection GetCatalogNames()
{
    var catalogNames = new StringCollection();
    var ids = ServiceLocator.Current.GetInstance<ICatalogSystem>().GetCatalogsBySite(SiteDefinition.Current?.Id ?? Guid.Empty);
    if (ids == null || !ids.Any())
    {
        return catalogNames;
    }
    var catalogs = _catalogSystem.GetCatalogDto().Catalog.Where(x => ids.Contains(x.CatalogId));
    catalogNames.AddRange(catalogs.Select(x => x.Name).ToArray());
    return catalogNames;
}
```

```csharp
//Using Optimizely Search & Navigation
var query = ServiceLocator.Current.GetInstance<IClient>().Search<EntryContentBase>();
var ids = ServiceLocator.Current.GetInstance<ICatalogSystem>().GetCatalogsBySite(SiteDefinition.Current?.Id ?? Guid.Empty);
if (ids?.Any() ?? false)
{
   query = query.Filter(x => x.CatalogId.In(ids));
}
var result = query.GetContentResult();
```
