The Update Product API enables you to modify existing product details in your Fynd Commerce catalog, including name, description, media, pricing, tax configurations, trader information, and category-specific attributes. Updates are processed asynchronously, allowing you to modify multiple products in a single API request. Each update submission returns a trace_id for monitoring processing status.
Product updates in Fynd Commerce are selective -- you only need to include the fields you want to modify along with the mandatory immutable identifiers. This approach minimizes payload size and reduces the risk of unintended changes to other product attributes.
The following fields cannot be changed after product creation and must be included in update requests for identification purposes only:
slug- Product URL identifierbrand- Brand nameitem_code- Internal item codetemplate- Product templateprimary_identifier- Primary SKU identifier for each sizeidentifiers.gtin_value(whenprimary: true) - Primary GTIN value
Attempting to modify these fields will result in validation errors. To change immutable fields, you must first delete and recreate that product
Request Type:
PUT
Scheme:HTTPS
Endpoint:https://{{host}}/v3/catalog/product
Try out Fynd Konnect's Update Product Endpoint
Common Request Headers
| Header | Mandatory | Description |
|---|---|---|
x-access-token | Yes | Access token used for authenticating API requests to Fynd Konnect |
Content-Type | Yes | application/json |
- Update product pricing (MRP and ESP) across size variants
- Modify product name, description, or media assets
- Change tax rule ID or HS code for compliance updates
- Update trader information (manufacturer, importer details)
- Adjust product dimensions and weight specifications
- Modify category-specific attributes
- Update global attributes (tags, return config, custom order settings)
- Add new size variants to existing products
Array of products to update
Product type
Product name
Department UIDs from Fetch Departments
L3 category name from Fetch Categories
Country where the product is manufactured
Tax rule ID obtained from Fetch Tax Rule IDs
HS/SAC code from Fetch HS Code (4, 6, or 8 digits long)
Array of product sizes/variants
Primary identifier for this size variant
Size value of the variant
Original (base) price
Effective/selling price
Item length in centimeters
Item width in centimeters
Item height in centimeters
Item weight in grams
Whether inventory tracking is enabled for this variant
List of additional identifiers for this size
Trader information (manufacturer, importer, etc.)
Category-specific attributes to update
Detailed product description
Brief summary shown in listings
Product images and videos
Number of boxes used for packaging
Key product highlights
Product tags or keywords
Whether the product depends on another product
Template slug (immutable at product level)
- Include only changed fields: Only pass fields you want to modify along with mandatory immutable identifiers
- Maintain JSON structure: Keep the same object structure as product creation
- Preserve immutable fields: Include
slug,brand,item_code, andtemplatewith original values for identification - Update size variants: Include the complete
sizesarray if modifying any size-level data - Validate before submission: Ensure updated values meet the same validation rules as product creation
Unique identifier for tracking the batch processing status. Use this with the Check Product Status endpoint
Total number of products submitted for update in the request
Number of products accepted for processing (passed initial validation)
Number of products rejected due to validation errors
High-level status: SUCCESS (all accepted), PARTIAL (some failed), FAILED (all rejected)
Object containing validation error details for failed products (indexed by product position)
Processing stage: RUNNING (being processed), COMPLETED (finished), FAILED (stopped with errors)
Internal batch identifier for the processing job
Your company identifier in Fynd Commerce
- Fynd Konnect [Sandbox]https://fyndkonnect.konnect.uat.fyndx1.de/v3/catalog/product
curl -i -X PUT \
https://fyndkonnect.konnect.uat.fyndx1.de/v3/catalog/product \
-H 'Content-Type: application/json' \
-H 'x-access-token: YOUR_API_KEY_HERE' \
-d '{
"products": [
{
"item_type": "standard",
"name": "string",
"departments": [
"string"
],
"category": "string",
"country_of_origin": "string",
"tax_identifier": {
"tax_rule_id": "string"
},
"hs_code": "string",
"sizes": [
{
"primary_identifier": "string",
"size": "string",
"price": 0,
"price_effective": 0,
"item_length": 0,
"item_width": 0,
"item_height": 0,
"item_weight": 0,
"track_inventory": true,
"identifiers": [
{
"gtin_value": "string",
"gtin_type": "SKU",
"primary": true
}
]
}
],
"trader": [
{
"type": "Manufacturer",
"name": "string",
"address": [
"string"
]
}
],
"attributes": {},
"description": "string",
"short_description": "string",
"media": [
{
"url": "http://example.com",
"type": "image"
}
],
"net_quantity": {
"unit": "kg",
"value": 0
},
"no_of_boxes": 0,
"highlights": [
"string"
],
"product_publish": {
"product_online_date": "2019-08-24T14:15:22Z",
"is_set": true
},
"tags": [
"string"
],
"return_config": {
"returnable": "Yes",
"time": 0,
"unit": "days"
},
"custom_order": {
"is_custom_order": "Yes",
"manufacturing_time": 0,
"manufacturing_time_unit": "days"
},
"is_dependent": "Yes"
}
],
"template": "string"
}'{
"trace_id": "c7b6b1f4-0494-4d1a-a5dc-b61291274bce",
"total": 1,
"success": 1,
"failed": 0,
"status": "SUCCESS",
"errors": {},
"stage": "RUNNING",
"batch_id": "68eb84569055e2f2705c9818",
"company_id": 17551
}Update only pricing across size variants:
Request Body:
{
"products": [
{
"slug": "aircoolers",
"brand": "Generic",
"item_code": "AIRCOOL",
"sizes": [
{
"primary_identifier": "8904578390999",
"price": 52000,
"price_effective": 47000
},
{
"primary_identifier": "890457830999",
"price": 72000,
"price_effective": 67000
}
]
}
],
"template": "air-care"
}Response:
{
"trace_id": "c7b6b1f4-0494-4d1a-a5dc-b61291274bce",
"total": 1,
"success": 1,
"failed": 0,
"status": "SUCCESS",
"errors": {},
"stage": "RUNNING",
"batch_id": "68eb84569055e2f2705c9818",
"company_id": 17551
}| Category | Updatable Fields |
|---|---|
| Basic Information | name, description, short_description, highlights, media |
| Classification | departments, category, country_of_origin |
| Tax & Compliance | tax_identifier.tax_rule_id, hs_code |
| Pricing & Inventory | sizes[].price, sizes[].price_effective, sizes[].track_inventory |
| Dimensions | sizes[].item_length, sizes[].item_width, sizes[].item_height, sizes[].item_weight |
| Trader Information | trader[].type, trader[].name, trader[].address |
| Attributes | attributes.* (category-specific attributes) |
| Global Attributes | product_publish, tags, return_config, custom_order |
| Package Details | net_quantity, no_of_boxes |
- Include immutable identifiers: Always include
slug,brand,item_code, andtemplatewith original values - Update selectively: Only include fields you want to change to minimize payload size and processing time
- Validate before updating: Ensure updated values meet the same validation rules as product creation
- Update complete size arrays: When modifying any size-level data, include the complete
sizesarray - Track with trace_id: Save the
trace_idand poll the status endpoint until processing completes - Handle validation errors: Check the
errorsobject for details on failed updates and resubmit after fixing - Test updates incrementally: Start with single product updates before scaling to bulk operations
- Preserve primary identifiers: Never change
primary_identifieror primarygtin_valuefor existing sizes - Update pricing carefully: Ensure
price_effective(ESP) remains ≤price(MRP) - Document changes: Maintain a change log for tracking product updates over time
- To check update processing status, see Check Product Status
- To retrieve updated product data, see Fetch Products
- To delete products or variants, see Delete Product
- To create new products, see Create Product
- For complete catalog management workflow, see Catalog Management Guide