create_commerce_product
Create a product in the store. Only title is required.
Money is an integer in the currency's smallest unit: price_amount=2999 is $29.99 for USD.
To sell variations, pass options here, then call generate_commerce_variants, or pass
variants explicitly alongside options.
Args: project_id: The project ID. title: Product name. Required. description: Long product description. slug: URL slug. Auto-generated from the title if empty. subtitle: Short line shown under the title. product_type: digital, download, course, template, membership, service, or physical. Physical forces one_time pricing. pricing_type: one_time, subscription, or pay_what_you_want. status: draft, active, or archived. Only active products show on the storefront. price_amount: Price in the smallest currency unit (e.g. cents). compare_at_amount: Struck-through reference price, same unit. currency: ISO currency code. Defaults to the store currency. image_url: Primary product image URL. image_alt: Alt text for the primary image. sku: SKU used when the product has no variants. checkout_url: External checkout link. Ignored for physical products. shipping_note: Shipping copy shown on the product page. requires_shipping: Whether checkout must collect a shipping address. weight_grams: Shipping weight in grams. inventory_enabled: Track stock for this product. inventory_quantity: Starting stock when there are no variants. highlights: JSON array of short selling-point strings (max 12). faqs: JSON array of {question, answer} objects (max 12). gallery: JSON array of {url, title, alt} image objects (max 12). delivery_details: JSON object {delivery_type, access_duration, access_note, refund_period, refund_policy}. social_proof: JSON object {rating, review_count, sales_count, sales_label}. seo: JSON object {title, description, image_url, canonical_url, robots}. discount: JSON object {code, percent_off, amount_off, expires_at, apply_mode, enabled, label}. options: JSON array of variation axes, max 3, e.g. [{"name":"Size","values":["S","M","L"]}]. variants: JSON array of variants. Each needs option_values naming every option, e.g. {"option_values":{"Size":"M"},"price_amount":2999,"sku":"TEE-M"}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| seo | No | ||
| sku | No | ||
| faqs | No | ||
| slug | No | ||
| title | Yes | ||
| status | No | draft | |
| gallery | No | ||
| options | No | ||
| currency | No | ||
| discount | No | ||
| subtitle | No | ||
| variants | No | ||
| image_alt | No | ||
| image_url | No | ||
| highlights | No | ||
| project_id | Yes | ||
| description | No | ||
| checkout_url | No | ||
| price_amount | No | ||
| pricing_type | No | one_time | |
| product_type | No | digital | |
| social_proof | No | ||
| weight_grams | No | ||
| shipping_note | No | ||
| delivery_details | No | ||
| compare_at_amount | No | ||
| inventory_enabled | No | ||
| requires_shipping | No | ||
| inventory_quantity | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |