# Create Product The Create Product API enables you to add new products to your Fynd Commerce catalog with comprehensive details including basic information, size variants, pricing, tax configurations, trader details, and category-specific attributes. Products are created asynchronously through a batch processing system, allowing you to submit up to 100 products in a single API request. Each submission returns a `trace_id` that you can use to monitor the processing status and validate successful creation. Products in Fynd Commerce follow a parent-child structure where the product serves as the parent entity containing common attributes (name, brand, category, description), while sizes/variants act as child entities with their own unique identifiers, pricing, and inventory settings. This structure enables efficient management of multi-variant products while maintaining data consistency. Prerequisites: Fetch Reference Data First Before creating products, you must retrieve valid values from the following reference APIs: * [Fetch Departments](/konnect/channels/erp-wms/api-documentation/catalog/get-departments) - Department UIDs * [Fetch Categories](/konnect/channels/erp-wms/api-documentation/catalog/get-categories) - L3 category names * [Fetch Brands](/konnect/channels/erp-wms/api-documentation/catalog/get-brands) - Brand names * [Fetch Templates](/konnect/channels/erp-wms/api-documentation/catalog/get-templates) - Template slugs * [Fetch Attributes by Product](/konnect/channels/erp-wms/api-documentation/catalog/get-attributes-by-product) - Mandatory attributes * [Fetch Tax Rule IDs](/konnect/channels/erp-wms/api-documentation/catalog/get-tax-rule-ids) - Tax rule IDs * [Fetch HS Codes](/konnect/channels/erp-wms/api-documentation/catalog/get-hs-codes) - HS/SAC codes Using invalid or mismatched values will result in validation errors and product creation failure. > **Request Type:** `POST` **Scheme:** `HTTPS` **Endpoint:** `https://{{host}}/v3/catalog/product` Try out Fynd Konnect's Create 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` | Key Features * Create up to 100 products per API request for bulk catalog uploads * Support for single or multiple size variants per product * Asynchronous processing with trace_id for status tracking * Comprehensive validation against category-specific attribute requirements * Flexible trader information for manufacturer, importer, packer, and seller details * Optional global attributes for tags, return policies, and custom configurations ### Request Body Schema Immutable Fields Once a product is created, the following fields **cannot be changed**: * `slug` - Product URL identifier * `brand` and `brand_uid` - Brand association * `item_code` - Internal item code * `template` - Product template * `identifiers.gtin_value` (when `primary: true`) - Primary SKU identifier To modify these fields, you must delete and recreate the product. ### 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 Creation Scenarios Single Product, Single Size Create a basic product with one size variant: ```json { "products": [ { "name": "Air Coolers", "slug": "aircoolers", "departments": ["5956"], "category": "Air Coolers", "brand": "Generic", "item_code": "AIRCOOL", "country_of_origin": "India", "tax_identifier": { "tax_rule_id": "68cf3ba45315901ee8d46050" }, "hs_code": "125679", "sizes": [ { "primary_identifier": "8904578390999", "size": "1Ton", "price": 50000, "price_effective": 45000, "item_length": 60, "item_width": 60, "item_height": 20, "item_weight": 1000, "track_inventory": true, "identifiers": [ { "gtin_value": "8904578390999", "gtin_type": "SKU", "primary": true } ] } ], "trader": [ { "type": "Manufacturer", "name": "Air Cooler Pvt Ltd", "address": [ "Northstar Logistics, Level 6, Unit 604, Tower B, Skyline Tech Park, Bengaluru, Karnataka 560048, India" ] } ], "attributes": {} } ], "template": "air-care" } ``` **Response:** ```json { "trace_id": "a05cb92f-7fab-42e4-9429-6454eae640fa", "total": 1, "success": 1, "failed": 0, "status": "SUCCESS", "errors": {}, "stage": "RUNNING", "batch_id": "68eb84569955e2f2705c9818", "company_id": 6900, "last_updated_on": "2025-10-12T10:35:03.059605007Z" } ``` Single Product, Multiple Sizes Create a product with multiple size variants (multi-SKU product): ```json { "products": [ { "name": "Air Coolers", "slug": "aircoolers", "departments": ["5956"], "category": "Air Coolers", "brand": "Generic", "item_code": "AIRCOOL", "country_of_origin": "India", "tax_identifier": { "tax_rule_id": "68cf3ba45315901ee8d46050" }, "hs_code": "125679", "sizes": [ { "primary_identifier": "8904578390999", "size": "1Ton", "price": 50000, "price_effective": 45000, "item_length": 60, "item_width": 60, "item_height": 20, "item_weight": 1000, "track_inventory": true, "identifiers": [ { "gtin_value": "8904578390999", "gtin_type": "SKU", "primary": true } ] }, { "primary_identifier": "890457830999", "size": "2Ton", "price": 70000, "price_effective": 65000, "item_length": 60, "item_width": 60, "item_height": 20, "item_weight": 5500, "track_inventory": true, "identifiers": [ { "gtin_value": "890457830999", "gtin_type": "SKU", "primary": true } ] } ], "trader": [ { "type": "Manufacturer", "name": "Air Cooler Pvt Ltd", "address": [ "Northstar Logistics, Level 6, Unit 604, Tower B, Skyline Tech Park, Bengaluru, Karnataka 560048, India" ] } ], "attributes": {} } ], "template": "air-care" } ``` **Response:** ```json { "trace_id": "1cdaab28-c3d4-441c-889c-4b8b3e109450", "total": 1, "success": 1, "failed": 0, "status": "SUCCESS", "errors": {}, "stage": "RUNNING", "batch_id": "68eb84569955e2f2707c9818", "company_id": 17551 } ``` Multiple Products (Bulk) Create multiple products in a single API call (up to 100 products): ```json { "products": [ { "name": "Air Coolers", "slug": "aircoolers", "departments": ["5956"], "category": "Air Coolers", "brand": "Generic", "item_code": "AIRCOOL", "country_of_origin": "India", "tax_identifier": { "tax_rule_id": "68cf3ba45315901ee8d46050" }, "hs_code": "125679", "sizes": [ { "primary_identifier": "8904578390999", "size": "1Ton", "price": 50000, "price_effective": 45000, "item_length": 60, "item_width": 60, "item_height": 20, "item_weight": 1000, "track_inventory": true, "identifiers": [ { "gtin_value": "8904578390999", "gtin_type": "SKU", "primary": true } ] } ], "trader": [ { "type": "Manufacturer", "name": "Air Cooler Pvt Ltd", "address": [ "Northstar Logistics, Level 6, Unit 604, Tower B, Bengaluru, Karnataka 560048, India" ] } ], "attributes": {} }, { "name": "Window Air Conditioner", "slug": "window-ac", "departments": ["5956"], "category": "Air Coolers", "brand": "Generic", "item_code": "WNDWAC", "country_of_origin": "India", "tax_identifier": { "tax_rule_id": "68cf3ba45315901ee8d46050" }, "hs_code": "987654", "sizes": [ { "primary_identifier": "8901234567890", "size": "1.5Ton", "price": 30000, "price_effective": 28500, "item_length": 80, "item_width": 30, "item_height": 50, "item_weight": 12000, "track_inventory": true, "identifiers": [ { "gtin_value": "8901234567890", "gtin_type": "SKU", "primary": true } ] } ], "trader": [ { "type": "Manufacturer", "name": "CoolBreeze Appliances Ltd", "address": [ "Block A, Unit 22, Global Tech Park, Whitefield Road, Bengaluru, Karnataka 560066, India" ] } ], "attributes": {} }, { "name": "Tower Fan", "slug": "tower-fan", "departments": ["5956"], "category": "Air Coolers", "brand": "Generic", "item_code": "TWRFAN", "country_of_origin": "India", "tax_identifier": { "tax_rule_id": "68cf3ba45315901ee8d46050" }, "hs_code": "456789", "sizes": [ { "primary_identifier": "8909876543210", "size": "Standard", "price": 8000, "price_effective": 7500, "item_length": 30, "item_width": 30, "item_height": 120, "item_weight": 5000, "track_inventory": true, "identifiers": [ { "gtin_value": "8909876543210", "gtin_type": "SKU", "primary": true } ] } ], "trader": [ { "type": "Manufacturer", "name": "BreezeMax Pvt Ltd", "address": [ "Plot 55, Phase 2, Industrial Area, Peenya, Bengaluru, Karnataka 560058, India" ] } ], "attributes": {} } ], "template": "air-care" } ``` **Response:** ```json { "trace_id": "d9b10781-75d2-4cff-bd72-8e1d5aa376c2", "total": 3, "success": 3, "failed": 0, "status": "SUCCESS", "errors": {}, "stage": "RUNNING", "batch_id": "68eb84569955e2f2705c9818", "company_id": 6900, "last_updated_on": "2025-10-12T10:35:03.059605007Z" } ``` ### Category-Specific Attributes Attributes vary by L3 category. Use [Fetch Attributes by Product](/konnect/channels/erp-wms/api-documentation/catalog/get-attributes-by-product) to retrieve: * **Mandatory attributes**: Must be provided with valid values * **Optional attributes**: Can be included if available * **Validation rules**: Data types, allowed values, ranges Attribute Validation If mandatory attributes are missing or contain invalid values, the product creation will fail with a validation error. Always fetch and validate attributes before submission. ## Best Practices 1. **Validate reference data first**: Always fetch and validate departments, categories, brands, templates, tax rules, and HS codes before creating products 2. **Check mandatory attributes**: Use Fetch Attributes by Product to identify required fields for your target category 3. **Use unique slugs**: Combine product name with a unique identifier (e.g., timestamp or random string) to ensure uniqueness 4. **Batch intelligently**: Group up to 100 products per request for efficient bulk uploads, but start with smaller batches for testing 5. **Track with trace_id**: Save the `trace_id` and poll the status endpoint until `stage: COMPLETED` or `stage: FAILED` 6. **Handle partial failures**: Check the `errors` object for validation details on failed products and resubmit after fixing issues 7. **Validate pricing**: Ensure `price_effective` (ESP) ≤ `price` (MRP) to avoid validation errors 8. **Use primary identifiers**: Always set `primary: true` for the main SKU identifier in the identifiers array 9. **Include trader information**: Provide at least one trader (Manufacturer, Importer, Packer, or Seller) with complete address details 10. **Test with single products**: Validate your payload with one product before scaling to bulk uploads Next Steps * To check product creation status, see [Check Product Status](/konnect/channels/erp-wms/api-documentation/catalog/get-product-status) * To update existing products, see [Update Product](/konnect/channels/erp-wms/api-documentation/catalog/put-update-product) * To retrieve created products, 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) * For complete catalog management workflow, see [Catalog Management Guide](/konnect/channels/erp-wms/whats-new/catalog-management)