Skip to main content

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 /products
  • PUT /products/{productID}
  • DELETE /products/{productID}
  • POST /products/{productID}/publish
  • POST /products/{productID}/unpublish
  • POST /products/images (multipart image upload)
  • PUT /products/{productID}/variants
  • GET /products/{productID}/variants
  • PUT /products/{productID}/seo
  • POST /products/generate-description (AI-assisted description)

List Filters

GET /products supports these query params:

  • page, per_page
  • search
  • category
  • tags (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.