Product

Product is the core of PIM and this section covers the different endpoints to fetch / update / create products, variants and other details. These endpoints would allow you to update all the data that you'd be seeing otherwise within the PIM software as well.


GET/api/v1/product/{id}

Product Detail

This endpoint is used to get product details based on product id.

Request Parameters

NameTypeDescription
idGUIDUnique Guid of the Product

Sample Request

Request

GET
/api/v1/product/:id
curl --location --request GET '<api_url>/api/v1/product/{id}' \
--header 'Accept: text/plain' \
--header 'Authorization: {{apiKey}}'

Response Model

Response

{
 "statusCode": 200,
 "status": "OK",
 "error": null,
 "errorId": null,
 "message": null,
 "messageCode": "OK",
 "result": {
     "productId": "00000000-0000-0000-0000-000000000000",
     "basicInfo": {
         "name": "Aqua Stone Bracelet",
         "stockCode": "GTNR036",
         "description": "Look cool and pretty in this brass Aqua Stone bracelet. ",
         "shortDescription": "Look cool and pretty in this brass Aqua Stone bracelet. ",
         "notes": null,
         "keywords": "",
         "isActive": false,
         "isVisible": true,
         "hasVariant": false,
         "brand": {
             "key": "38e6310c-0af1-4e35-bc5b-aed600693897",
             "value": "Dare"
         },
         "subbrand": {
             "key": null,
             "value": null
         },
         "productType": 1,
         "defaultCategory": {
             "key": "4955805a-384b-4996-8154-fe4769dd7501",
             "value": "Bracelets"
         },
         "categories": [
             {
                 "key": "4955805a-384b-4996-8154-fe4769dd7501",
                 "value": "Bracelets"
             }
         ],
         "externalBrands": {
             "key": null,
             "value": null
         },
         "externalCategories": null,
         "productCode": null,
         "seasonId": "00000000-0000-0000-0000-000000000000",
         "dropId": "00000000-0000-0000-0000-000000000000",
         "tariffCode": null,
         "isForPDLC": false,
         "colorName": null,
         "colorCode": null,
         "status": 0,
         "originCountry": null,
         "extendedDescription": null,
         "productVariantGroupCode": null
     },
     "identifiers": {
         "sku": "GTNR036",
         "mpn": null,
         "upcean": null,
         "gtn": null,
         "barcode": "",
         "barCodeUrl": null
     },
     "flags": {
         "isActive": true,
         "isVisible": true,
         "sellWithoutInventory": false,
         "fulfilFromWarehouse": false,
         "fulfilFromStore": false
     },
     "media": {
         "files": null,
         "videos": null
     },
     "dimensions": {
         "uom": null,
         "weight": {
             "key": "KG",
             "value": 0.0000000
         },
         "height": {
             "key": "CM",
             "value": 0.0000000
         },
         "length": {
             "key": "CM",
             "value": 0.0000000
         },
         "width": {
             "key": "CM",
             "value": 0.0000000
         }
     },
     "customAttributes": {
         "customAttributeSetId": "72c91cec-fd99-43d5-81be-ae3700fb5d83",
         "customFieldsWithValues": [
             {
                 "key": "clothing.size",
                 "value": "n/a"
             },
             {
                 "key": "footwear.size",
                 "value": "5"
             },
             {
                 "key": "global.gender",
                 "value": "women"
             },
             {
                 "key": "global.material",
                 "value": "Acetate"
             },
             {
                 "key": "Eyewear.frameshape",
                 "value": "rectangle"
             },
             {
                 "key": "Eyewear.frametype",
                 "value": "full-rim"
             },
             {
                 "key": "fabric.type",
                 "value": null
             },
             {
                 "key": "Eyewear.framecolor",
                 "value": null
             },
             {
                 "key": "global.colour",
                 "value": null
             }
         ]
     },
     "variants": null,
     "defaultPricing": {
         "pricelist": {
             "key": "8d2504e8-9b99-4ace-b906-88efff476877",
             "value": "Default Pricelist"
         },
         "sellPrice": 399.0000,
         "sellPriceExcVat": 0.0000,
         "listPrice": 399.0000,
         "costPrice": 63.2000,
         "landingCost": 0,
         "currencySymbol": null,
         "currencyCode": "GBP",
         "taxClass": {
             "key": "bb6f2dc9-a9b8-4f30-968b-1206b2e856b1",
             "value": "Default Product Tax Class"
         },
         "lastUpdated": "0001-01-01T00:00:00",
         "isPricelistDynamic": false,
         "isDefault": true,
         "isGlobal": true,
         "sourcePricelist": {
             "key": null,
             "value": " "
         },
         "sameAsMaster": false,
         "wholeSalePriceList": "00000000-0000-0000-0000-000000000000"
     },
     "pricelists": [
         {
             "pricelist": {
                 "key": "8d2504e8-9b99-4ace-b906-88efff476877",
                 "value": "Default Pricelist"
             },
             "sellPrice": 399.0000,
             "sellPriceExcVat": 0.0000,
             "listPrice": 399.0000,
             "costPrice": 63.2000,
             "landingCost": 0,
             "currencySymbol": null,
             "currencyCode": "GBP",
             "taxClass": {
                 "key": "bb6f2dc9-a9b8-4f30-968b-1206b2e856b1",
                 "value": "Default Product Tax Class"
             },
             "lastUpdated": "0001-01-01T00:00:00",
             "isPricelistDynamic": false,
             "isDefault": true,
             "isGlobal": true,
             "sourcePricelist": {
                 "key": null,
                 "value": " "
             },
             "sameAsMaster": false,
             "wholeSalePriceList": "00000000-0000-0000-0000-000000000000"
         }
     ],
     "inventory": [
         {
             "warehouseId": "80e82cab-8800-443b-9990-69d486252613",
             "warehouseName": "- warehouse",
             "stockOnHand": 100,
             "stockAllocated": 0,
             "lastUpdated": "2022-07-18T06:23:06.24",
             "sellWithoutInventory": false,
             "fulfilFromWarehouse": false,
             "fulfilFromWarehouseDays": 0,
             "fulfilFromStore": false,
             "fulfilFromStoreDays": 0,
             "fulfilFromSupplier": false,
             "fulfilFromSupplierDays": 0
         }
     ],
     "relatedProducts": {
         "showRelatedProducts": false,
         "isAuto": false,
         "sortBy": 0,
         "maxProducts": 0,
         "relatedProductConfig": null,
         "relatedProduct": null
     },
     "shippingInfo": {
         "packageDimensions": {
             "widthCm": 0,
             "heightCm": 0,
             "depthCm": 0,
             "weightKg": 0
         },
         "shippingTypes": null,
         "deliveryNote": null,
         "additionalShippingFees": 0,
         "isFreeShipping": false
     },
     "seo": {
         "name": null,
         "url": "products/dare-aqua-stone--bracelet-gtnr036",
         "updatedUrl": null,
         "metaTitle": null,
         "metaDescription": null,
         "metaKeywords": null,
         "isRedirectedFor": false
     },
     "giftWrap": {
         "giftWrapSettings": 0,
         "giftWrapTypes": 0,
         "selectedGiftWraps": null,
         "enableGiftWrap": false,
         "allAvailableOptions": false,
         "allowedOptions": null
     },
     "purchasability": {
         "purchasabilityType": 0,
         "preorder": {
             "enabled": false,
             "shortMessage": null,
             "message": null,
             "launchDate": null,
             "takeOrdersFrom": null,
             "takeOrdersUntil": null,
             "maxStock": 0
         },
         "minPurchaseQty": 0,
         "maxPurchaseQty": 0
     },
     "domains": [
         {
             "recordId": "d3e90fba-0df4-4190-91ba-aed6006938cf",
             "categoryId": "4955805a-384b-4996-8154-fe4769dd7501",
             "domainId": "9346e329-43f0-4c4e-9496-23075b48997e",
             "domainName": "BASEDEMOSTORE",
             "isActive": true,
             "isVisible": true,
             "sellWithoutInventory": false,
             "excludeFromShoppingFeed": true,
             "fulfilFromWarehouse": false,
             "fulfilFromStore": false,
             "sortOrder": 0,
             "availabilityText": "",
             "condition": 0,
             "showConditionOnStoreFront": false,
             "enableNotifyMe": false,
             "launchDate": null
         }
     ],
     "bundleConfig": null,
     "configurableOptions": null,
     "bundles": null,
     "advancedPurchaseData": null,
     "productVariantDomain": null
 }
}
NameTypeDescription
ResponseWrapper ModelThe global response wrapper object model
resultobjectContains the Product object with all product details
result.productIdGuidUnique id of the product
result.basicInfoobjectProduct specific basic details
result.basicInfo.namestringName of the Product
result.basicInfo.stockCodestringStock Code of the Product
result.basicInfo.descriptionstringDescription of this product
result.basicInfo.shortDescriptionstringShort description of this product
result.basicInfo.notesstringAny added notes of the Product
result.basicInfo.keywordsintkeywords of the product
result.basicInfo.isActivebooleanWhether product is active or not
result.basicInfo.isVisiblebooleanWhether product is visible or not
result.basicInfo.hasVariantbooleanWhether product has variant or not
result.basicInfo.brandObject of key value pair
result.basicInfo.brand.keystringId of the brand
result.basicInfo.brand.valuestringName of the brand
result.basicInfo.subbrandObject of key value pair
result.basicInfo.subbrand.keystringId of the sub-brand
result.basicInfo.subbrand.valuestringName of the sub-brand
result.basicInfo.productTypeintHolds the type of product, ex: 1 for product, 2 for Service... etc. Product type
result.basicInfo.defaultCategoryObject of key value pair
result.basicInfo.defaultCategory.keystringId of product default category
result.basicInfo.defaultCategory.valuestringName of product default category
result.basicInfo.categoriesList of key value pair
result.basicInfo.categories.keystringId of the category
result.basicInfo.categories.valuevalueName of the category
result.basicInfo.externalBrandsObject of key value pair
result.basicInfo.externalBrands.keystringId of the external brand
result.basicInfo.externalBrands.valuestringName of the external brand
result.basicInfo.externalCategoriesList of key value pair
result.basicInfo.externalCategories.keystringId of external category
result.basicInfo.externalCategories.valuestringName of external category
result.basicInfo.productCodestringProductCode of the product
result.basicInfo.seasonIdstringId of the season
result.basicInfo.dropIdstringDrop id of a season
result.basicInfo.tariffCodestringTariff Code under which the product falls
result.basicInfo.isForPDLCbooleanWhether the product is enabled for product development life cycle. The value can be either 0 or 1
result.basicInfo.colorNamestringName of the color
result.basicInfo.colorCodestringCode of the color (HexCode or swatch url)
result.basicInfo.statusintHolds status of the product, ex: 1 for Draft, 2 for Active... etc. Product status
result.basicInfo.originCountrystringCountry of origin of the product
result.basicInfo.extendedDescriptionstringExtended description of the product
result.productVariantGroupCodestringVariant group code
result.identifiersobject
result.identifiers.skuobjectSKU of the product
result.identifiers.mpnstringMPN of the product
result.identifiers.upceanstringUPC or EAN of the product
result.identifiers.gtnstringGTN of the product
result.identifiers.barcodestringBarCode of the product
result.identifiers.barcodeUrlstringImage url of the barcode
result.flagsobject
result.flags.isActivebooleanWhether product is active or not
result.flags.isVisiblebooleanWhether product is visible or not
result.flags.sellWithoutInventorybooleanWhether product is sell without inventory or not
result.flags.fulfilFromWarehousebooleanWhether product is fulfil from warehouse or not
result.flags.fulfilFromStorebooleanWhether product is fulfil from store or not
result.mediaobject
result.media.filesList of object
result.media.files.recordIdstringId of the file
result.media.files.mediaTypeintType of media, ex: 0 for Image, 1 for Video and 2 for PDF. Media type
result.media.files.namestringName of the file
result.media.files.urlstringUrl of the file
result.media.files.altTextstringAltText of the file
result.media.files.isDefaultbooleanWhether the file is default or not
result.media.files.isActivebooleanWhether the file is active or not
result.media.files.displayOrderintDisplay order of the file
result.media.files.previewUrlstringPreview url of the file
result.media.files.isMultiplebooleanWhether the file has got multiple files
result.media.files.isInternalbooleanWhether the file is for internal purpose or not
result.media.videosList of object
result.media.videos.recordIdstringId of the video
result.media.videos.urlstringUrl of the video
result.media.videos.isDefaultbooleanWhether this video is default or not
result.media.videos.displayOrderintDisplay order of the video
result.dimensionsobject
result.dimensions.uomstringUOM of the product
result.dimensions.weightobject of key value pair
result.dimensions.weight.keystringUnit of measurement (KG)
result.dimensions.weight.valuedecimalWeight of the product
result.dimensions.heightobject of key value pair
result.dimensions.height.keystringUnit of measurement (CM)
result.dimensions.height.valuedecimalHeight of the product
result.dimensions.lengthobject of key value pair
result.dimensions.length.keystringUnit of measurement (CM)
result.dimensions.length.valuedecimalLength of the product
result.dimensions.widthobject of key value pair
result.dimensions.width.keystringUnit of measurement (CM)
result.dimensions.width.valuedecimalWidth of the product
result.customAttributesobject
result.customAttributes.customAttributeSetIdstringId of the custom attribute set
result.customAttributes.customFieldsWithValuesList of key value pair
result.customAttributes.customFieldsWithValues.keystringCode of the custom attribute
result.customAttributes.customFieldsWithValues.valuestringValue of the custom attribute
result.variantsobject
result.variants.variantProductobject
result.variants.variantConfig.createManualStockCodebooleanWhether this variant product is create manual stockcode or not
result.variants.variantConfig.independentProductUrlbooleanWhether this variant product has independent url or not
result.variants.variantConfig.displayInProductWidgetbooleanWhether this variant product is display in product widget or not
result.variants.variantConfig.displayInProductDetailbooleanWhether this variant product is display in product detail or not
result.variants.variantConfig.listTypeintHolds variant list type, ex: 1 for RollUp, 2 for Expanded
result.variants.variantConfig.selectedAttributeCodesstringAttributes value on which variant created
result.variants.variantConfig.variantInputTypesstringInput type of variant
result.variants.customFieldsobject
result.variants.customFields.labelstringLabel of custom attribute
result.variants.customFields.keystringCode of custom attribute
result.variants.customFields.valuestringValue of custom attribute
result.defaultPricingobject
result.defaultPricing.pricelistobject of key value pairPricelist details
result.defaultPricing.pricelist.keystringId of the pricelist
result.defaultPricing.pricelist.valuestringName of the pricelist
result.defaultPricing.sellPricedecimalSell price inclusive vat
result.defaultPricing.sellPriceExcVatdecimalSell price exclusive vat
result.defaultPricing.listPricedecimalDefault List price of product
result.defaultPricing.costPricedecimalDefault costPrice of product
result.defaultPricing.landingCostdecimalDefault landing cost
result.defaultPricing.currencySymbolstringDefault current symbol
result.defaultPricing.currencyCodestringDefault currency code
result.defaultPricing.taxClassobject of key value pairTax class of the product
result.defaultPricing.taxClass.keystringId of the tax class
result.defaultPricing.taxClass.valuestringName of the tax class
result.defaultPricing.lastUpdateddatetimeLast default price updated date time
result.defaultPricing.isPricelistDynamicbooleanWhether the pricelist is dynamic or not
result.defaultPricing.isDefaultbooleanWhether the pricelist is default or not
result.defaultPricing.isGlobalbooleanWhether the pricelist is default or not
result.defaultPricing.sourcePricelistobject of key value pairSource price list details
result.defaultPricing.sourcePricelist.keystringId of the source pricelist
result.defaultPricing.sourcePricelist.valuestringName of the source pricelist
result.defaultPricing.sameAsMasterbooleanWhether the default price is same as master or not for child products
result.defaultPricing.wholeSalePriceListstringDefault wholesale pricelist id
result.pricelistsList objectList of all different pricelist available
result.pricelists.pricelistobject of key value pairPricelist details
result.pricelists.pricelist.keystringId of the pricelist
result.pricelists.pricelist.valuestringName of the pricelist
result.pricelists.sellPricedecimalSell price inclusive vat
result.pricelists.sellPriceExcVatdecimalSell price exclusive vat
result.pricelists.listPricedecimalList price of product
result.pricelists.costPricedecimalCostPrice of product
result.pricelists.landingCostdecimalLanding cost
result.pricelists.currencySymbolstringCurrency symbol
result.pricelists.currencyCodestringCurrency code
result.pricelists.taxClassobject of key value pairTax Class
result.pricelists.taxClass.keystringId of the tax class
result.pricelists.taxClass.valuestringName of the tax class
result.pricelists.lastUpdateddatetimeLast price updated date time
result.pricelists.isPricelistDynamicbooleanWhether the pricelist is dynamic or not
result.pricelists.isDefaultbooleanWhether the pricelist is default or not
result.pricelists.isGlobalbooleanWhether the pricelist is global or not
result.pricelists.sourcePricelistobject of key value pairSource price list details
result.pricelists.sourcePricelist.keystringId of the source pricelist
result.pricelists.sourcePricelist.valuestringName of the source pricelist
result.pricelists.sameAsMasterbooleanWhether the price is same as master or not for child products
result.pricelists.wholeSalePriceListstringWholesale pricelist id
result.inventoryobject
result.inventory.warehouseIdstringId of the warehouse
result.inventory.warehouseNamestringWarehouse name
result.inventory.stockOnHandintAvailable stock on hand of the product
result.inventory.stockAllocatedintTotal stock allocated for the product
result.inventory.lastUpdateddatetimeLast date time where inventory is updated
result.inventory.sellWithoutInventorybooleanWhether to sell product without inventory or not
result.inventory.fulfilFromWarehousebooleanWhether the product will be fulfilled from warehouse or not
result.inventory.fulfilFromWarehouseDaysintNo. of days to fulfill the product from warehouse
result.inventory.fulfilFromStorebooleanWhether the product is fulfilled from store
result.inventory.fulfilFromStoreDaysintNo. of days to fulfill the product from store
result.inventory.fulfilFromSupplierbooleanWhether the product is fulfilled from the supplier or not
result.inventory.fulfilFromSupplierDaysintNo. of days to fulfill the product from supplier
POST/api/v1/product/data

Product Data

This endpoint is used to get specific attributes for the products requested. You can provide the list of specific fields that you'd like to fetch for the list of multiple productIds passed.

Request Parameters

NameTypeDescription
pageintNumber of the page from the paginated result set, by default it is 1
pagesizeintHow many records to be displayed in a page, by default it is 10
productIdsstring arrayArray of product ids (GUIDs)
fieldCodesstring arrayArray of field that are required in the output
searchForintint of search that are required in the output

Sample Request

Request

POST
/api/v1/product/data?page=1&pagesize=20
curl --location --request POST '<api_url>/api/v1/product/data?page=1&pagesize=20' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{api-key}}'\
--data '{
"productIds": ["D3E90FBA-0DF4-4190-91BA-AED6006938CF", "3fa85f64-5717-4562-b3fc-2c963f66afa7"],
"fieldCodes": ["name,stockCode,productCode,barcode,global.color"]
}'

Response Model

Response

{
"totalRecords": 226,
"statusCode": 200,
"status": "OK",
"error": null,
"errorId": null,
"message": null,
"messageCode": "OK",
"result": "[{\"productid\":\"D3E90FBA-0DF4-4190-91BA-AED6006938CF\",\"stockcode\":\"GTNR036\",\"barcode\":\"\",\"brand\":\"Dare\",\"category\":\"Bracelets\",\"created\":\"2022-07-18T06:23:06.317\",\"createdby\":\"Import\",\"description\":\"Look cool and pretty in this brass Aqua Stone bracelet. \",\"dimheight\":0.0000000e+000,\"dimlength\":0.0000000e+000,\"dimwidth\":0.0000000e+000,\"enablesubscription\":false,\"fulfilfrominstoredays\":0,\"fulfilfromstore\":false,\"fulfilfromsupplier\":false,\"fulfilfromsupplierdays\":0,\"fulfilfromwarehouse\":false,\"fulfilfromwarehousedays\":0,\"isactive\":true,\"ismasterstock\":true,\"lastupdated\":\"2022-07-18T06:23:06.317\",\"lastupdatedby\":\"Import\",\"listprice\":399.0000,\"manufacturerid\":\"38E6310C-0AF1-4E35-BC5B-AED600693897\",\"name\":\"Stone Bracelet\",\"sellprice\":399.0000,\"shortdescription\":\"Look cool and pretty in this brass Stone Bracelet. .\",\"sku\":\"GTNR036\",\"status\":1,\"supplierid\":\"A1BE1E78-684B-4B0B-87FF-82D7B0FAC716\",\"taxclassid\":\"BB6F2DC9-A9B8-4F30-968B-1206B2E856B1\",\"visibility\":true,\"weight\":0.0000000e+000,\"global.gender\":\"women\"}]"
}
NameTypeDescription
ResponseWrapper ModelThe global response wrapper object model
resultobjectcontains the serialized list of products along with properties requested.


POST/api/v1/product/create

Create Product

This endpoint is used to create a product in the PIM. The product creation is done with the basic information and the further enrichment or information update is done as the product goes through different stages of lifecycle.

Request Parameters

NameTypeDescription
namestringName of the product
stockCodestringStockCode of the product
descriptionstringDescription of the product
productCodestringProductCode of the product
shortDescriptionstringShort description of the product
currentStockintAvailable stock of the product
originCountrystringCountry of origin of the product
brandstringBrand of the product
categorystringCategory of the product
sellPricedecimalSell price of the product inclusive vat
sellPriceExcVatdecimalSell price of the product exclusive vat
listPricedecimalList price of the product
costPricedecimalCost price of the product

Sample Request

Request

POST
/api/v1/product/create
curl --location --request POST '<api_url>/api/v1/product/create' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{api-key}}'\
--data '{
"name": "string",
"stockCode": "string",
"description": "string",
"productCode": "string",
"shortDescription": "string",
"currentStock": 0,
"originCountry": "string",
"brand": "string",
"category": "string",
"sellPrice": 0,
"sellPriceExcVat": 0,
"listPrice": 0,
"costPrice": 0
}'

Response Model

Response

{
"isValid": true,
"message": "Product Created successfully.",
"errors": [
 "string"
],
"messageCode": "",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringProductId of the newly created product in GUID format.


PUT/api/v1/product/update

Update Product

This endpoint is used to Update details for an existing product in the system.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
namestringName of the product
stockCodestringStockCode of the product
descriptionstringDescription of the product
productCodestringProductCode of the product
shortDescriptionstringShort description of the product
notesstringNotes of the product
brandstringBrand of the product
categorystringCategory of the product
currentStockintAvailable stock of the product
originCountrystringCountry of origin of the product
sellPricedecimalSell price of the product inclusive vat
sellPriceExcVatdecimalSell price of the product exclusive vat
listPricedecimalList price of the product
costPricedecimalCost price of the product
filesobjectArray of different files uploaded for the product
files.recordIdstringId of the file
files.mediaTypeintType of media, ex: 0 for Image, 1 for Video and 2 for PDF. Media type
files.namestringName of the file
files.urlstringUrl of the file
files.altTextstringAltText of the file
files.isDefaultbooleanWhether this file is default or not
files.isActivebooleanWhether the file is active or not
files.displayOrderintDisplay order of the file
files.previewUrlstringPreview url of the file
files.isMultiplebooleanWhether the file has got multiple files
files.isInternalobjectWhether the file is for internal purpose or not

Sample Request

Request

PUT
/api/v1/product/update
curl --location --request PUT '<api_url>/api/v1/product/update' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "string",
"stockCode": "string",
"description": "string",
"productCode": "string",
"shortDescription": "string",
"notes": "string",
"brand": "string",
"category": "string",
"currentStock": 0,
"originCountry": "string",
"sellPrice": 0,
"sellPriceExcVat": 0,
"listPrice": 0,
"costPrice": 0,
"files": [
{
  "recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "mediaType": 0,
  "name": "string",
  "url": "string",
  "altText": "string",
  "isDefault": true,
  "isActive": true,
  "displayOrder": 0,
  "previewUrl": "string",
  "isMultiple": true,
  "isInternal": true
}
]
}'

Response Model

Response

{
"isValid": true,
"message": "Product updated successfully.",
"errors": [
"string"
]
"messageCode": "",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/launch-date

Update Launch Date

This endpoint is used to Update the Product Launch date.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
launchDatedatetimeLaunch date to be updated for the product

Sample Request

Request

PUT
/api/v1/product/launch-date
curl --location --request PUT '<api_url>/api/v1/product/launch-date' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"launchDate": "2023-08-14T12:28:38.070Z"
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/status

Update Status

This endpoint is used to Update status of the Product.

Below are the options that can be used for status:

StatusValue
None0
Draft1
Active2
Archived3
Discontinued4

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
StockCodestringStockCode of the product
productCodestringProduct code of the product
statusintProduct status to be updated
publishbooleanWhether the product is published or not

Sample Request

Request

PUT
/api/v1/product/status
curl --location --request PUT '<api_url>/api/v1/product/status' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stockCode": "string",
"productCode": "string",
"status": 0,
"publish": true
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/pricelist

Update Pricelist

This endpoint is used to Update pricelist for specific product.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
StockCodestringStockCode of the product
productCodestringProductCode of the product
pricelistIdstringId of the pricelist to be mapped to the product
sellPricedecimalSell price of the product inclusive vat
sellPriceExcVatdecimalSell price the product exclusive vat
listPricedecimalList price of the product
costPricedecimalCost price of the product

Sample Request

Request

PUT
/api/v1/product/pricelist
curl --location --request PUT '<api_url>/api/v1/product/pricelist' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stockCode": "string",
"productCode": "string",
"pricelistId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sellPrice": 0,
"sellPriceExcVat": 0,
"listPrice": 0,
"costPrice": 0
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/basic-info

Update Basic Info

This endpoint is used to Update basic properties of a specific product.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
namestringName of the product
StockCodestringStockCode of the product
productCodestringProductCode of the product
productTypeintHolds the type of product, ex: 1 for product, 2 for Service... etc. Product type
descriptionstringDescription of the product
shortDescriptionstringShort description the product exclusive vat
originCountrystringCountry of origin of the product
hsnCodestringHSN code of the product

Sample Request

Request

PUT
/api/v1/product/pricelist
curl --location --request PUT '<api_url>/api/v1/product/pricelist' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"stockCode": "string",
"productCode": "string",
"pricelistId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"sellPrice": 0,
"sellPriceExcVat": 0,
"listPrice": 0,
"costPrice": 0
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/category

Update Category

This endpoint is used to Update product category of a specific product, A product can be mapped with multiple categories or subcategories. So user will be able to map/update the categories against the product using this endpoint by providing list of categories.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
categoriesList stringHolds the list of category ids to be mapped with the product
categories.categoryIdstringId of the Category or Sub category to be mapped

Sample Request

Request

PUT
/api/v1/product/category
curl --location --request PUT '<api_url>/api/v1/product/category' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"categories": [
{
  "categoryId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/media

Update Media

This endpoint is used to Update media data for an existing product in the system, media includes different files that are required for the product like images, videos..etc

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
filesobjectArray of different files uploaded for the product
files.recordIdstringId of the file
files.mediaTypeintType of media, ex: 0 for Image, 1 for Video and 2 for PDF
files.namestringName of the file
files.urlstringUrl of the file
files.altTextstringAlt text of the file
files.isDefaultbooleanWhether the file is default or not
files.isActivebooleanWhether the file is active or not
files.displayOrderintDisplay order of the file
files.previewUrlstringPreview url of the file
files.isMultiplebooleanWhether the file has got multiple files
files.isInternalobjectWhether the file is for internal purpose or not
videosobjectArray of different Video files to be updated for the product
videos.recordIdstringId of the video
videos.urlstringUrl of the video
videos.isDefaultbooleanWhether this video is default or not
videos.displayOrderintDisplay order of the video

Sample Request

Request

PUT
/api/v1/product/media
curl --location --request PUT '<api_url>/api/v1/product/media' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"files": [
{
  "recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "mediaType": 0,
  "name": "string",
  "url": "string",
  "altText": "string",
  "isDefault": true,
  "isActive": true,
  "displayOrder": 0,
  "previewUrl": "string",
  "isMultiple": true,
  "isInternal": true
}
],
"videos": [
{
  "recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "url": "string",
  "isDefault": true,
  "displayOrder": 0
}
]
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/brand

Update Brand

This endpoint is used to Update brand data for an existing product in the system.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
brandIdstringId of the brand
subBrandIdstringId of the sub-brand

Sample Request

Request

PUT
/api/v1/product/brand
curl --location --request PUT '<api_url>/api/v1/product/brand' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"brandId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"subBrandId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/attributes

Update Attributes

This endpoint is used to Update Attributes data for an existing product in the system. A product can have multiple attributes mapped to it, user can updated or map new attributes to the product using this endpoint.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
customFieldsWithValuesList objectList object that holds the data of the attribute code and value that needs to be mapped
customFieldsWithValues.fieldCodestringCode of the custom attribute
customFieldsWithValues.fieldValuestringValue of the custom attribute

Sample Request

Request

PUT
/api/v1/product/attributes
curl --location --request PUT '<api_url>/api/v1/product/attributes' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"customFieldsWithValues": [
{
  "fieldCode": "string",
  "fieldValue": "string"
}
]
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/relatedproducts

This endpoint is used to Update related products data for an existing product in the system. A product can be mapped with multiple related products, user can updated or map new related products to the product using this endpoint.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
relationTypestringRelation type of the mapping
labelstringLabel for the mapping
relatedProdobject of key value pairkey value pair to hold the related product
relatedProd.keystringId of the product to be mapped as related product
relatedProd.valuestringStockCode of the product to be mapped as related product
displayOrderintDisplay order of the related product, where it has to be displayed in list on front end
copyToVariantbooleanWhether we need to copy the related products mapping for the variants or not

Sample Request

Request

PUT
/api/v1/product/relatedproduct
curl --location --request PUT '<api_url>/api/v1/product/relatedproduct' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"relationType": "string",
"label": "string",
"relatedProd": {
"key": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"value": "string"
},
"displayOrder": 0,
"copyToVariant": true
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/tags

Update Tags

This endpoint is used to Update tags for an existing product in the system.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
tagsList stringList of the tags that need to be updated for the product

Sample Request

Request

PUT
/api/v1/product/tags
curl --location --request PUT '<api_url>/api/v1/product/tags' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{api-key}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"tags": [
"string"
]
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


POST/api/v1/product/variant/generate

Generate Variants

This endpoint is used to create a new variant for an existing product.

Request Parameters

NameTypeDescription
productIdstringId of the product to be updated
variationslist objectList object with the attribute codes on which variant needs to be generated
variations.fieldCodestringCode of the custom attribute
variations.optionValueslist key value pairHold key value pair of attribute value options
variations.optionValues.keystringAttribute value option name
variations.optionValues.valuestringAttribute value

Sample Request

Request

POST
/api/v1/product/variant/generate
curl --location --request POST '<api_url>/api/v1/product/variant/generate' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: {{apiKey}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"variations": [
{
  "fieldCode": "string",
  "optionValues": [
    {
      "key": "string",
      "value": "string"
    }
  ]
}
]
}'

Response Model

Response

{
"statusCode": 0,
"status": null,
"error": null,
"errorId": null,
"message": null,
"messageCode": null,
"result": {
    "productId": "d3e90fba-0df4-4190-91ba-aed6006938cf",
    "variantProducts": [
        {
            "variantFields": [
                {
                    "fieldCode": "Variation",
                    "label": "global.variation",
                    "value": "Variation1"
                }
            ],
            "variant": "GTNR036-GLOBAL.VARIATION",
            "productCode": "GTNR036",
            "stockCode": "GTNR036-GLOBAL.VARIATION",
            "price": 399.0000,
            "inventory": 100,
            "barCode": null
        }
    ]
}
}
NameTypeDescription
statusstringHolds the status name related to the status code
errorstringDetails of the error if any
errorIdstringError code if any error in the process
messagestringMessage to display on front end if any in case of errors/success
messageCodestringResponse message code
totalRecordsintTotal number of products in result set
resultobjectContains the result object can be array of objects or specific object
result.productIdGuidId of the product
result.variantProductsList objectobject list to hold the variant product details
result.variantProducts.variantFieldsList objectObject list that contains the variant attribute field details
result.variantProducts.variantFields.fieldCodestringCode of the custom attribute
result.variantProducts.variantFields.labelstringName of the field/attribute
result.variantProducts.variantFields.valuestringValue of the field or attribute
result.variantProducts.variantstringProduct Image URL
result.variantProducts.productCodestringProductCode of the product
result.variantProducts.stockCodestringStockCode of the product
result.variantProducts.pricedecimalProduct Price
result.variantProducts.inventorydecimalCurrent stock of the product
result.variantProducts.barCodestringBarcode of the product




DELETE/api/v1/product/variant

Delete Variant

This endpoint is used to Delete a variant for an existing product.

Request Parameters

NameTypeDescription
productIdGuidId of the product
variantProductIdstringId of the variant product

Sample Request

Request

DELETE
/api/v1/product/variant
curl --location --request DELETE '<api_url>/api/v1/product/variant' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{apiKey}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"variantProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'

Response Model

Response

{
"isValid": true,
"message": "string",
"errors": [
"string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
NameTypeDescription
isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
messagestringMessage to display on front end (if any) in case of errors/success
errorsarrayList of error messages, if any
messageCodestringResponse message code
recordIdstringRecord ID of the object updated / created


PUT/api/v1/product/barcode

Update Barcode

This endpoint is used to update the newly provisioned 10 barcode for a specific product. User can add/update any one specific barcode or can update all 10 of the barcode at a specific given time.

Barcode is an alphanumeric field and which should be unique for a specific product, also same barcode cannot be used for any other product.

Once the API is executed then the barcode details will be updated against the product, and the Product Index Update is triggered, once the details are updated in the index, then these details are provided in the output of the Product PDP call.

Request Parameters

NameTypeDescription
productIdGuidUnique id of the product
Barcode1stringHolds value of barcode1
Barcode2stringHolds value of barcode2
Barcode3stringHolds value of barcode3
Barcode4stringHolds value of barcode4
Barcode5stringHolds value of barcode5
Barcode6stringHolds value of barcode6
Barcode7stringHolds value of barcode7
Barcode8stringHolds value of barcode8
Barcode9stringHolds value of barcode9
Barcode10stringHolds value of barcode10

Sample Request

Request

PUT
/api/v1/product/barcode
curl --location --request PUT '<api_url>/api/v1/product/barcode' \
--header 'Content-Type: application/json' \
--header 'Accept: text/plain' \
--header 'Authorization: bearer {{apiKey}}'\
--data '{
"productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"barcode1": "string",
"barcode2": "string",
"barcode3": "string",
"barcode4": "string",
"barcode5": "string",
"barcode6": "string",
"barcode7": "string",
"barcode8": "string",
"barcode9": "string",
"barcode10": "string"
}'

Response Model

Response

{
"statusCode": 100,
"status": "string",
"error": "string",
"errorId": "string",
"message": "string",
"messageCode": "string",
"result": {
"isValid": true,
"message": "string",
"errors": [
  "string"
],
"messageCode": "string",
"recordId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
}
NameTypeDescription
statusstringHolds the status name related to the status code
errorstringDetails of the error if any
errorIdstringError code if any error in the process
messagestringMessage to display on frontend if any, in case of errors/success
messageCodestringResponse message code
resultobjectContains the result object
result.isValidbooleanWhether the transaction was successful or failure, true - Success, false - Failure
result.messagestringMessage to display on front end (if any) in case of errors/success
result.errorsarrayList of error messages, if any
result.messageCodestringResponse message code
result.recordIdstringRecord ID of the object updated / created