Managing Products

The product list supports filtering, searching, sorting, and bulk operations.


The Product List

Go to Admin → Products to see all products for the current store. The list shows:

  • Product name and image
  • Price and compare-at price
  • Stock status badge
  • Visibility badge (public/private/draft)
  • Quick actions menu

Filtering

Use the query parameters to filter the product list:

Parameter Values Example
search Text string ?search=phone
status in_stock, low_stock, out_of_stock, not_tracked ?status=low_stock
visibility public, private, draft ?visibility=public
categoryId UUID ?categoryId=abc123...
minPrice Number ?minPrice=10
maxPrice Number ?maxPrice=100
sortBy name, price, stockQuantity, createdAt ?sortBy=price
sortOrder asc, desc ?sortOrder=desc

Combine filters:

GET /api/v1/st_xxx/products?search=phone&status=in_stock&minPrice=100&maxPrice=500&sortBy=price&sortOrder=asc

Full-Text Search

Products are indexed in Typesense for typo-tolerant search. The search:

  • Handles typos (e.g., "iphne" finds "iphone")
  • Supports faceted filtering
  • Returns results in milliseconds
  • Updates automatically when products change

Search scope: product name, description, and SKU.


Sorting

Sort Field Description
name Alphabetical by product name
price By price (low to high or high to low)
stockQuantity By available stock
createdAt By creation date

Default sort is by createdAt descending (newest first).


Pagination

The product list is paginated. Each page returns up to 50 items by default. Use the page parameter to navigate:

GET /api/v1/st_xxx/products?page=2&size=50

Storefront Search Component

The storefront ProductSearch component provides the same search with built-in UI:

<ProductSearch>
  <ProductSearchInput class="w-full" placeholder="Search products..." />
  <ProductSearchResults>
    <Grid cols={4} gap={4}>
      <CollectionView>
        <Product>
          <ProductImage />
          <ProductName />
          <ProductPrice />
        </Product>
      </CollectionView>
    </Grid>
  </ProductSearchResults>
  <ProductSearchPagination />
</ProductSearch>

Filtering and sorting are handled by the component — no manual query string construction needed.


Reindexing

If search results seem stale, an admin can reindex all products:

POST /api/v1/admin/reindex

This is available in the admin panel and requires admin authentication.