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>TEST-SKU-12345</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<Variation>L</Variation>
<Status>active</Status>
<ParentSku/>
<PrimaryCategory>13825</PrimaryCategory>
<Categories>2,3,5</Categories>
<Description><![CDATA[<div>la descripción <b>negrita</b></div>]]></Description>
<Brand>Under Armour</Brand>
<Price>139950</Price>
<ProductId>9003324</ProductId>
<TaxClass>IVA 19%</TaxClass>
<Quantity>10</Quantity>
<ProductData>
<ShortDescription>TEST TEST TEST TEST</ShortDescription>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>1</PackageHeight>
<PackageWidth>1</PackageWidth>
<PackageLength>1</PackageLength>
<PackageWeight>2</PackageWeight>
<ProductWeight>2</ProductWeight>
<ProductMeasures>1 x 1 x 1</ProductMeasures>
</ProductData>
</Product>
</Request>
<?xml version="1.0" encoding="UTF-8" ?>
<Request>
<Product>
<SellerSku>TEST-SKU-12345</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<Variation>L</Variation>
<Status>active</Status>
<PrimaryCategory>13825</PrimaryCategory>
<Categories>2,3,5</Categories>
<Description>UA H Tank - Twist Camiseta Manga Sisa morado de mujer para entrenamiento</Description>
<Brand>Under Armour</Brand>
<Price>139950</Price>
<ProductId>9003324</ProductId>
<TaxClass>IVA 19%</TaxClass>
<Quantity>10</Quantity>
<ProductData>
<ShortDescription>TEST TEST TEST TEST</ShortDescription>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>1</PackageHeight>
<PackageWidth>1</PackageWidth>
<PackageLength>1</PackageLength>
<PackageWeight>2</PackageWeight>
<ProductWeight>2</ProductWeight>
<ProductMeasures>1 x 1 x 1</ProductMeasures>
</ProductData>
</Product>
<Product>
<SellerSku>TEST-SKU-1066859</SellerSku>
<Name>TEST - TEST - TEST PRODUCT</Name>
<Variation>L</Variation>
<Status>active</Status>
<PrimaryCategory>12728</PrimaryCategory>
<Categories>2,3,5</Categories>
<Description>UA H Ssv - Twist Camiseta Manga Corta amarillo de mujer para entrenamiento</Description>
<Brand>Under Armour</Brand>
<Price>149950</Price>
<ProductId>32403324</ProductId>
<TaxClass>IVA 19%</TaxClass>
<Quantity>10</Quantity>
<ProductData>
<ShortDescription>TEST TEST TEST TEST</ShortDescription>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>1</PackageHeight>
<PackageWidth>1</PackageWidth>
<PackageLength>1</PackageLength>
<PackageWeight>2</PackageWeight>
<ProductWeight>2</ProductWeight>
<ProductMeasures>1 x 1 x 1</ProductMeasures>
</ProductData>
</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'). |
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 |
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 |
ConditionType | 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[<div>la descripción <b>negrita</b></div>]]></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>
<SellerSku>TEST-SKU-1066859</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<Variation>XXL</Variation>
<Status>active</Status>
<PrimaryCategory>13825</PrimaryCategory>
<Categories>2,3,5</Categories>
<Description>UA H Tank - Twist Camiseta Manga Sisa morado de mujer para entrenamiento</Description>
<Brand>Under Armour</Brand>
<Price>139950</Price>
<ProductId>8803324</ProductId>
<TaxClass>IVA 19%</TaxClass>
<Quantity>10</Quantity>
<ProductData>
<ShortDescription>TEST TEST TEST TEST</ShortDescription>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>1</PackageHeight>
<PackageWidth>1</PackageWidth>
<PackageLength>1</PackageLength>
<PackageWeight>2</PackageWeight>
<ProductWeight>2</ProductWeight>
<ProductMeasures>1 x 1 x 1</ProductMeasures>
</ProductData>
</Product>
<Product>
<SellerSku>TEST-SKU-678799999</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<ParentSku>TEST-SKU-1066859</ParentSku>
<Variation>M</Variation>
<Status>active</Status>
<PrimaryCategory>13825</PrimaryCategory>
<Categories>2,3,5</Categories>
<Description>UA H Tank - Twist Camiseta Manga Sisa ROJA de mujer</Description>
<Brand>Under Armour</Brand>
<Price>139950</Price>
<ProductId>8803324</ProductId>
<TaxClass>IVA 19%</TaxClass>
<Quantity>10</Quantity>
<ProductData>
<ShortDescription>TEST TEST TEST TEST</ShortDescription>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>1</PackageHeight>
<PackageWidth>1</PackageWidth>
<PackageLength>1</PackageLength>
<PackageWeight>2</PackageWeight>
<ProductWeight>2</ProductWeight>
<ProductMeasures>1 x 1 x 1</ProductMeasures>
</ProductData>
</Product>
</Request>