SazitoSazito SDKv1.2.2
API Reference

Products

Product lookup, filtered listing, and cross-entity search.

Methods

Get

Use: products.get(slugOrPath, options?).

ParameterTypeRequiredDescription
slugOrPathstringRequiredProduct slug (shoe-123) or full path (/product/shoe-123).
optionsRequestOptionsOptionalPer-request controls.

Returns: SazitoResponse<Product>.

List

Use: products.list(filters?, options?).

FieldTypeRequiredDescription
filters.pagenumberOptionalPage number.
filters.pageSizenumberOptionalItems per page.
filters.sort'newest' | 'best-selling' | 'availability' | 'discount' | '!price' | 'price'OptionalSort strategy.
filters.categoriesnumber | number[]OptionalCategory filter(s).
filters.priceMinnumberOptionalMinimum price.
filters.priceMaxnumberOptionalMaximum price.
filters.availableOnlybooleanOptionalStock filter behavior.
filters.discountedOnlybooleanOptionalDiscounted products only.
filters.pinnedIdsnumber[]OptionalPin products on top.
filters.similarTonumberOptionalSimilar-to product ID.
optionsRequestOptionsOptionalPer-request controls.

Returns: SazitoResponse<PaginatedResponse<Product>>.

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

ParameterTypeRequiredDescription
querystringRequiredSearch text.
filtersProductFiltersOptionalSearch pagination/filter parameters.
optionsRequestOptionsOptionalPer-request controls.

Returns: SazitoResponse<SearchResponse>.

Response key fields

Product

FieldTypeRequiredDescription
namestringRequiredProduct name.
urlstringRequiredProduct URL path.
enabledbooleanRequiredEnabled status.
variantsProductVariant[]RequiredVariant list.
imagesImage[]RequiredProduct images.
categoriesProductCategory[]RequiredProduct categories.
attributesProductAttribute[]OptionalAdditional attributes.

Known errors

TypeWhen it happens
apiResolved entity is not a product or product not found.
networkConnectivity/timeout issues.

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.products.list({ page: 1, pageSize: 12 }).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.

ProductFilters

Source: src/types/product.ts

FieldTypeRequired
pagenumberOptional
pageSizenumberOptional
sortProductSortOptional
categoriesnumber | number[]Optional
priceMinnumberOptional
priceMaxnumberOptional
availableOnlybooleanOptional
discountedOnlybooleanOptional
pinnedIdsnumber[]Optional
similarTonumberOptional

Product

Source: src/types/product.ts

FieldTypeRequired
idnumberOptional
namestringRequired
urlstringRequired
enabledbooleanRequired
productTypestringRequired
themeConfiganyOptional
dynamicFormIdnumberOptional
eventEntityIdnumberOptional
attributesProductAttribute[]Optional
imagesImage[]Required
variantsProductVariant[]Required
categoriesProductCategory[]Required
createdAtstringRequired
updatedAtstringRequired

ProductVariant

Source: src/types/product.ts

FieldTypeRequired
idnumberRequired
productIdnumberOptional
skustringOptional
enabledbooleanRequired
pricenumberRequired
originalPricenumberOptional
stockQuantitynumberRequired
isStockManagedbooleanRequired
isAvailablebooleanOptional
attributesProductAttribute[]Required
hasMaxOrderbooleanRequired
maxOrderQuantitynumberRequired
minOrderQuantitynumberRequired
weightnumberOptional
dynamicFormIdnumberOptional
sortIndexnumberRequired
imageIdnumberOptional
commercialFilesany[]Optional
createdAtstringRequired
updatedAtstringRequired

ProductCategory

Source: src/types/product.ts

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

ProductAttribute

Source: src/types/common.ts

FieldTypeRequired
namestringRequired
valuestringRequired

Image

Source: src/types/common.ts

FieldTypeRequired
idnumberRequired
namestringRequired
urlstringRequired
altstringOptional
widthnumberOptional
heightnumberOptional
ordernumberOptional
createdAtstringRequired
updatedAtstringRequired

SearchResponse

Source: src/types/search.ts

FieldTypeRequired
products{ items: Product[]; total: number; page: number; pageSize: number; }Required
products.itemsProduct[]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

On this page