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, as in the following example, where ParentSku will be ignored even if it has been declared. It is possible to update one or more products.
Minimum Structure
To perform a product update, the minimum request structure must include:
SellerSku
- The
BusinessUnits
node, which must contain at least oneBusinessUnit
with:
OperatorCode
corresponding to the country (facl
for Chile,fape
for Peru,faco
for 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
, theBusinessUnits
block, and the specific fields to be updated.
Request Data
Recommended Batch Size
To 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.
<?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>
<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>
The XML tags have the following meanings:
Tag | Type | Description |
---|---|---|
SellerSku | String | The unique identifier of the product to be modified. Mandatory |
Status | String | One of the following values: 'active', 'inactive', or 'deleted'. Optional |
Name | String | The name of the product displayed to the end user. Optional. Must be between 2 and 255 characters. |
Variation | String | If a product is available in multiple variations (e.g., colors or sizes), this is the variation value. Optional. |
Color | String | Indicates the primary color of the product. |
ColorBasico | String | Indicates the primary color of the product. If it doesn't have one, select the multicolor option. |
Size | String | Indicates the size of the product. |
PrimaryCategory | Integer | The ID of the primary category of your product. To obtain the ID of each category in the system, call GetCategoryTree. Optional |
Description | String | The product description as shown to the end user. 6 to 25000 characters. Certain HTML tags are allowed but must be escaped (see below). Mandatory |
Brand | String | The brand of the product. Optional |
BusinessUnits | Subsection | Operator of the product code and status, prices, stock details, with each BusinessUnit and its details declared separately. Optional if not updating the product's price, stock, or status. |
OperatorCode | String | Operator code for the product, e.g., FACL: Chile, FAPE: Peru, FACO: Colombia. It will always be 'FA' followed by the country code. |
Status | String | Product status with that operator. One of 'active', 'inactive', or 'deleted'. Default value is 'active'. |
Price | Decimal | The price of the product. Optional |
SpecialPrice | Decimal | The (hopefully reduced) price of the product while on sale. If SpecialPrice is specified, SpecialFromDate or SpecialToDate must be specified. |
SpecialFromDate | DateTime | The date and time the product goes on sale. If transferred, SpecialPrice becomes mandatory if it hasn't been set yet. |
SpecialToDate | DateTime | The date and time the product sale ends. If transferred, SpecialPrice becomes mandatory if it hasn't been set yet. |
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 "new", "used", or "refurbished". Optional |
ProductData | Subsection | Additional product attributes, depending on the primary category. Optional |
Stock | Integer | The current inventory level of this product. Optional |
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>