---
title: "Create a new product in eCommerce system.With the exception of the 'id' field, the required fields indicated in the 'Product' model are those required to create a new product"
method: POST
path: "/products"
tags: ["products"]
---

# Create a new product in eCommerce system.With the exception of the 'id' field, the required fields indicated in the 'Product' model are those required to create a new product

`POST /products`

## Headers

- `Authorization` string, required

## Request body

- ProductPost
  - `attributes` Attribute[]
    - `id` integer
    - `internalName` string
    - `name` string
    - `value` string
  - `categoryIds` integer[]
  - `compareAtPrice` number, double — Product’s sale price displayed strike-out in the customer
  - `compareToPrice` number, double
  - `created` string, date-time
  - `defaultCategoryId` integer
  - `description` string — Product description in HTML
  - `dimensions` ProductDimensions
    - `height` number, double
    - `length` number, double
    - `width` number, double
  - `enabled` boolean — true/false
  - `favorites` Favorite
    - `count` integer
    - `displayedCount` string
  - `fixedShippingRate` number, double
  - `fixedShippingRateOnly` boolean — true/false
  - `galleryImages` GalleryImage[]
    - `alt` string
    - `height` integer
    - `thumbnail` string
    - `url` string
    - `width` integer
  - `googleItemCondition` string — Google Item Condition Status
  - `isShippingRequired` boolean
  - `name` string — Product title
  - `options` Option[]
    - `choices` Choice[]
      - `priceModifier` number, double
      - `priceModifierType` string — PERCENT, ABSOLUTE
      - `text` string
    - `defaultChoice` integer
    - `name` string, required
    - `required` boolean, required — true/false
    - `type` string, required
  - `price` number, double — Base Product price
  - `productClassId` integer — Id of the product type that this product belongs to.
  - `quantity` integer — Amount of product items in stock.
  - `relatedProducts` RelatedProducts
    - `productIds` number[]
    - `relatedCategory` RelatedCategory
      - `categoryId` number, double
      - `enabled` boolean
      - `productCount` number, double
  - `seoDescription` string
  - `seoTitle` string
  - `shipping` Shipping
    - `disabledMethods` string[]
    - `enabledMethods` string[]
    - `flatRate` number, double
    - `methodMarkup` number, double
    - `type` string
  - `showOnFrontpage` number, double
  - `sku` string — Product SKU
  - `tax` ProductTax
    - `defaultLocationIncludedTaxRate` number, double
    - `enabledManualTaxes` integer[]
  - `taxes` Tax[]
    - `name` string
    - `total` number, double
    - `value` number, double
  - `warningLimit` integer
  - `weight` number, double — Product weight in the units defined in store settings
  - `wholesalePrices` WholesalePrices
    - `{quantity}` number, double

## Response `200`

OK - Everything worked as expected

## Other responses

- `400` — Bad Request - Often due to a missing request parameter
- `401` — Unauthorized - An invalid element token, user secret and/or org secret provided
- `403` — Forbidden - Access to the resource by the provider is forbidden
- `404` — Not found - The requested resource is not found
- `405` — Method not allowed - Incorrect HTTP verb used, e.g., GET used when POST expected
- `406` — Not acceptable - The response content type does not match the 'Accept' header value
- `409` — Conflict - If a resource being created already exists
- `415` — Unsupported media type - The server cannot handle the requested Content-Type
- `500` — Server error - Something went wrong on the Cloud Elements server
- `502` — Provider server error - Something went wrong on the Provider or Endpoint's server

---

[API](https://skmtc.net/cloud-elements/apis/ecwid.md) · [All operations](https://skmtc.net/cloud-elements/apis/ecwid/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cloud-elements/ecwid/versions/6c2a6ade2a5b/schema)
