# Update Product 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. Immutable Fields The following fields **cannot be changed** after product creation and must be included in update requests for identification purposes only: * `slug` - Product URL identifier * `brand` - Brand name * `item_code` - Internal item code * `template` - Product template * `primary_identifier` - Primary SKU identifier for each size * `identifiers.gtin_value` (when `primary: 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 br **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` | Common Update Scenarios * 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 ### Request Body Schema Update Best Practices * **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`, and `template` with original values for identification * **Update size variants**: Include the complete `sizes` array if modifying any size-level data * **Validate before submission**: Ensure updated values meet the same validation rules as product creation ### Success Response ### API Call Example ### Example Response ```json { "trace_id": "c7b6b1f4-0494-4d1a-a5dc-b61291274bce", "total": 1, "success": 1, "failed": 0, "status": "SUCCESS", "errors": {}, "stage": "RUNNING", "batch_id": "68eb84569055e2f2705c9818", "company_id": 17551 } ``` ### Product Updation Scenarios Update Product Pricing Update only pricing across size variants: **Request Body:** ```json { "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:** ```json { "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 Tax Configuration Change tax rule ID or HS code: **Request Body:** ```json { "products": [ { "slug": "aircoolers", "brand": "Generic", "item_code": "AIRCOOL", "tax_identifier": { "tax_rule_id": "NEW_TAX_RULE_ID_12345" }, "hs_code": "841510" } ], "template": "air-care" } ``` **Response:** ```json { "trace_id": "c7b6b1f4-0494-4d1a-a5dc-b61291274bce", "total": 1, "success": 1, "failed": 0, "status": "SUCCESS", "errors": {}, "stage": "RUNNING", "batch_id": "68eb84569055e2f2705c9818", "company_id": 17551 } ``` Add New Size Variant Add a new size to an existing product (include all existing sizes plus the new one): **Request Body:** ```json { "products": [ { "slug": "aircoolers", "brand": "Generic", "item_code": "AIRCOOL", "sizes": [ { "primary_identifier": "8904578390999", "size": "1Ton" }, { "primary_identifier": "890457830999", "size": "2Ton" }, { "primary_identifier": "890457831000", "size": "3Ton", "price": 90000, "price_effective": 85000, "item_length": 70, "item_width": 70, "item_height": 25, "item_weight": 7000, "track_inventory": true, "identifiers": [ { "gtin_value": "890457831000", "gtin_type": "SKU", "primary": true } ] } ] } ], "template": "air-care" } ``` **Response:** ```json { "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 Description & Media Update product name, description, or media: **Request Body:** ```json { "products": [ { "name": "Air Coolers - Premium Range", "slug": "aircoolers", "brand": "Generic", "item_code": "AIRCOOL", "description": "High-efficiency air cooling solutions for residential and commercial use", "short_description": "Premium air coolers with advanced features", "media": [ { "url": "https://example.com/images/cooler-front.jpg", "type": "image" }, { "url": "https://example.com/images/cooler-side.jpg", "type": "image" } ] } ], "template": "air-care" } ``` **Response:** ```json { "trace_id": "c7b6b1f4-0494-4d1a-a5dc-b61291274bce", "total": 1, "success": 1, "failed": 0, "status": "SUCCESS", "errors": {}, "stage": "RUNNING", "batch_id": "68eb84569055e2f2705c9818", "company_id": 17551 } ``` #### Fields That Can Be Updated | **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` | ### Best Practices 1. **Include immutable identifiers**: Always include `slug`, `brand`, `item_code`, and `template` with original values 2. **Update selectively**: Only include fields you want to change to minimize payload size and processing time 3. **Validate before updating**: Ensure updated values meet the same validation rules as product creation 4. **Update complete size arrays**: When modifying any size-level data, include the complete `sizes` array 5. **Track with trace_id**: Save the `trace_id` and poll the status endpoint until processing completes 6. **Handle validation errors**: Check the `errors` object for details on failed updates and resubmit after fixing 7. **Test updates incrementally**: Start with single product updates before scaling to bulk operations 8. **Preserve primary identifiers**: Never change `primary_identifier` or primary `gtin_value` for existing sizes 9. **Update pricing carefully**: Ensure `price_effective` (ESP) remains ≤ `price` (MRP) 10. **Document changes**: Maintain a change log for tracking product updates over time Next Steps * To check update processing status, see [Check Product Status](/konnect/channels/erp-wms/api-documentation/catalog/get-product-status) * To retrieve updated product data, see [Fetch Products](/konnect/channels/erp-wms/api-documentation/catalog/get-products) * To delete products or variants, see [Delete Product](/konnect/channels/erp-wms/api-documentation/catalog/delete-product) * To create new products, see [Create Product](/konnect/channels/erp-wms/api-documentation/catalog/post-create-product) * For complete catalog management workflow, see [Catalog Management Guide](/konnect/channels/erp-wms/whats-new/catalog-management)