Products & Catalog
How themes load and render the public catalog.Data sources
Public HTTP (examples):
/api/stores/by-subdomain/{subdomain}/products- Storefront bootstrap payload used by Vite themes
/api/dashboard/* from a theme.
Product shape (theme-facing)
Aligned withMarktProduct / StoreProduct:
Groups
Nunjucks patterns
All products
minPrice / maxPrice on cards; variants[].price on the product page.
Featured IDs
Catalog with groups
Vite patterns
/product/${product.slug}.
Add to cart & buy
Never invent a payment form that posts card numbers to your theme origin.
Visibility & empty states
privatenever appears in the public payload — do not invent draftson-holddoes appear — show “On hold”, disable Add to cart / Buy now- Empty catalog → friendly empty UI
- Loading → skeletons on Vite