Update the attributes of one or more existing 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.
The Request encloses one or more Product sections, each of which allows for the same attributes to be set as ProductCreate, although in comparison, the SellerSku is the only field required for ProductUpdate.
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>SKU-TEST-12345</SellerSku>
<ShortDescription>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</ShortDescription>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Stock>50</Stock>
<Status>active</Status>
</BusinessUnit>
</BusinessUnits>
</Product>
<Product>
<SellerSku>SKU-TEST-999999</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<ParentSku/>
<Description>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</Description>
<Color>Verde</Color>
<ColorBasico>Rojo</ColorBasico>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Price>59990</Price>
<SpecialPrice>35990</SpecialPrice>
<SpecialFromDate>2023-05-26 00:00:00</SpecialFromDate>
<SpecialToDate>2023-10-31 23:59:59</SpecialToDate>
<Stock>40</Stock>
<Status>inactive</Status>
</BusinessUnit>
</BusinessUnits>
<ProductData>
<ConditionType>Nuevo</ConditionType>
<PackageHeight>11</PackageHeight>
<PackageWidth>11</PackageWidth>
<PackageLength>11</PackageLength>
<PackageWeight>4</PackageWeight>
</ProductData>
</Product>
</Request>
The XML tags have the following meaning:
Tag | Type | Description |
---|---|---|
SellerSku | String | The unique identifier for the product that is to be modified. Mandatory |
Status | String | One of the following values: 'active', 'inactive' or 'deleted'. Optional |
Name | String | The name of the product as shown to the end-user. Optional. 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'). Optional |
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. Optional |
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). Optional |
Brand | String | The brand name of the product. Optional |
BusinessUnits | Subsection | Product Operator code and status, pricing, stock details, with each BusinessUnit and its details declared separately. Optional if not updating product pricing, stock or status |
OperatorCode | String | Operator code for the product such as, for example: FACL: Chile FAPE: Peru FACO: Colombia 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. Optional |
SpecialPrice | Decimal | The (hopefully reduced) price for the product while it is on sale. If SpecialPrice is specified, either SpecialFromDate or SpecialToDate must be given; vice versa, if at least one of SpecialFromDate or SpecialToDate is specified, SpecialPrice is mandatory. |
SpecialFromDate | DateTime | Time and date for when the product goes on sale. If passed in, SpecialPrice becomes mandatory if not already set. |
SpecialToDate | DateTime | Time and date for when the sale of the product ends. If passed in, SpecialPrice becomes mandatory if not already set. |
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 harmonzied 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 |
Stock | 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 ProductUpdate 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 product updates but only 90 of them get actually updated.
Errors
Error code | Message |
---|---|
1000 | Could not save product: %s |
1000 | Format Error Detected |
8888 | Feed rows exceeded, max size allowed is %d and you uploaded %d items. Please next time try to upload less items |
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>