Skip to main content

Item Sync

Use this API to create or update product master data from Excel. The payload is hierarchical: item, then SKU variants, then selling units for each SKU.

At A Glance

PUT/v2/items/sync-data
AreaDetail
PurposeSync items, SKUs, and selling units.
Content typeapplication/json
Authenticationx-api-key request header
Request bodyArray of item objects
Item grouping keyExcel No
SKU grouping keyUnique Size + Colour_Name combination

Headers

Content-Type: application/json
x-api-key: YOUR_API_KEY

Request Body

The endpoint expects an array. Each item may contain multiple SKUs, and each SKU may contain multiple selling units.

Request body
[
{
"itemName": "Sample Item 1004",
"brandName": "Sample Brand",
"categoryName": "Sample Category",
"subCategoryName": "Sample Subcategory",
"syncId": "ITEM-1001",
"skus": []
}
]

Item Mapping

API fieldExcel sourceRule
itemNameArticle NameProduct display name.
descriptionDescriptionProduct description.
brandNameBrandBrand name.
categoryNameSegment / Master CategoryProduct category.
subCategoryNameGenderProduct sub-category.
syncIdNoUnique item identifier.
itemImageSourceImage sourceGoogle Drive or another source.
itemImageLinkPublic image linkArray of image links when available.

SKU Mapping

API fieldExcel sourceRule
skuNameVariant Description / SKUFull SKU name.
skuNickNameDerivedItem name + item code + colour code.
sellerSKUNo + CodeSeller SKU.
tagsTBDOptional tags.
productCodeNo + CodeProduct code.
barCodeTBDOptional barcode.
hsnCodeHSNSACCodeHSN code.
gstGSTGroupCodeGST percentage.
variantType1StaticSize.
variantValue1SizeFirst variant value.
variantType2StaticColour_Name.
variantValue2Colour_NameSecond variant value.
syncIdNo + CodeUnique SKU identifier.
skuImageSourceImage sourceGoogle Drive or another source.
skuImageLinkPublic image linkArray of image links when available.

Up to 10 variant type/value pairs are allowed.

Selling Unit Mapping

API fieldExcel sourceRule
nameBaseUnitofMeasure or static valueUnit name, usually PAIR or CTN.
multiplierAlternate_UOM_Per_QuantityUnit multiplier.
mrpMRPMaximum retail price.
sellingPricePrice_Per_PairSelling price.
availableQuantityTBDAvailable stock if provided.
isBaseUnitStatictrue for PAIR, false for CTN.
isDefaultStatictrue for PAIR.
includeGSTStaticAlways true.
syncIdNo + CodeRequired for non-base unit.
isActiveStaticfalse for PAIR, true for CTN.

Processing Rules

  1. Group all Excel rows with the same No into one item.
  2. For each item, create SKUs from unique Size + Colour_Name combinations.
  3. Generate skuNickName from item name, item code, and colour code.
  4. Create a base PAIR selling unit for each SKU.
  5. Create an alternate CTN selling unit when carton data is present.
  6. If CTN MRP is blank, calculate it as base MRP multiplied by the CTN multiplier.
  7. If CTN selling price is blank, calculate it as base price multiplied by the CTN multiplier.
  8. Keep tags and barCode empty or null when no source value exists.

Normalized Final Payload

Normalized final payload
[
{
"itemName": "Sample Item 1004",
"description": "Sample Item 1004",
"brandName": "Sample Brand",
"categoryName": "Sample Category",
"subCategoryName": "Sample Subcategory",
"itemImageSource": "OTHERS",
"itemImageLink": ["link"],
"syncId": "ITEM-1001",
"skus": [
{
"skuName": "Sample Item 1004 Sample Color 05",
"skuNickName": "Sample Item 1004 ITEM-1001 CLR",
"sellerSKU": "ITEM-1001-SKU-05-CLR",
"tags": null,
"productCode": "ITEM-1001-SKU-05-CLR",
"barCode": null,
"hsnCode": "00000000",
"gst": 5,
"variantType1": "Size",
"variantValue1": "05",
"variantType2": "Colour_Name",
"variantValue2": "Sample Color",
"syncId": "ITEM-1001_SKU_05_CLR",
"skuImageSource": "OTHERS",
"skuImageLink": ["link"],
"sellingUnits": [
{
"name": "PAIR",
"multiplier": 1,
"mrp": 100,
"sellingPrice": 80,
"availableQuantity": 0,
"isBaseUnit": true,
"isDefault": true,
"includeGST": true,
"isActive": false
},
{
"name": "CTN",
"multiplier": 32,
"mrp": 1200,
"sellingPrice": 960,
"availableQuantity": 0,
"isBaseUnit": false,
"isDefault": false,
"includeGST": true,
"syncId": "ITEM-1001_SKU_05_CLR",
"isActive": true
}
]
}
]
}
]

Source Data Checklist

Source columnUsed for
Article NameitemName
Descriptiondescription
BrandbrandName
Segment / Master CategorycategoryName
GendersubCategoryName
NoItem syncId
CodeSKU and ID generation
Variant DescriptionskuName
SizevariantValue1
Colour_NamevariantValue2
HSNSACCodehsnCode
GSTGroupCodegst
MRPBase unit MRP
Price_Per_PairBase unit selling price
Alternate_UOM_Per_QuantityCTN multiplier
BaseUnitofMeasureUnit name

Responses

Success

Success response
{
"error": false,
"status": true,
"statusCode": 200,
"responseTimestamp": "2026-03-19T07:27:45.863Z",
"data": {
"message": "All rows processed successfully"
}
}

Partial Failure

Partial failure response
{
"error": false,
"status": true,
"statusCode": 200,
"responseTimestamp": "2026-03-19T08:20:24.166Z",
"data": {
"message": "Some rows failed",
"processedCount": 0,
"errorCount": 1,
"errors": [
{
"row": 1,
"itemName": "Item 1",
"errors": ["items[1].itemName is required"]
}
]
}
}

Implementation Checklist

  • Confirm every item row has No, Article Name, Brand, and category data.
  • Confirm each SKU can be uniquely derived from Size and Colour_Name.
  • Confirm MRP, price, and multiplier values are numeric before syncing.
  • Confirm SKU syncId values are unique.
  • Send a JSON array, even when syncing one item.