Search docs ⌘K
esc
Type to search across all documentation pages
Commerce

Products

Create and manage products. Products belong to a catalog and optionally a category. They can have multiple variants, each with its own price and inventory.

Create a product

POST
/modules/commerce/products
commerce:write

Create a new product.

curl
curl -X POST https://api.saasignal.saastemly.com/modules/commerce/products \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"name":"example","price":1}'
json — 201 Created
{ "status": "ok" }
Body field
Type
Description
catalog_id
string
category_id
string
name required
string
1–512 chars
slug
string
1–256 chars
description
string
max 8192 chars
type
string
values: physical, digital, service
status
string
values: active, draft, archived
price required
number
range ≥0
compare_at_price
number
range ≥0
cost_price
number
range ≥0
currency
string
3–3 chars
sku
string
max 128 chars
barcode
string
max 128 chars
weight
number
range ≥0
weight_unit
string
values: g, kg, lb, oz
taxable
boolean
tax_code
string
max 64 chars
track_inventory
boolean
quantity
integer
range ≥0 .. ≤9007199254740991
allow_backorder
boolean
images
array
max 20 items
tags
array
max 50 items
metadata
object
Error responses
401 Unauthorized
402 Insufficient tokens
429 Rate limited

List products

GET
/modules/commerce/products
commerce:read

List products with optional filters.

curl
curl https://api.saasignal.saastemly.com/modules/commerce/products \
  -H "Authorization: Bearer sk_live_..."
json — 200 OK
{ "status": "ok" }
Query param
Type
Description
catalog_id
string
category_id
string
status
string
type
string
q
string
min_price
number
range ≥0
max_price
number
range ≥0
tags
string
limit
integer
range ≥1 .. ≤100default 25
cursor
string
Error responses
401 Unauthorized
402 Insufficient tokens
429 Rate limited

Get a product

GET
/modules/commerce/products/{product_id}
commerce:read

Retrieve a single product.

curl
curl https://api.saasignal.saastemly.com/modules/commerce/products/{product_id} \
  -H "Authorization: Bearer sk_live_..."
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
product_id required
string
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
429 Rate limited

Update a product

PATCH
/modules/commerce/products/{product_id}
commerce:write

Update a product.

curl
curl -X PATCH https://api.saasignal.saastemly.com/modules/commerce/products/{product_id} \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{}'
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
product_id required
string
Body field
Type
Description
catalog_id
mixed
category_id
mixed
name
string
1–512 chars
slug
string
1–256 chars
description
mixed
type
string
values: physical, digital, service
status
string
values: active, draft, archived
price
number
range ≥0
compare_at_price
mixed
cost_price
mixed
currency
string
3–3 chars
sku
mixed
barcode
mixed
weight
mixed
weight_unit
mixed
taxable
boolean
tax_code
mixed
track_inventory
boolean
quantity
integer
range ≥0 .. ≤9007199254740991
allow_backorder
boolean
images
array
max 20 items
tags
array
max 50 items
metadata
object
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
429 Rate limited

Delete a product

DELETE
/modules/commerce/products/{product_id}
commerce:admin

Permanently remove a product.

curl
curl -X DELETE https://api.saasignal.saastemly.com/modules/commerce/products/{product_id} \
  -H "Authorization: Bearer sk_live_..."
json — 200 OK
{ "status": "ok" }
Path param
Type
Description
product_id required
string
Error responses
401 Unauthorized
402 Insufficient tokens
404 Not found
429 Rate limited