POST /sites/{site_id}/products
Create a new ecommerce product and defaultSKU. A product, at minimum, must have a single SKU.
To create a product with multiple SKUs:
- First, create a list of
sku-properties, also known as product options. For example, a T-shirt product may have a "color"sku-property, with a list of enum values: red, yellow, and blue, anothersku-propertymay be "size", with a list of enum values: small, medium, and large. - Once, a product is created with a list of
sku-properties, Webflow will create a default SKU, which is always a combination of the firstenumvalues of eachsku-property. (e.g. Small - Red - T-Shirt) - After creation, you can create additional SKUs for the product, using the Create SKUs endpoint.
Upon creation, the default product type will be Advanced, which ensures all Product and SKU fields will be shown to users in the Designer.
Required scope | ecommerce:write
Servers
- https://api.webflow.com/v2
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
site_id |
String | Yes |
Unique identifier for a Site |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/json" |
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
sku |
Object | Yes | |
sku.fieldData |
Object | No |
Standard and Custom fields for a SKU |
sku.fieldData.price |
Object | Yes |
price of SKU |
sku.fieldData.price.value |
Number | No |
Price of SKU |
sku.fieldData.price.currency |
String | No |
Currency of Item (alternative representation) |
sku.fieldData.price.unit |
String | No |
Currency of Item |
sku.fieldData.ec-sku-billing-method |
String | No |
Billing methodfor the SKU Valid values:
|
sku.fieldData.name |
String | Yes |
Name of the Product |
sku.fieldData.sku |
String | No |
A unique identifier for the SKU |
sku.fieldData.slug |
String | Yes |
URL structure of the Product in your site. |
sku.fieldData.sku-values |
Object | No |
A mapping between SKU properties and their values, represented as key-value pairs. Each key represents a SKU Property ID (e.g. "color") and maps to its corresponding SKU Value ID (e.g. "blue"). This structure defines the specific variant combination for a SKU. |
sku.fieldData.compare-at-price |
Object | No |
comparison price of SKU |
sku.fieldData.compare-at-price.value |
Number | No |
Price of SKU |
sku.fieldData.compare-at-price.unit |
String | No |
Currency of Item |
sku.fieldData.main-image |
String | No |
The URL for the main image of the SKU |
sku.fieldData.sku-properties[] |
Array | No |
The properties of the SKU |
sku.fieldData.sku-properties[].id |
String | Yes |
Unique identifier for a collection of Product Variants |
sku.fieldData.sku-properties[].name |
String | Yes |
Name of the collection of Product Variants |
sku.fieldData.sku-properties[].enum[] |
Array | Yes |
The individual Product variants that are contained within the collection |
sku.fieldData.sku-properties[].enum[].id |
String | Yes |
Unique identifier for a Product variant/Option |
sku.fieldData.sku-properties[].enum[].name |
String | Yes |
Name of the Product variant/Option |
sku.fieldData.sku-properties[].enum[].slug |
String | Yes |
Slug for the Product variant/Option in the Site URL structure |
sku.fieldData.ec-sku-subscription-plan |
Object | No |
Subscription plan for the SKU |
sku.fieldData.ec-sku-subscription-plan.frequency |
Number | No |
Frequncy of billing within interval |
sku.fieldData.ec-sku-subscription-plan.trial |
Number | No |
Number of days of a trial |
sku.fieldData.ec-sku-subscription-plan.plans[] |
Array | No | |
sku.fieldData.ec-sku-subscription-plan.plans[].id |
String | No |
The unique identifier of the plan |
sku.fieldData.ec-sku-subscription-plan.plans[].platform |
String | No |
The platform of the subscription plan Valid values:
|
sku.fieldData.ec-sku-subscription-plan.plans[].status |
String | No |
The status of the plan Valid values:
|
sku.fieldData.ec-sku-subscription-plan.interval |
String | No |
Interval of subscription renewal Valid values:
|
publishStatus |
String | No |
Indicate whether your Product should be set as "staging" or "live" Valid values:
Default value: "staging" |
product |
Object | Yes | |
product.fieldData |
Object | No |
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.