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-property
may 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 firstenum
values 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 Possible 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.track-inventory |
Boolean | No |
A boolean indicating whether inventory for this product should be tracked. Default value: false |
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.quantity |
Number | No |
Quantity of SKU that will be tracked as items are ordered. |
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 Possible values:
|
sku.fieldData.ec-sku-subscription-plan.plans[].status |
String | No |
The status of the plan Possible values:
|
sku.fieldData.ec-sku-subscription-plan.interval |
String | No |
Interval of subscription renewal Possible values:
|
publishStatus |
String | No |
Indicate whether your Product should be set as "staging" or "live" Possible 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.