API Reference
Search
Unified entity search across products, CMS pages, blog pages, and categories.
Method
Query
Use: search.query(query, filters?, options?).
| Field | Type | Required | Description |
|---|---|---|---|
query | string | Required | Search query text. |
filters.page | number | Optional | Page number. |
filters.pageSize | number | Optional | Page size. |
filters.categoryId | number | Optional | Category filter. |
filters.minPrice | number | Optional | Minimum price. |
filters.maxPrice | number | Optional | Maximum price. |
options | RequestOptions | Optional | Per-request controls. |
Returns: SazitoResponse<SearchResponse>.
SearchResponse fields
| Field | Type | Required | Description |
|---|---|---|---|
products.items | Product[] | Required | Product results. |
blogPages.items | BlogPage[] | Required | Blog page results. |
cmsPages.items | CmsPage[] | Required | CMS page results. |
productCategories.items | ProductCategory[] | Required | Category results. |
*.total | number | Required | Total items in result set. |
*.page | number | Required | Current page. |
*.pageSize | number | Required | Page 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
| Field | Type | Required |
|---|---|---|
page | number | Optional |
pageSize | number | Optional |
categoryId | number | Optional |
minPrice | number | Optional |
maxPrice | number | Optional |
SearchResponse
Source: src/types/search.ts
| Field | Type | Required |
|---|---|---|
products | { items: Product[]; total: number; page: number; pageSize: number; } | Required |
products.items | Product[] | Required |
products.total | number | Required |
products.page | number | Required |
products.pageSize | number | Required |
blogPages | { items: BlogPage[]; total: number; page: number; pageSize: number; } | Required |
blogPages.items | BlogPage[] | Required |
blogPages.total | number | Required |
blogPages.page | number | Required |
blogPages.pageSize | number | Required |
cmsPages | { items: CmsPage[]; total: number; page: number; pageSize: number; } | Required |
cmsPages.items | CmsPage[] | Required |
cmsPages.total | number | Required |
cmsPages.page | number | Required |
cmsPages.pageSize | number | Required |
productCategories | { items: ProductCategory[]; total: number; page: number; pageSize: number; } | Required |
productCategories.items | ProductCategory[] | Required |
productCategories.total | number | Required |
productCategories.page | number | Required |
productCategories.pageSize | number | Required |
Product
Source: src/types/product.ts
| Field | Type | Required |
|---|---|---|
id | number | Optional |
name | string | Required |
url | string | Required |
enabled | boolean | Required |
productType | string | Required |
themeConfig | any | Optional |
dynamicFormId | number | Optional |
eventEntityId | number | Optional |
attributes | ProductAttribute[] | Optional |
images | Image[] | Required |
variants | ProductVariant[] | Required |
categories | ProductCategory[] | Required |
createdAt | string | Required |
updatedAt | string | Required |
BlogPage
Source: src/types/search.ts
| Field | Type | Required |
|---|---|---|
id | number | Optional |
name | string | Required |
url | string | Required |
enabled | boolean | Optional |
cmsPageType | CMSPageType | Optional |
content | string | Optional |
summary | string | Optional |
image | Image | Optional |
themeConfig | any | Optional |
attributes | ProductAttribute[] | Optional |
createdAt | string | Required |
updatedAt | string | Required |
CmsPage
Source: src/types/search.ts
| Field | Type | Required |
|---|---|---|
id | number | Optional |
name | string | Required |
url | string | Required |
enabled | boolean | Optional |
cmsPageType | CMSPageType | Optional |
content | string | Optional |
summary | string | Optional |
image | Image | Optional |
themeConfig | any | Optional |
attributes | ProductAttribute[] | Optional |
createdAt | string | Required |
updatedAt | string | Required |
ProductCategory
Source: src/types/product.ts
| Field | Type | Required |
|---|---|---|
id | number | Optional |
name | string | Required |
url | string | Required |
enabled | boolean | Optional |
description | string | Optional |
productsCount | number | Optional |
themeConfig | any | Optional |
attributes | ProductAttribute[] | Optional |
createdAt | string | Optional |
updatedAt | string | Optional |