Products
Products, variants, options, categories, tags, collections, and brand collections
Products
products
Stores product information.
| Field | Type | Description | Required |
|---|---|---|---|
title | text | Product name | ✓ |
subtitle | text | Subtitle | |
slug | slug | URL slug (auto-generated) | |
status | select | Status: draft, published, archived (default: draft) | |
isSoldOut | checkbox | Sold out flag (default: false) | |
thumbnail | upload | Thumbnail image (product-images) | |
images | upload[] | Product images (product-images) | |
description | richText | Product description (Lexical) | |
price | number | Price (step: 100) | ✓ |
krwPrice | virtual | KRW formatted price (e.g., "1,000") - read-only | |
categories | relationship[] | Categories (product-categories) | |
tags | relationship[] | Tags (product-tags) | |
brand | relationship | Brand (brands) | |
shippingPolicy | relationship | Shipping policy (shipping-policies) | |
metadata | json | Metadata (custom data) | |
variants | join | Product variants (product-variants) | |
options | join | Product options (product-options) |
const response = await client.from('products').find({
where: {
status: { equals: 'published' },
price: { less_than: 50000 }
},
limit: 20
})product-variants
Stores product variants (size, color, etc.).
| Field | Type | Description | Required |
|---|---|---|---|
product | relationship | Product reference (products) | ✓ |
title | text | Variant name | ✓ |
sku | text | Variant SKU | |
barcode | text | Barcode (indexed) | |
price | number | Price override (uses product price if not set) | |
weight | number | Weight (in grams) | |
metadata | json | Metadata | |
images | upload[] | Variant images (product-images) | |
productOptions | join | Variant options (product-options) |
product-options
Stores product options (stock keeping units).
| Field | Type | Description | Required |
|---|---|---|---|
product | relationship | Product reference (products) - auto-set from variant | ✓ |
variant | relationship | Variant reference (product-variants) | |
title | text | Option name | |
stock | number | Stock quantity | ✓ |
reservedStock | number | Reserved stock from carts (default: 0) |
product-categories
Stores product categories.
| Field | Type | Description | Required |
|---|---|---|---|
title | text | Category name | ✓ |
slug | slug | URL slug (auto-generated) | |
description | textarea | Description | |
parent | relationship | Parent category (hierarchical) | |
image | upload | Category image (product-images) |
product-tags
Stores product tags.
| Field | Type | Description | Required |
|---|---|---|---|
title | text | Tag name | ✓ |
slug | slug | URL slug (auto-generated) | |
description | textarea | Description |
product-images
Stores product images. Upload collection (mimeTypes: image/*)
| Field | Type | Description | Required |
|---|---|---|---|
alt | text | Alt text |
product-collections
Stores product collections (curated groups). Group products together to organize your catalog.
| Field | Type | Description | Required |
|---|---|---|---|
title | text | Collection name | ✓ |
slug | slug | URL slug (auto-generated) | |
thumbnail | upload | Thumbnail image (product-images) | |
images | upload[] | Collection images (product-images) | |
description | richText | Description (Lexical) | |
products | relationship[] | Included products (products, M:N) | |
status | select | Status: draft, published, archived (default: draft) | |
sortOrder | select | Sort order: manual, alphabetical, price_low_to_high, price_high_to_low, newest | |
metadata | json | Metadata |
const { docs } = await client.from('product-collections').find({
where: { status: { equals: 'published' } },
depth: 2,
})brands
Stores brand information.
| Field | Type | Description | Required |
|---|---|---|---|
name | text | Brand name | ✓ |
slug | slug | URL slug (auto-generated) | |
logo | upload | Logo (brand-logos) | |
logoDark | upload | Dark logo (brand-logos) | |
logomark | upload | Logomark (brand-logos) | |
description | textarea | Description | |
website | text | Website URL |
brand-logos
Stores brand logo images. Upload collection
| Field | Type | Description | Required |
|---|---|---|---|
alt | text | Alt text |