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/>
    <Name>Magic Product</Name>
    <PrimaryCategory>4</PrimaryCategory>
    <Categories>2,3,5</Categories>
    <Description></Description>
    <Brand>ASM</Brand>
    <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>
    <Variation>64GB</Variation>
    <BusinessUnits> 
        <BusinessUnit>
            <OperatorCode>facl</OperatorCode>
            <Price>999.00</Price>
            <SpecialPrice/>
            <SpecialFromDate/>
            <SpecialToDate/>
            <Stock>10</Stock>
            <Status>active</Status>
        </BusinessUnit>
    </BusinessUnits>
  </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>
   <BusinessUnits> 
        <BusinessUnit>
            <OperatorCode>facl</OperatorCode>
            <Price>979.00</Price>
            <SpecialPrice/>
            <SpecialFromDate/>
            <SpecialToDate/>
            <Stock>10</Stock>
            <Status>active</Status>
        </BusinessUnit>
    </BusinessUnits>
  </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>
   <BusinessUnits> 
        <BusinessUnit>
            <OperatorCode>facl</OperatorCode>
            <Price>980.00</Price>
            <SpecialPrice/>
            <SpecialFromDate/>
            <SpecialToDate/>
            <Stock>10</Stock>
            <Status>active</Status>
        </BusinessUnit>
    </BusinessUnits>
  </Product>
</Request>

The XML tags have the following meaning:

Tag

Type

Description

SellerSku

String

A 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

ParentSku

String

The 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

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').

Color

String

Indicates the main color of the product.
*Exclusive for fashion/footwear categories

ColorBasico

String

Indicates the main color of the product. If you don't have one, select the multicolor option.
*Exclusive for fashion/footwear categories

Talla

String

Indicate the size of the product
*Exclusive for fashion/footwear categories

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

BusinessUnits

Subsection

Product Operator code and status, pricing, stock details, with each BusinessUnit and its details declared separately.

OperatorCode

String

Operator code for the product such as FACL for Chile, FAPE for Peru, etc.
It will always be FA followed by country code.

Status

String

Status of the product in that operator.

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

Price

Decimal

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

SalePrice

Decimal

The 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.

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. Optional

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 'Nuevo', or 'Reacondicionado'. 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)

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 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