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>.
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
| Field | Type | Required | Description |
|---|---|---|---|
products.items | ProductListItem[] | Required | Slim product card 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: ProductListItem[]; total: number; page: number; pageSize: number; } | Required |
products.items | ProductListItem[] | 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 |
ProductListItem
Source: src/types/product.ts
| Field | Type | Required |
|---|---|---|
id | number | Required |
name | string | Required |
url | string | Required |
enabled | boolean | Required |
productType | string | Required |
dynamicFormId | number | Optional |
eventEntityId | number | Optional |
attributes | ProductAttribute[] | Optional |
imageCount | number | Required |
images | ProductImage[] | null | Required |
variants | ProductListVariant[] | null | Required |
ProductListVariant
Source: src/types/product.ts
| Field | Type | Required |
|---|---|---|
id | number | Required |
enabled | boolean | Required |
price | number | Required |
originalPrice | number | Optional |
stockQuantity | number | Required |
isStockManaged | boolean | Required |
attributes | ProductAttribute[] | Required |
hasMaxOrder | boolean | Required |
maxOrderQuantity | number | Required |
minOrderQuantity | number | Required |
dynamicFormId | number | Optional |
sortIndex | number | Required |
imageId | number | Optional |
ProductImage
Source: src/types/product.ts
| Field | Type | Required |
|---|---|---|
id | number | Required |
alt | string | Optional |
url | string | Required |
width | number | Optional |
height | number | Optional |
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 | JsonObject | 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 | JsonObject | 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 | JsonObject | Optional |
attributes | ProductAttribute[] | Optional |
createdAt | string | Optional |
updatedAt | string | Optional |