Products
Audience: Merchant (dashboard), Developer (merchant API integration)
Manage catalog items for a store from:
- Dashboard product screens
- Merchant API routes under
/api/v1/merchant/stores/{storeID}/products
Permission
Requires manage_products permission (owners always pass).
Main Endpoints
GET /products(supports paging + filters)GET /products/{productID}POST /productsPUT /products/{productID}DELETE /products/{productID}POST /products/{productID}/publishPOST /products/{productID}/unpublishPOST /products/images(multipart image upload)PUT /products/{productID}/variantsGET /products/{productID}/variantsPUT /products/{productID}/seoPOST /products/generate-description(AI-assisted description)
List Filters
GET /products supports these query params:
page,per_pagesearchcategorytags(comma-separated)is_active(true/false)low_stock(true)
Create Example
curl -sS -X POST "http://localhost:8080/api/v1/merchant/stores/$STORE_ID/products" \
-H "Authorization: Bearer $DASHBOARD_BEARER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Classic Tee",
"price": 29.99,
"inventory_quantity": 40,
"status": "active",
"category_slugs": ["apparel"]
}'
Notes
- Product creation requires at least one category slug.
- Upload endpoint validates image MIME type (
jpeg/png/webp). - Publish/unpublish are explicit actions; listing can include both active and inactive items.