ProductUpdate. Allows the update of one or more products using the SellerSku field as the key.
The API response is asynchronous and generates the creation of a Feed; always remember to check the details of a feed (see here) to review whether the product was created successfully or if there are any issues with the rejection.
The request body is XML; fields sent with empty values will not be processed and will be ignored. It is possible to update one or more products.
Minimum StructureTo perform a product update, the minimum request structure must include:
SellerSku- The
BusinessUnitsnode, which must contain at least oneBusinessUnitwith:
OperatorCodecorresponding to the country (faclfor Chile,fapefor Peru,facofor Colombia)- At least one attribute to update, such as
Price,Stock,Status, etc.To ensure an efficient integration, if you only need to update price or stock, you do not need to include additional information such as description, name, or other product attributes. It is enough to send the
SellerSku, theBusinessUnitsblock, and the specific fields to be updated.
Request Data
Recommended Batch SizeTo optimize feed usage, group your products into batches. It is recommended to send between 500 and 1,000 products per request, depending on the size and complexity of the data included.
Here are some examples of common update requests you might perform:
<?xml version="1.0" encoding="UTF-8" ?>
<Request>
<Product>
<SellerSku>Test1</SellerSku>
<ProductData />
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Stock>40</Stock>
</BusinessUnit>
</BusinessUnits>
</Product>
<Product>
<SellerSku>Test2</SellerSku>
<ProductData />
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Stock>20</Stock>
</BusinessUnit>
</BusinessUnits>
</Product>
<Product>
<SellerSku>Test3</SellerSku>
<ProductData />
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Stock>132</Stock>
</BusinessUnit>
</BusinessUnits>
</Product>
</Request><?xml version="1.0" encoding="UTF-8" ?>
<Request>
<Product>
<SellerSku>Test1</SellerSku>
<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>
</BusinessUnit>
</BusinessUnits>
</Product>
<Product>
<SellerSku>Test2</SellerSku>
<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>
</BusinessUnit>
</BusinessUnits>
</Product>
</Request><?xml version="1.0" encoding="UTF-8" ?>
<Request>
<Product>
<SellerSku>SKU-TEST-12345</SellerSku>
<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>
<BusinessUnits>
<BusinessUnit>
<OperatorCode>facl</OperatorCode>
<Stock>50</Stock>
<Price>4600</Price>
<SpecialPrice />
<Status>active</Status>
</BusinessUnit>
</BusinessUnits>
</Product>
<Product>
<SellerSku>SKU-TEST-999999</SellerSku>
<Name>PRODUCT TEST - TEST - TEST</Name>
<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>Some examples of attributes you could modify:
| Field | Type | Description | Required | Section |
|---|---|---|---|---|
| SellerSku | String | Unique identifier for the product within the system. | Yes | Product |
| Name | String | Product name displayed to the customer. | Yes | Product |
| Description | String | Product HTML description. Between 6 and 25,000 characters. | Yes | Product |
| Brand | String | Product brand. | Yes | Product |
| ProductId | Numberfield | Harmonized code (EAN, UPC, ISBN). | No | Product |
| Price | Decimal | Product price. | Yes | BusinessUnits.BusinessUnit |
| SpecialPrice | Decimal | Discounted price. Mandatory if offer dates are provided. | No | BusinessUnits.BusinessUnit |
| SpecialFromDate | DateTime | Offer start date. Format: YYYY-MM-DD HH:MM:SS. Mandatory if SpecialPrice is provided. | Conditional, only if SpecialPrice is sent | BusinessUnits.BusinessUnit |
| SpecialToDate | DateTime | Offer end date. Format: YYYY-MM-DD HH:MM:SS. Mandatory if SpecialPrice is provided. | Conditional, only if SpecialPrice is sent | BusinessUnits.BusinessUnit |
| Stock | Integer | Available stock quantity. | Yes | BusinessUnits.BusinessUnit |
| Status | String | Product status per operator: active or inactive. | Yes | BusinessUnits.BusinessUnit |
| ConditionType | String | Product condition; value depends on category, e.g., New. | Yes | ProductData |
| PackageHeight | Integer | Package height (in cm). | Yes | ProductData |
| PackageWidth | Integer | Package width (in cm). | Yes | ProductData |
| PackageLength | Integer | Package length (in cm). | Yes | ProductData |
| PackageWeight | Decimal | Package weight (in kg). | Yes | ProductData |
| TaxPercentage | String | Product tax percentage. | Conditional (Mandatory only in Colombia) | ProductData |
Request Data
Use the generated response information to retrieve more details of the Feed through another API call to FeedStatus. Check the details of the response through FeedList. Keep in mind that while making the ProductUpdate call, we only perform basic validation. Full validation will occur while processing the feed, so it may be possible that, when sending 100 product updates, only 90 of them are actually updated.
Errors
| Error Code | Message |
|---|---|
| 1000 | Could not save product: %s (Could not save the product) |
| 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 (Feed row limit exceeded. Please try to upload fewer items next time) |
Markup in Description
The product description can be plain text like this:
<Description>the description</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 this:
<Description><![CDATA[<div>the description <b>bold</b></div>]]></Description>
