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",
"description": "Sample Item 1004",
"brandName": "Sample Brand",
"subBrandName": "Sample Sub Brand",
"categoryName": "Sample Category",
"subCategoryName": "Sample Subcategory",
"itemImageSource": "OTHERS",
"itemImageLink": ["link"],
"syncId": "ITEM-1001",
"itemLastUpdatedAt": "2026-08-03T06:41:38.654Z",
"attributes": {
"Attribute 1": "Value 1",
"Attribute 2": "Value 2"
},
"skus": []
}
]

Item Mapping​

API fieldExcel sourceRequiredRule
itemNameArticle NameYesProduct display name.
descriptionDescriptionNoProduct description.
brandNameBrandYesBrand name.
subBrandNameSub BrandNoSub-brand name.
categoryNameSegment / Master CategoryYesProduct category.
subCategoryNameGenderNoProduct sub-category.
syncIdNoYesUnique item identifier.
itemImageSourceImage sourceNoGoogle Drive or another source.
itemImageLinkPublic image linkNoArray of image links when available.
itemLastUpdatedAtTBDYesISO 8601 timestamp of the last item update.
attributesTBDNoKey/value pairs of additional item attributes.

SKU Mapping​

API fieldExcel sourceRequiredRule
skuNameVariant Description / SKUYesFull SKU name.
skuNickNameDerivedNoItem name + item code + colour code.
sellerSKUNo + CodeNoSeller SKU.
tagsTBDNoTags.
productCodeNo + CodeNoProduct code.
barCodeTBDNoBarcode.
hsnCodeHSNSACCodeNoHSN code.
gstGSTGroupCodeNoGST percentage.
variantType1StaticNoSize.
variantValue1SizeNoFirst variant value.
variantType2StaticNoColour_Name.
variantValue2Colour_NameNoSecond variant value.
syncIdNo + CodeYesUnique SKU identifier.
skuImageSourceImage sourceNoGoogle Drive or another source.
skuImageLinkPublic image linkNoArray of image links when available.

Up to 10 variant type/value pairs are allowed.

Selling Unit Mapping​

API fieldExcel sourceRequiredRule
nameBaseUnitofMeasure or static valueYesUnit name, usually PAIR or CTN.
multiplierAlternate_UOM_Per_QuantityYesUnit multiplier.
mrpMRPYesMaximum retail price.
sellingPricePrice_Per_PairYesSelling price.
availableQuantityTBDNoAvailable stock if provided.
isBaseUnitStaticYestrue for PAIR, false for CTN.
isDefaultStaticYestrue for PAIR.
includeGSTStaticYesAlways true.
syncIdNo + CodeYesUnique selling unit identifier.
isActiveStaticYesfalse for PAIR, true for CTN.
weightTBDNoUnit weight.
weightUnitTBDNoWeight unit, for example G.
lengthTBDNoUnit length.
breadthTBDNoUnit breadth.
heightTBDNoUnit height.
dimensionUnitTBDNoDimension unit, for example CM.
volumeTBDNoUnit volume.
volumeUnitTBDNoVolume unit, for example M3.
inventoryLastUpdatedAtTBDYesISO 8601 timestamp of the last inventory update.
wlbhLastUpdatedAtTBDYesISO 8601 timestamp of the last weight and dimension update.

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",
"subBrandName": "Sample Sub Brand",
"categoryName": "Sample Category",
"subCategoryName": "Sample Subcategory",
"itemImageSource": "OTHERS",
"itemImageLink": ["link"],
"syncId": "ITEM-1001",
"itemLastUpdatedAt": "2026-08-03T06:41:38.654Z",
"attributes": {
"Attribute 1": "Value 1",
"Attribute 2": "Value 2"
},
"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,
"syncId": "ITEM-1001_SKU_05_CLR_PAIR",
"isActive": false,
"weight": 500,
"weightUnit": "G",
"length": 10,
"breadth": 10,
"height": 10,
"dimensionUnit": "CM",
"volume": 0.001,
"volumeUnit": "M3",
"inventoryLastUpdatedAt": "2026-08-03T06:52:00.641Z",
"wlbhLastUpdatedAt": "2026-08-03T06:55:17.156Z"
},
{
"name": "CTN",
"multiplier": 32,
"mrp": 1200,
"sellingPrice": 960,
"availableQuantity": 0,
"isBaseUnit": false,
"isDefault": false,
"includeGST": true,
"syncId": "ITEM-1001_SKU_05_CLR",
"isActive": true,
"weight": 500,
"weightUnit": "G",
"length": 10,
"breadth": 10,
"height": 10,
"dimensionUnit": "CM",
"volume": 0.001,
"volumeUnit": "M3",
"inventoryLastUpdatedAt": "2026-08-03T06:52:00.641Z",
"wlbhLastUpdatedAt": "2026-08-03T06:55:17.156Z"
}
]
}
]
}
]

Source Data Checklist​

Source columnUsed for
Article NameitemName
Descriptiondescription
BrandbrandName
Sub BrandsubBrandName
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.