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.
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>
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 |
Categories | String | A comma-separated list of one of the three subcategories to which the product belongs. Optional |
BrowseNodes | String | A comma-separated list of one or two additional categories that are not necessarily related to PrimaryCategory. 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. |
TaxClass | String | The tax class to which the product belongs. Available tax classes depend on the specific installation against which the call is made. Optional |
ShipmentType | String | Indicates whether the product is shipped directly upon receipt ('crossdocking') or sent directly ('dropshipping'). Allowed shipment types depend on what's configured 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 "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 |
VolumetricWeight | Number DECIMAL(10,2) | |
ProductGroup | String | The name of the group |
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>