SazitoSazito SDKv1.4.0
API Reference

Search

Unified entity search across products, CMS pages, blog pages, and categories.

Method

Query

Use: search.query(query, filters?, options?).

FieldTypeRequiredDescription
querystringRequiredSearch query text.
filters.pagenumberOptionalPage number.
filters.pageSizenumberOptionalPage size.
filters.categoryIdnumberOptionalCategory filter.
filters.minPricenumberOptionalMinimum price.
filters.maxPricenumberOptionalMaximum price.
optionsRequestOptionsOptionalPer-request controls.

Returns: SazitoResponse<SearchResponse>.

products.search() provides product search too. Product hits are ProductListItem objects for product cards, with a two-image default plus variant-referenced images. Use imageCount for the total image count and products.get() for categories, custom page configuration, description, SEO attributes, or variant SKUs. Images only expose id, alt, url, width, and height.

productType can be an empty string and image id, width, or height can be zero. Display images using url. Only calculate an aspect ratio from positive dimensions, and only match variant images by ID when the ID is valid.

Each result group has its own total, page, and pageSize. Do not use the product group's pagination to determine whether other groups have more results.

products.search() supports query and pagination. Use search.query() for categoryId, minPrice, and maxPrice filters. List sort, pinned-product, and similar-product controls are not search parameters exposed by these methods.

See Products for image-count examples, nullable collections, attributes, and variant fields.

SearchResponse fields

FieldTypeRequiredDescription
products.itemsProductListItem[]RequiredSlim product card results.
blogPages.itemsBlogPage[]RequiredBlog page results.
cmsPages.itemsCmsPage[]RequiredCMS page results.
productCategories.itemsProductCategory[]RequiredCategory results.
*.totalnumberRequiredTotal items in result set.
*.pagenumberRequiredCurrent page.
*.pageSizenumberRequiredPage size.

Examples

// app/lib/sazito-client.ts
import { createSazitoClient } from '@sazito/client-sdk';

export const sazito = createSazitoClient({
  domain: process.env.NEXT_PUBLIC_SAZITO_DOMAIN!,
});
// app/[lang]/(home)/page.tsx
'use client';
import { useEffect, useState } from 'react';
import { sazito } from '@/app/lib/sazito-client';

export default function Example() {
  const [data, setData] = useState<any>(null);

  useEffect(() => {
    sazito.search.query('shoe', { page: 1, pageSize: 10 }).then((res) => setData(res.data ?? null));
  }, []);

  return <pre>{JSON.stringify(data, null, 2)}</pre>;
}

Type Details

The following tables are generated from SDK TypeScript types and include nested object fields.

SearchFilters

Source: src/api/search.ts

FieldTypeRequired
pagenumberOptional
pageSizenumberOptional
categoryIdnumberOptional
minPricenumberOptional
maxPricenumberOptional

SearchResponse

Source: src/types/search.ts

FieldTypeRequired
products{ items: ProductListItem[]; total: number; page: number; pageSize: number; }Required
products.itemsProductListItem[]Required
products.totalnumberRequired
products.pagenumberRequired
products.pageSizenumberRequired
blogPages{ items: BlogPage[]; total: number; page: number; pageSize: number; }Required
blogPages.itemsBlogPage[]Required
blogPages.totalnumberRequired
blogPages.pagenumberRequired
blogPages.pageSizenumberRequired
cmsPages{ items: CmsPage[]; total: number; page: number; pageSize: number; }Required
cmsPages.itemsCmsPage[]Required
cmsPages.totalnumberRequired
cmsPages.pagenumberRequired
cmsPages.pageSizenumberRequired
productCategories{ items: ProductCategory[]; total: number; page: number; pageSize: number; }Required
productCategories.itemsProductCategory[]Required
productCategories.totalnumberRequired
productCategories.pagenumberRequired
productCategories.pageSizenumberRequired

ProductListItem

Source: src/types/product.ts

FieldTypeRequired
idnumberRequired
namestringRequired
urlstringRequired
enabledbooleanRequired
productTypestringRequired
dynamicFormIdnumberOptional
eventEntityIdnumberOptional
attributesProductAttribute[]Optional
imageCountnumberRequired
imagesProductImage[] | nullRequired
variantsProductListVariant[] | nullRequired

ProductListVariant

Source: src/types/product.ts

FieldTypeRequired
idnumberRequired
enabledbooleanRequired
pricenumberRequired
originalPricenumberOptional
stockQuantitynumberRequired
isStockManagedbooleanRequired
attributesProductAttribute[]Required
hasMaxOrderbooleanRequired
maxOrderQuantitynumberRequired
minOrderQuantitynumberRequired
dynamicFormIdnumberOptional
sortIndexnumberRequired
imageIdnumberOptional

ProductImage

Source: src/types/product.ts

FieldTypeRequired
idnumberRequired
altstringOptional
urlstringRequired
widthnumberOptional
heightnumberOptional

BlogPage

Source: src/types/search.ts

FieldTypeRequired
idnumberOptional
namestringRequired
urlstringRequired
enabledbooleanOptional
cmsPageTypeCMSPageTypeOptional
contentstringOptional
summarystringOptional
imageImageOptional
themeConfigJsonObjectOptional
attributesProductAttribute[]Optional
createdAtstringRequired
updatedAtstringRequired

CmsPage

Source: src/types/search.ts

FieldTypeRequired
idnumberOptional
namestringRequired
urlstringRequired
enabledbooleanOptional
cmsPageTypeCMSPageTypeOptional
contentstringOptional
summarystringOptional
imageImageOptional
themeConfigJsonObjectOptional
attributesProductAttribute[]Optional
createdAtstringRequired
updatedAtstringRequired

ProductCategory

Source: src/types/product.ts

FieldTypeRequired
idnumberOptional
namestringRequired
urlstringRequired
enabledbooleanOptional
descriptionstringOptional
productsCountnumberOptional
themeConfigJsonObjectOptional
attributesProductAttribute[]Optional
createdAtstringOptional
updatedAtstringOptional

On this page