ProductCreate

The body transmitted by the POST is an XML structure. Tags that do not enclose a value are ignored; so, In the example below, ParentSku will be ignored by the endpoint, even though it was supplied.

You can create multiple products by specifying multiple Product tags. It is recommended to send as many products as possible via one API Call to avoid Feed Throttling. The technical limit is 100.000 products.

This call creates a feed, which then is processed by system in the background.

Request Data

<?xml version="1.0" encoding="UTF-8" ?>
<Request>
  <Product>
    <SellerSku>4105382173aaee4</SellerSku>
    <ParentSku/>
    <Status>active</Status>
    <Name>Magic Product</Name>
    <Variation>XXL</Variation>
    <PrimaryCategory>4</PrimaryCategory>
    <Categories>2,3,5</Categories>
    <Description><![CDATA[This is a <b>bold</b> product.]]></Description>
    <Brand>ASM</Brand>
    <Price>1.00</Price>
    <SalePrice>32.5</SalePrice>
    <SaleStartDate>2013-09-03T11:31:23+00:00</SaleStartDate>
    <SaleEndDate>2013-10-03T11:31:23+00:00</SaleEndDate>
    <TaxClass>default</TaxClass>
    <ShipmentType>dropshipping</ShipmentType>
    <ProductId>xyzabc</ProductId>
    <Condition>new</Condition>
    <ProductData>
      <Megapixels>490</Megapixels>
      <OpticalZoom>7</OpticalZoom>
      <SystemMemory>4</SystemMemory>
      <NumberCpus>32</NumberCpus>
      <Network>This is network</Network>
    </ProductData>
    <Quantity>10</Quantity>
  </Product>
</Request>
<?xml version="1.0" encoding="UTF-8" ?>
<Request>
  <Product>
    <SellerSku>4105382173aaee4</SellerSku>
    <ParentSku/>
    <Status>active</Status>
    <Name>Magic Product</Name>
    <Variation>XXL</Variation>
    <PrimaryCategory>4</PrimaryCategory>
    <Categories>2,3,5</Categories>
    <Description><![CDATA[This is a <b>bold</b> product.]]></Description>
    <Brand>ASM</Brand>
    <Price>1.00</Price>
    <SalePrice>32.5</SalePrice>
    <SaleStartDate>2013-09-03T11:31:23+00:00</SaleStartDate>
    <SaleEndDate>2013-10-03T11:31:23+00:00</SaleEndDate>
    <TaxClass>default</TaxClass>
    <ShipmentType>dropshipping</ShipmentType>
    <ProductId>xyzabc</ProductId>
    <Condition>new</Condition>
    <ProductData>
      <Megapixels>490</Megapixels>
      <OpticalZoom>7</OpticalZoom>
      <SystemMemory>4</SystemMemory>
      <NumberCpus>32</NumberCpus>
      <Network>This is network</Network>
    </ProductData>
    <Quantity>10</Quantity>
  </Product>
  <Product>
    <SellerSku>513558029156743ab4e3</SellerSku>
    <ParentSku/>
    <Status>active</Status>
    <Name>Normal Product</Name>
    <Variation>XS</Variation>
    <PrimaryCategory>4</PrimaryCategory>
    <Categories>2,3,5</Categories>
    <Description><![CDATA[This is a <i>cursive</i> product.]]></Description>
    <Brand>BIN</Brand>
    <Price>2.50</Price>
    <SalePrice>1.50</SalePrice>
    <SaleStartDate>2016-07-01T11:15:07+00:00</SaleStartDate>
    <SaleEndDate>2016-07-01T11:15:07+00:00</SaleEndDate>
    <TaxClass>default</TaxClass>
    <ShipmentType>dropshipping</ShipmentType>
    <ProductId>foobar</ProductId>
    <Condition>new</Condition>
    <ProductData>
      <Megapixels>1</Megapixels>
      <OpticalZoom>100</OpticalZoom>
      <SystemMemory>2</SystemMemory>
      <NumberCpus>3</NumberCpus>
      <Network>This is network</Network>
    </ProductData>
    <Quantity>5</Quantity>
  </Product>
</Request>

The XML tags have the following meaning:

Tag

Type

Description

SellerSku

String

A unique identifier for the product within the SellerCenter instance that is to be added to the system. This identifier is usually freely assigned. Harmonized identifiers, such as UPC or EAN can be set via ProductId. Mandatory

ParentSku

String

The unique identifier of a product that is already in the system, with which this product should be associated. Optional

Status

String

One of the following values: 'active', 'inactive' or 'deleted'. Optional, defaults to 'active'.

Name

String

The name of the product as shown to the end-user. Mandatory. Must be between 2 to 255 characters.

Variation

String

If a product is available in multiple variations (e.g., colors or size), this is the value of the variation. E.g., if the product is a jacket that comes in different sizes, this would be the size of the jacket's variation that is added with the call (e.g., 'Extra Small').

PrimaryCategory

Integer

The ID of the primary category for his product. To get the ID for each of the system's categories call GetCategoryTree. Mandatory

Categories

String

A comma-separated list of one to thee sub-categories to which the product belongs. Each of the given sub-categories must descend from the category specified by the PrimaryCategory parameter. Optional

BrowseNodes

String

A comma-separated list of one or two additional categories that are not necessarily related to the PrimaryCategory. Optional

Description

String

The description of the product, as shown to the end-user. 6 to 25000 characters. Embedding certain HTML tags is allowed, but must be escaped as character data (see below). Mandatory

Brand

String

The brand name of the product. Mandatory

In case your brand is not in the GetBrands response, contact the company you are integrating with.

Price

Decimal

The product's price. Not really a Double, but a Decimal. Mandatory

SalePrice

Decimal

The (hopefully reduced) price for the product while it is on sale. If SalePrice is specified, either SaleStartDate or SaleEndDate must be given; vice versa, if at least one of SaleStartDate or SaleEndDate is specified, SalePrice is mandatory. Not really a Double, but a Decimal.

SaleStartDate

DateTime

Time and date for when the product goes on sale. If passed in, SalePrice becomes mandatory.

SaleEndDate

DateTime

Time and date for when the product goes on sale. If passed in, SalePrice becomes mandatory.

TaxClass

String

The taxation class the product belongs to. The available tax classes are dependent on the specific installation the call is executed against. In a simple tax structure, 'default' suffices. Mandatory

ShipmentType

String

Indicates whether the product is shipped direcly upon receipt ('crossdocking') or is drop shipped ('dropshipping'). Which shipment types are permissible depends on what is set up for a specific seller. Optional

ProductId

String

A harmonized code for the product, such as Universal Product Code (UPC), International Article Number (EAN), Global Trade Item Number (GTIN) or International Standard Book Number (ISBN). Optional

Condition

String

Indicates whether the product is new or used. One of 'new', 'used' or 'refurbished'. Optional

ProductData

Subsection

Additional product attributes, depends on the primary category. Optional

Quantity

Integer

The current level of inventory for this product. Optional

VolumetricWeight

Number DECIMAL(10,2)

undefined

ProductGroup

String

The name of the group

Response Data

Use the generated response information to retrieve more details of the Feed via another API call FeedStatus . Check out the details of the response via FeedList. Please be aware while doing the ProductCreate call we just do a basic validation. A full validation will be done while processing the feed, so it can be possible to push 100 products but only 90 of them get created.

Success

<?xml version="1.0" encoding="UTF-8"?>
<SuccessResponse>
    <Head>
        <RequestId>cb106552-87f3-450b-aa8b-412246a24b34</RequestId>
        <RequestAction>ProductCreate</RequestAction>
        <ResponseType/>
        <Timestamp>2016-06-22T04:40:14+0200</Timestamp>
    </Head>
    <Body/>
</SuccessResponse>

Errors

<?xml version="1.0" encoding="UTF-8"?>
<ErrorResponse>
    <Head>
        <RequestAction>ProductCreate</RequestAction>
        <ErrorType>Platform</ErrorType>
        <ErrorCode>1000</ErrorCode>
        <ErrorMessage>Could not save product: An exact match of the document is being processed, cb106552-87f3-450b-aa8b-412246a24b34</ErrorMessage>
    </Head>
    <Body/>
</ErrorResponse>

Error code

Message

1000

Could not save product: %s

1000

Format Error Detected

Markup in the Description

The product description can be plain text like so:

<Description>la descripciĆ³n</Description>

It can also contain certain HTML tags, including ul, li and span. If HTML is embedded, it must be escaped as character data, like so:

<Description><![CDATA[la descripciĆ³n <b>negrita</b>]]></Description> 

Create Multiple Variations

To be able to create multiple variation of one product, you need to fill the ParentSku to associate the product together. If no ParentSku is given, a new product is created, if a ParentSku is passed, a new variation to an existing product is created.

You can also use the ParentSku of a product which is generated with the same API request, see the example below.

<?xml version="1.0" encoding="UTF-8"?>
<Request>
   <Product>
      <Variation>First Variation</Variation>
      <ProductId>ABCDEF</ProductId>
      <SellerSku>ABCDEF</SellerSku>
      <Name>My Product</Name>
      <PrimaryCategory>1</PrimaryCategory>
      <Description>Some Description</Description>
      <Brand>ASM</Brand>
      <Price>11.11</Price>
      <Quantity>70</Quantity>
      <ProductData>
         <ShortDescription>Some Short Description</ShortDescription>
         <PackageType>Parcel</PackageType>
      </ProductData>
   </Product>
   <Product>
      <Variation>Second Variation</Variation>
      <ProductId>GHIJKL</ProductId>
      <ParentSku>ABCDEF</ParentSku>
      <SellerSku>GHIJKL</SellerSku>
      <Name>My Product</Name>
      <PrimaryCategory>1</PrimaryCategory>
      <Description>Some Description</Description>
      <Brand>ASM</Brand>
      <Price>22.22</Price>
      <Quantity>20</Quantity>
      <ProductData>
         <ShortDescription>Some Short Description</ShortDescription>
         <PackageType>Parcel</PackageType>
      </ProductData>
   </Product>
</Request>