Create a product
post
/rest/api/products Creates a Product resource.
Creates a single product in the current organization. The product is returned with all read-only fields (id, timestamps, derived state) populated. You can also create initial channel assignments, collections and variants in the same call.
Headers
| Name | Type | Required | Description |
|---|---|---|---|
X-Flowkiwi-Organization-Id | string | required | The organization the request acts as. Determines the identity, permissions and ownership applied when reading or modifying data on the instance. |
X-Flowkiwi-Locale | string | - | Specifies the locale for properties that support localization. If not provided, the default locale will be used. |
X-Flowkiwi-Locale-Fallback | boolean | - | Enables the use of a fallback locale. If a property lacks a translation for the requested locale, the value from the default locale will be used. |
Request body
| Property | Type | Required | Description |
|---|---|---|---|
status | string | - | Status IRI controlling visibility. Optional - defaults to a draft status when omitted. |
vendor | string | null | - | Brand or manufacturer the product is attributed to. |
title | string | null | - | Customer-facing product title. Translatable - set the active locale with X-Flowkiwi-Locale. |
description | string | null | - | Long-form description. Markdown is not parsed by the API. |
tags | string | null | - | Comma-separated list of free-form tags. Used for storefront filtering. |
category | string | null | - | Category IRI this product is attached to. Categories drive the attribute set. |
channels | Channel.ChannelCreateInput[] | - | List of Channel write inputs. Each entry assigns the product to a channel at creation time. |
collections | Collection.CollectionCreateInput[] | - | List of Collection write inputs. Each entry attaches the product to a collection at creation time. |
medias | Media[] | - | List of Media write inputs (ordered). Only images are accepted. Position determines display order. |
Response
201 - Product resource created
| Property | Type | Required | Description |
|---|---|---|---|
@context | object | - | |
@id | string | required | |
@type | string | required | |
id | string | - | Stable UUID of the product. |
status | string | - | The status of the product. |
vendor | string | null | - | The name of the product's vendor. |
title | string | null | - | This property supports translations. The name of the product. |
description | string | null | - | This property supports translations. A description of the product. |
tags | string | null | - | A string of comma-separated tags. |
variants | string[] | - | A list of Variant, each one representing a variant associated with the product. Serialized as IRI strings by default; pass ?expand=variants to embed the full Variant objects (including resolvedPrice, lowestPriceLast30Days, medias, and metafields when composed with ?expand=metafields). |
options | string[] | - | A list of Product Option, each one representing an option associated with the product. Serialized as IRI strings by default; pass ?expand=options to embed the full Product Option objects. |
category | string | null | - | The category to which this product belongs. Serialized as IRI string by default; pass ?expand=category to embed the full CategoryResource. |
attributeValues | array | - | A list of Attribute Values, each one representing an attribute value associated with the product. |
channels | string[] | - | A list of Channel, each one representing a channel associated with the product. Serialized as IRI strings by default; pass ?expand=channels to embed full ChannelResource objects. |
collections | string[] | - | A list of Collection, each one representing a collection associated with the product. Serialized as IRI strings by default; pass ?expand=collections to embed full CollectionResource objects. |
medias | string[] | - | A list of Media, ordered by position. Only media of type "image" can be associated with a product. Returned as IRI strings by default; pass ?expand=medias to embed full Media objects. |
metafields | string[] | - | Metafields owned by this product. Serialized as IRI strings by default; pass ?expand=metafields to embed full MetafieldResource objects. |
createdAt | string | - | The date and time when the resource was created (ISO 8601 format). |
updatedAt | string | - | The date and time when the resource was last modified (ISO 8601 format). |
| Property | Type | Required | Description |
|---|---|---|---|
id | string | - | Stable UUID of the product. |
status | string | - | The status of the product. |
vendor | string | null | - | The name of the product's vendor. |
title | string | null | - | This property supports translations. The name of the product. |
description | string | null | - | This property supports translations. A description of the product. |
tags | string | null | - | A string of comma-separated tags. |
variants | string[] | - | A list of Variant, each one representing a variant associated with the product. Serialized as IRI strings by default; pass ?expand=variants to embed the full Variant objects (including resolvedPrice, lowestPriceLast30Days, medias, and metafields when composed with ?expand=metafields). |
options | string[] | - | A list of Product Option, each one representing an option associated with the product. Serialized as IRI strings by default; pass ?expand=options to embed the full Product Option objects. |
category | string | null | - | The category to which this product belongs. Serialized as IRI string by default; pass ?expand=category to embed the full CategoryResource. |
attributeValues | array | - | A list of Attribute Values, each one representing an attribute value associated with the product. |
channels | string[] | - | A list of Channel, each one representing a channel associated with the product. Serialized as IRI strings by default; pass ?expand=channels to embed full ChannelResource objects. |
collections | string[] | - | A list of Collection, each one representing a collection associated with the product. Serialized as IRI strings by default; pass ?expand=collections to embed full CollectionResource objects. |
medias | string[] | - | A list of Media, ordered by position. Only media of type "image" can be associated with a product. Returned as IRI strings by default; pass ?expand=medias to embed full Media objects. |
metafields | string[] | - | Metafields owned by this product. Serialized as IRI strings by default; pass ?expand=metafields to embed full MetafieldResource objects. |
createdAt | string | - | The date and time when the resource was created (ISO 8601 format). |
updatedAt | string | - | The date and time when the resource was last modified (ISO 8601 format). |
Errors
400 - Invalid input
| Property | Type | Required | Description |
|---|---|---|---|
@context | object | - | |
@id | string | required | |
@type | string | required | |
title | string | null | - | A short, human-readable summary of the problem. |
detail | string | null | - | A human-readable explanation specific to this occurrence of the problem. |
status | number | null | - | |
instance | string | null | - | A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. |
type | string | - | A URI reference that identifies the problem type |
| Property | Type | Required | Description |
|---|---|---|---|
title | string | null | - | A short, human-readable summary of the problem. |
detail | string | null | - | A human-readable explanation specific to this occurrence of the problem. |
status | number | null | - | |
instance | string | null | - | A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. |
type | string | - | A URI reference that identifies the problem type |
403 - Access denied. The caller is missing one or more identity permissions required for this operation.
Content-Type: application/problem+json
| Property | Type | Required | Description |
|---|---|---|---|
@context | object | - | |
@id | string | required | |
@type | string | required | |
type | string | - | |
title | string | - | |
status | integer | - | |
detail | string | - | |
missingPermissions | string[] | - | Identity permissions that the caller is missing for this operation. Present only when the 403 is caused by a denied identity:* permission. |
422 - An error occurred
| Property | Type | Required | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@context | object | - | |||||||||||||||||||||||||
@id | string | required | |||||||||||||||||||||||||
@type | string | required | |||||||||||||||||||||||||
status | integer | - | |||||||||||||||||||||||||
violations | object[] | - | |||||||||||||||||||||||||
Show | |||||||||||||||||||||||||||
| Property | Type | Required | Description |
|---|---|---|---|
propertyPath | string | required | The property path of the violation |
message | string | required | The message associated with the violation |
code | string | - | The code of the violation |
hint | string | - | An extra hint to understand the violation |
payload | object | - | The serialized payload of the violation |
detailstringtypestringtitlestring | nullinstancestring | null| Property | Type | Required | Description | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
status | integer | - | |||||||||||||||||||||||||
violations | object[] | - | |||||||||||||||||||||||||
Show | |||||||||||||||||||||||||||
| Property | Type | Required | Description |
|---|---|---|---|
propertyPath | string | required | The property path of the violation |
message | string | required | The message associated with the violation |
code | string | - | The code of the violation |
hint | string | - | An extra hint to understand the violation |
payload | object | - | The serialized payload of the violation |
detailstringtypestringtitlestring | nullinstancestring | null