Update Product SKUs in Bulk(v2)

Create or update a list of product SKUs.

This API allows you to update product SKUs in bulk. You can update up to 100 SKUs per request. The SKU code serves as the identifier and cannot be changed. EAN codes are also immutable and cannot be updated.

Field Editability

FieldEditable?
sku
ean
ouCode
price
description
longDescription
brandCode
categoryCode
imageUrl
returnable
returnableDays
attributes

Example request

curl --location --request PUT 'https://{Host}/v2/product/skus' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic bmVlcmFqa3Jpc2huYTpkY2VhNmU2U0M2JhODdkMTFkMTM2ODI2NmMxOQ==' \
--data '[
    {
        "sku": "Colour",
        
        "price": "100",
        "ouCode": "krishna.ou1",
        "description": "tesht sku",
        "longDescription": "detailed description",
        "brandCode": "Airpods",
        "categoryCode": "Apparel",
        "attributes": [
            {
                "code": "producttype",
                "value": "plastic"
            }
        ],
        "returnable": "true",
        "returnableDays": "2",
        "imageUrl": "http://newimage.com/abc.png"
    }
]
'
curl --location --request PUT 'https://nightly.intouch.capillarytech.com/v2/product/skus' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic bmVlcmFqa3Jpc2huYTpkY2VhNmU1ODlhM2U0M2JhODdkMTFkMTM2ODI2NmMxOQ==' \
--data '[
    {
        "sku": "SKU-1",
        "ean": "EAN-1",
        "price": "100",
        "ouCode": "krishna.ou1",
        "description": "tesht sku",
        "longDescription": "detailed description",
        "brandCode": "Airpods",
        
        "attributes": [
            {
                "code": "producttype12",
                "value": "producttypecode1"
            }
        ],
        "returnable": "true",
        "returnableDays": "2",
        "imageUrl": "http://newimage.com/abc.png"
    },
    {
        "sku": "shirt-1",
        "ean": "EAN-1",
        "price": "100",
        "ouCode": "krishna.ou1",
        "description": "tesht sku",
        "longDescription": "detailhed description",
        "brandCode": "Airpods",
        
        "attributes": [
            {
                "code": "producttype12",
                "value": "producttypecode1"
            }
        ],
        "returnable": "true",
        "returnableDays": "2",
        "imageUrl": "http://newimage.com/abc.png"
    }
]
'

Prerequisites

To enable OU support for product entities, you must create a JIRA ticket and enable the configCONF_OU_LEVEL_PRODUCTS_ENABLED. For more information, see Configuring Organisation Unit (OU) support for product entities.

Body parameters

FieldTypeRequiredDescriptionUpdate Support
skustringYesDefines the unique identifier for the product article (e.g., "TSHIRT-RED-001"). This field is mandatory and cannot be changed once created, and limited to 50 characters.No
ouCodestringOptionalSpecifies the concept code of the organisation unit. This is applicable only if OU support for product inventory is enabled. For more information, see OU support for product inventory.No
pricedecimalOptionalIndicates the monetary value or cost assigned to the SKU. Must be a positive value or zero; if not provided, the system defaults it to 0 and issues a warning.Yes
descriptionstringOptionalDefines a short text summary for the item (e.g., "Men's Cotton Polo Shirt"). This is an optional field typically limited to 100 characters.Yes
longDescriptionstringOptionalSpecifies comprehensive details about the SKU, such as materials or care instructions. There is no strict character limit.Yes
imageUrlstringOptionalIndicates the web address for the product's image asset. - Must be a valid URL supporting formats like JPG, JPEG, and PNG (EXE or PDF are rejected).Yes
returnablebooleanOptionalDefines whether the product is eligible for return according to company policy. Defaults to the standard organizational policy if not explicitly passed.Yes
returnableDaysintegerOptionalSpecifies the duration of the window during which a customer can return the item. - Defaults to -1 where the customer can return it on any further day. - Cannot be any value less than -1.Yes
brandCodestringOptionalDefines the identifier for the brand associated with the product. The brand must be pre-created via Add product API; the SKU creation will fail if the code is invalid or non-existent.Yes
categoryCodestringOptionalSpecifies the classification code for hierarchical product grouping (e.g., "Electronics > Audio"). The category must already exist in the system.Yes
attributesarrayOptionalIndicates an array of custom key-value pairs used for additional product specifications. attributes must be already created via Add attribute API in the specific org.Yes
..codestringConditionalDefines the unique identifier for a specific custom attribute. - Required if the attributes array is used. - Max 50 characters.Yes
..valuestringConditionalSpecifies the actual data assigned to the attribute code, required if attributes are used, and must be a valid, pre-existing value associated with that attribute code.Yes
eanstringOptionalSpecifies the European Article Number, acting as a unique barcode identifier. It is mandatory, must be unique across the request, and cannot be updated via PUT requests.No

API Quick Reference

{{host_v2_product_skus_put}}
   └─ {{RequestBody}} (Batch Array)
      ├─ {{sku}} (string)
      ├─ {{ean}} (string)
      ├─ {{price}} (decimal)
      ├─ {{description}} (string)
      ├─ {{longDescription}} (string)
      ├─ {{ouCode}} (string)
      ├─ {{brandCode}} (string)
      ├─ {{categoryCode}} (string)
      ├─ {{imageUrl}} (string)
      ├─ {{returnable}} (boolean)
      ├─ {{returnableDays}} (integer)
      ├─ {{attributes}} []
      │   ├─ {{attributeCode}} (string)
      │   └─ {{attributeValue}} (string)
      └─ {{ResponseBody}}
          ├─ {{updated}} []
          │   ├─ {{responseId}} (integer)
          │   ├─ {{responseCode}} (string)
          │   ├─ {{responseOuCode}} (string)
          │   └─ {{responseOuId}} (integer)
          ├─ {{summary}}
          │   ├─ {{totalRequested}} (integer)
          │   ├─ {{successCount}} (integer)
          │   └─ {{failureCount}} (integer)
          ├─ {{warnings}} []
          └─ {{errors}} []
              ├─ {{errorCode}} (integer)
              ├─ {{errorMessage}} (string)
              └─ {{errorIdentifiers}} (object)

Example response

{
    "updated": [
        {
            "ouCode": "krishna.ou1",
            "id": 32510109,
            "ouId": 50025951,
            "code": "1212jo12212"
        },
        {
            "ouCode": "krishna.ou1",
            "id": 32510514,
            "ouId": 50025951,
            "code": "shirt"
        }
    ],
    "summary": {
        "totalRequested": 2,
        "successCount": 2,
        "failureCount": 0
    },
    "warnings": [],
    "errors": []
}

Response parameters

FieldTypeDescription
updatedarrayContains the list of successfully updated ProductSKU objects.
..idlongIndicates the unique identifier for the SKU.
..ouIdlongIndicates the Organization unit ID. Returns -1 for organization-level SKUs.
..codestringSpecifies the SKU code.
summaryobjectProvides summary statistics for the bulk operation.
..totalRequestedintegerIndicates the total number of SKUs in the request.
..successCountintegerIndicates the number of SKUs successfully updated.
..failureCountintegerIndicates the number of SKUs that failed validation.
warningsarrayLists warning status codes for non-blocking issues.
errorsarrayLists error status codes for SKUs that failed validation.
..codeintegerIndicates the specific error code.
..messagestringDescribes the error message.
..identifiersobjectSpecifies the SKU identifiers related to the error.

Error codes

CodeDescription
9175Indicates that the batch size cannot exceed 100 SKUs.
9176Indicates that the batch cannot be empty.
9223Indicates that the SKU with the provided code was not found.
9222Indicates that the EAN cannot be updated as the field is immutable.
9207Indicates that the price is invalid and must be a positive value.
9217Indicates that the image URL exceeds the maximum allowed length.
9221Indicates that the brand with the provided code was not found.
9220Indicates that the category with the provided code was not found.
9218Indicates that the attribute with the provided code was not found.
9210Indicates that the image URL format is invalid.
Language
Credentials
Basic
base64
:
URL
Click Try It! to start a request and see the response here!