Create one or multiple new products.

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.

This call creates a feed, which is then 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>100.00</Price>
    <SalePrice>32.5</SalePrice>
    <SaleStartDate>2013-09-03T11:31:23+00:00</SaleStartDate>
    <SaleEndDate>2013-10-03T11:31:23+00:00</SaleEndDate>
    <ShipmentType>dropshipping</ShipmentType>
    <ProductId>xyzabc</ProductId>
    <ProductData>
      <ConditionType>Nuevo</ConditionType>
      <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:

TagTypeDescription
SellerSkuStringA unique identifier for the product within the Seller Center 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
ParentSkuStringThe unique identifier of a product with which this product should be associated.

[Free nomenclature ParentSku feature enabled] If ParentSku is provided than it will pick the defined ParentSku otherwise it will use SellerSku of the first variation. Optional
StatusStringOne of the following values: 'active', 'inactive' or 'deleted'. Optional, defaults to 'active'.
NameStringThe name of the product as shown to the end-user. Mandatory. Must be between 2 to 255 characters.
VariationStringIf 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').
PrimaryCategoryIntegerThe ID of the primary category for his product. To get the ID for each of the system's categories call GetCategoryTree. Mandatory
CategoriesStringA 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
BrowseNodesStringA comma-separated list of one or two additional categories that are not necessarily related to the PrimaryCategory. Optional
DescriptionStringThe 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
BrandStringThe brand name of the product. Mandatory
PriceDecimalThe product's price. Not really a Double, but a Decimal. Mandatory
SalePriceDecimalThe price for the product while it is on sale neeeds to be lower then the Price. 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.
SaleStartDateDateTimeTime and date for when the product goes on sale. If passed in, SalePrice becomes mandatory.
SaleEndDateDateTimeTime and date for when the product goes on sale. If passed in, SalePrice becomes mandatory.
TaxClassStringThe taxation class the product belongs to. The available tax classes are dependent on the specific installation the call is executed against. Optional
ShipmentTypeStringIndicates 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
ProductIdStringA 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
ConditionTypeStringIndicates whether the product is new or used. One of 'Nuevo', or 'Reacondicionado'. Optional
ProductDataSubsectionAdditional product attributes, depends on the primary category. Optional
QuantityIntegerThe current level of inventory for this product. Optional
VolumetricWeightNumber DECIMAL(10,2)
ProductGroupStringThe 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 codeMessage
1000Could not save product: %s
1000Format 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 a ParentSku is passed, a new variation to an existing product is created.

[Free nomenclature ParentSku feature enabled] If no ParentSku is given, a new product will be created based on the SellerSKU. If ParentSku is given and is different than an existing ParentSku than a new product will be 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>
Language