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.
These are the same endpoints which are used internally by the PIM software UI as well to manage the product data.
Product Detail
This endpoint is used to get product details based on product id.
Request Parameters
Name | Type | Description |
---|---|---|
id | GUID | Unique Guid of the Product |
Sample Request
Request
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
}
}
Name | Type | Description |
---|---|---|
Response | Wrapper Model | The global response wrapper object model |
result | object | Contains the Product object with all product details |
result.productId | Guid | Unique id of the product |
result.basicInfo | object | Product specific basic details |
result.basicInfo.name | string | Name of the Product |
result.basicInfo.stockCode | string | Stock Code of the Product |
result.basicInfo.description | string | Description of this product |
result.basicInfo.shortDescription | string | Short description of this product |
result.basicInfo.notes | string | Any added notes of the Product |
result.basicInfo.keywords | int | keywords of the product |
result.basicInfo.isActive | boolean | Whether product is active or not |
result.basicInfo.isVisible | boolean | Whether product is visible or not |
result.basicInfo.hasVariant | boolean | Whether product has variant or not |
result.basicInfo.brand | Object of key value pair | |
result.basicInfo.brand.key | string | Id of the brand |
result.basicInfo.brand.value | string | Name of the brand |
result.basicInfo.subbrand | Object of key value pair | |
result.basicInfo.subbrand.key | string | Id of the sub-brand |
result.basicInfo.subbrand.value | string | Name of the sub-brand |
result.basicInfo.productType | int | Holds the type of product, ex: 1 for product, 2 for Service... etc. Product type |
result.basicInfo.defaultCategory | Object of key value pair | |
result.basicInfo.defaultCategory.key | string | Id of product default category |
result.basicInfo.defaultCategory.value | string | Name of product default category |
result.basicInfo.categories | List of key value pair | |
result.basicInfo.categories.key | string | Id of the category |
result.basicInfo.categories.value | value | Name of the category |
result.basicInfo.externalBrands | Object of key value pair | |
result.basicInfo.externalBrands.key | string | Id of the external brand |
result.basicInfo.externalBrands.value | string | Name of the external brand |
result.basicInfo.externalCategories | List of key value pair | |
result.basicInfo.externalCategories.key | string | Id of external category |
result.basicInfo.externalCategories.value | string | Name of external category |
result.basicInfo.productCode | string | ProductCode of the product |
result.basicInfo.seasonId | string | Id of the season |
result.basicInfo.dropId | string | Drop id of a season |
result.basicInfo.tariffCode | string | Tariff Code under which the product falls |
result.basicInfo.isForPDLC | boolean | Whether the product is enabled for product development life cycle. The value can be either 0 or 1 |
result.basicInfo.colorName | string | Name of the color |
result.basicInfo.colorCode | string | Code of the color (HexCode or swatch url) |
result.basicInfo.status | int | Holds status of the product, ex: 1 for Draft, 2 for Active... etc. Product status |
result.basicInfo.originCountry | string | Country of origin of the product |
result.basicInfo.extendedDescription | string | Extended description of the product |
result.productVariantGroupCode | string | Variant group code |
result.identifiers | object | |
result.identifiers.sku | object | SKU of the product |
result.identifiers.mpn | string | MPN of the product |
result.identifiers.upcean | string | UPC or EAN of the product |
result.identifiers.gtn | string | GTN of the product |
result.identifiers.barcode | string | BarCode of the product |
result.identifiers.barcodeUrl | string | Image url of the barcode |
result.flags | object | |
result.flags.isActive | boolean | Whether product is active or not |
result.flags.isVisible | boolean | Whether product is visible or not |
result.flags.sellWithoutInventory | boolean | Whether product is sell without inventory or not |
result.flags.fulfilFromWarehouse | boolean | Whether product is fulfil from warehouse or not |
result.flags.fulfilFromStore | boolean | Whether product is fulfil from store or not |
result.media | object | |
result.media.files | List of object | |
result.media.files.recordId | string | Id of the file |
result.media.files.mediaType | int | Type of media, ex: 0 for Image, 1 for Video and 2 for PDF. Media type |
result.media.files.name | string | Name of the file |
result.media.files.url | string | Url of the file |
result.media.files.altText | string | AltText of the file |
result.media.files.isDefault | boolean | Whether the file is default or not |
result.media.files.isActive | boolean | Whether the file is active or not |
result.media.files.displayOrder | int | Display order of the file |
result.media.files.previewUrl | string | Preview url of the file |
result.media.files.isMultiple | boolean | Whether the file has got multiple files |
result.media.files.isInternal | boolean | Whether the file is for internal purpose or not |
result.media.videos | List of object | |
result.media.videos.recordId | string | Id of the video |
result.media.videos.url | string | Url of the video |
result.media.videos.isDefault | boolean | Whether this video is default or not |
result.media.videos.displayOrder | int | Display order of the video |
result.dimensions | object | |
result.dimensions.uom | string | UOM of the product |
result.dimensions.weight | object of key value pair | |
result.dimensions.weight.key | string | Unit of measurement (KG) |
result.dimensions.weight.value | decimal | Weight of the product |
result.dimensions.height | object of key value pair | |
result.dimensions.height.key | string | Unit of measurement (CM) |
result.dimensions.height.value | decimal | Height of the product |
result.dimensions.length | object of key value pair | |
result.dimensions.length.key | string | Unit of measurement (CM) |
result.dimensions.length.value | decimal | Length of the product |
result.dimensions.width | object of key value pair | |
result.dimensions.width.key | string | Unit of measurement (CM) |
result.dimensions.width.value | decimal | Width of the product |
result.customAttributes | object | |
result.customAttributes.customAttributeSetId | string | Id of the custom attribute set |
result.customAttributes.customFieldsWithValues | List of key value pair | |
result.customAttributes.customFieldsWithValues.key | string | Code of the custom attribute |
result.customAttributes.customFieldsWithValues.value | string | Value of the custom attribute |
result.variants | object | |
result.variants.variantProduct | object | |
result.variants.variantConfig.createManualStockCode | boolean | Whether this variant product is create manual stockcode or not |
result.variants.variantConfig.independentProductUrl | boolean | Whether this variant product has independent url or not |
result.variants.variantConfig.displayInProductWidget | boolean | Whether this variant product is display in product widget or not |
result.variants.variantConfig.displayInProductDetail | boolean | Whether this variant product is display in product detail or not |
result.variants.variantConfig.listType | int | Holds variant list type, ex: 1 for RollUp, 2 for Expanded |
result.variants.variantConfig.selectedAttributeCodes | string | Attributes value on which variant created |
result.variants.variantConfig.variantInputTypes | string | Input type of variant |
result.variants.customFields | object | |
result.variants.customFields.label | string | Label of custom attribute |
result.variants.customFields.key | string | Code of custom attribute |
result.variants.customFields.value | string | Value of custom attribute |
result.defaultPricing | object | |
result.defaultPricing.pricelist | object of key value pair | Pricelist details |
result.defaultPricing.pricelist.key | string | Id of the pricelist |
result.defaultPricing.pricelist.value | string | Name of the pricelist |
result.defaultPricing.sellPrice | decimal | Sell price inclusive vat |
result.defaultPricing.sellPriceExcVat | decimal | Sell price exclusive vat |
result.defaultPricing.listPrice | decimal | Default List price of product |
result.defaultPricing.costPrice | decimal | Default costPrice of product |
result.defaultPricing.landingCost | decimal | Default landing cost |
result.defaultPricing.currencySymbol | string | Default current symbol |
result.defaultPricing.currencyCode | string | Default currency code |
result.defaultPricing.taxClass | object of key value pair | Tax class of the product |
result.defaultPricing.taxClass.key | string | Id of the tax class |
result.defaultPricing.taxClass.value | string | Name of the tax class |
result.defaultPricing.lastUpdated | datetime | Last default price updated date time |
result.defaultPricing.isPricelistDynamic | boolean | Whether the pricelist is dynamic or not |
result.defaultPricing.isDefault | boolean | Whether the pricelist is default or not |
result.defaultPricing.isGlobal | boolean | Whether the pricelist is default or not |
result.defaultPricing.sourcePricelist | object of key value pair | Source price list details |
result.defaultPricing.sourcePricelist.key | string | Id of the source pricelist |
result.defaultPricing.sourcePricelist.value | string | Name of the source pricelist |
result.defaultPricing.sameAsMaster | boolean | Whether the default price is same as master or not for child products |
result.defaultPricing.wholeSalePriceList | string | Default wholesale pricelist id |
result.pricelists | List object | List of all different pricelist available |
result.pricelists.pricelist | object of key value pair | Pricelist details |
result.pricelists.pricelist.key | string | Id of the pricelist |
result.pricelists.pricelist.value | string | Name of the pricelist |
result.pricelists.sellPrice | decimal | Sell price inclusive vat |
result.pricelists.sellPriceExcVat | decimal | Sell price exclusive vat |
result.pricelists.listPrice | decimal | List price of product |
result.pricelists.costPrice | decimal | CostPrice of product |
result.pricelists.landingCost | decimal | Landing cost |
result.pricelists.currencySymbol | string | Currency symbol |
result.pricelists.currencyCode | string | Currency code |
result.pricelists.taxClass | object of key value pair | Tax Class |
result.pricelists.taxClass.key | string | Id of the tax class |
result.pricelists.taxClass.value | string | Name of the tax class |
result.pricelists.lastUpdated | datetime | Last price updated date time |
result.pricelists.isPricelistDynamic | boolean | Whether the pricelist is dynamic or not |
result.pricelists.isDefault | boolean | Whether the pricelist is default or not |
result.pricelists.isGlobal | boolean | Whether the pricelist is global or not |
result.pricelists.sourcePricelist | object of key value pair | Source price list details |
result.pricelists.sourcePricelist.key | string | Id of the source pricelist |
result.pricelists.sourcePricelist.value | string | Name of the source pricelist |
result.pricelists.sameAsMaster | boolean | Whether the price is same as master or not for child products |
result.pricelists.wholeSalePriceList | string | Wholesale pricelist id |
result.inventory | object | |
result.inventory.warehouseId | string | Id of the warehouse |
result.inventory.warehouseName | string | Warehouse name |
result.inventory.stockOnHand | int | Available stock on hand of the product |
result.inventory.stockAllocated | int | Total stock allocated for the product |
result.inventory.lastUpdated | datetime | Last date time where inventory is updated |
result.inventory.sellWithoutInventory | boolean | Whether to sell product without inventory or not |
result.inventory.fulfilFromWarehouse | boolean | Whether the product will be fulfilled from warehouse or not |
result.inventory.fulfilFromWarehouseDays | int | No. of days to fulfill the product from warehouse |
result.inventory.fulfilFromStore | boolean | Whether the product is fulfilled from store |
result.inventory.fulfilFromStoreDays | int | No. of days to fulfill the product from store |
result.inventory.fulfilFromSupplier | boolean | Whether the product is fulfilled from the supplier or not |
result.inventory.fulfilFromSupplierDays | int | No. of days to fulfill the product from supplier |
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
Name | Type | Description |
---|---|---|
page | int | Number of the page from the paginated result set, by default it is 1 |
pagesize | int | How many records to be displayed in a page, by default it is 10 |
productIds | string array | Array of product ids (GUIDs) |
fieldCodes | string array | Array of field that are required in the output |
searchFor | int | int of search that are required in the output |
Sample Request
Request
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\"}]"
}
Name | Type | Description |
---|---|---|
Response | Wrapper Model | The global response wrapper object model |
result | object | contains the serialized list of products along with properties requested. |
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
Name | Type | Description |
---|---|---|
name | string | Name of the product |
stockCode | string | StockCode of the product |
description | string | Description of the product |
productCode | string | ProductCode of the product |
shortDescription | string | Short description of the product |
currentStock | int | Available stock of the product |
originCountry | string | Country of origin of the product |
brand | string | Brand of the product |
category | string | Category of the product |
sellPrice | decimal | Sell price of the product inclusive vat |
sellPriceExcVat | decimal | Sell price of the product exclusive vat |
listPrice | decimal | List price of the product |
costPrice | decimal | Cost price of the product |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | ProductId of the newly created product in GUID format. |
Update Product
This endpoint is used to Update details for an existing product in the system.
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
name | string | Name of the product |
stockCode | string | StockCode of the product |
description | string | Description of the product |
productCode | string | ProductCode of the product |
shortDescription | string | Short description of the product |
notes | string | Notes of the product |
brand | string | Brand of the product |
category | string | Category of the product |
currentStock | int | Available stock of the product |
originCountry | string | Country of origin of the product |
sellPrice | decimal | Sell price of the product inclusive vat |
sellPriceExcVat | decimal | Sell price of the product exclusive vat |
listPrice | decimal | List price of the product |
costPrice | decimal | Cost price of the product |
files | object | Array of different files uploaded for the product |
files.recordId | string | Id of the file |
files.mediaType | int | Type of media, ex: 0 for Image, 1 for Video and 2 for PDF. Media type |
files.name | string | Name of the file |
files.url | string | Url of the file |
files.altText | string | AltText of the file |
files.isDefault | boolean | Whether this file is default or not |
files.isActive | boolean | Whether the file is active or not |
files.displayOrder | int | Display order of the file |
files.previewUrl | string | Preview url of the file |
files.isMultiple | boolean | Whether the file has got multiple files |
files.isInternal | object | Whether the file is for internal purpose or not |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Update Launch Date
This endpoint is used to Update the Product Launch date.
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
launchDate | datetime | Launch date to be updated for the product |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Update Status
This endpoint is used to Update status of the Product.
Below are the options that can be used for status:
Status | Value |
---|---|
None | 0 |
Draft | 1 |
Active | 2 |
Archived | 3 |
Discontinued | 4 |
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
StockCode | string | StockCode of the product |
productCode | string | Product code of the product |
status | int | Product status to be updated |
publish | boolean | Whether the product is published or not |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Update Pricelist
This endpoint is used to Update pricelist for specific product.
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
StockCode | string | StockCode of the product |
productCode | string | ProductCode of the product |
pricelistId | string | Id of the pricelist to be mapped to the product |
sellPrice | decimal | Sell price of the product inclusive vat |
sellPriceExcVat | decimal | Sell price the product exclusive vat |
listPrice | decimal | List price of the product |
costPrice | decimal | Cost price of the product |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Update Basic Info
This endpoint is used to Update basic properties of a specific product.
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
name | string | Name of the product |
StockCode | string | StockCode of the product |
productCode | string | ProductCode of the product |
productType | int | Holds the type of product, ex: 1 for product, 2 for Service... etc. Product type |
description | string | Description of the product |
shortDescription | string | Short description the product exclusive vat |
originCountry | string | Country of origin of the product |
hsnCode | string | HSN code of the product |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
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
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
categories | List string | Holds the list of category ids to be mapped with the product |
categories.categoryId | string | Id of the Category or Sub category to be mapped |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
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
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
files | object | Array of different files uploaded for the product |
files.recordId | string | Id of the file |
files.mediaType | int | Type of media, ex: 0 for Image, 1 for Video and 2 for PDF |
files.name | string | Name of the file |
files.url | string | Url of the file |
files.altText | string | Alt text of the file |
files.isDefault | boolean | Whether the file is default or not |
files.isActive | boolean | Whether the file is active or not |
files.displayOrder | int | Display order of the file |
files.previewUrl | string | Preview url of the file |
files.isMultiple | boolean | Whether the file has got multiple files |
files.isInternal | object | Whether the file is for internal purpose or not |
videos | object | Array of different Video files to be updated for the product |
videos.recordId | string | Id of the video |
videos.url | string | Url of the video |
videos.isDefault | boolean | Whether this video is default or not |
videos.displayOrder | int | Display order of the video |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Update Brand
This endpoint is used to Update brand data for an existing product in the system.
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
brandId | string | Id of the brand |
subBrandId | string | Id of the sub-brand |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
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
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
customFieldsWithValues | List object | List object that holds the data of the attribute code and value that needs to be mapped |
customFieldsWithValues.fieldCode | string | Code of the custom attribute |
customFieldsWithValues.fieldValue | string | Value of the custom attribute |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Update Related Products
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
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
relationType | string | Relation type of the mapping |
label | string | Label for the mapping |
relatedProd | object of key value pair | key value pair to hold the related product |
relatedProd.key | string | Id of the product to be mapped as related product |
relatedProd.value | string | StockCode of the product to be mapped as related product |
displayOrder | int | Display order of the related product, where it has to be displayed in list on front end |
copyToVariant | boolean | Whether we need to copy the related products mapping for the variants or not |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Update Tags
This endpoint is used to Update tags for an existing product in the system.
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
tags | List string | List of the tags that need to be updated for the product |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
Generate Variants
This endpoint is used to create a new variant for an existing product.
Request Parameters
Name | Type | Description |
---|---|---|
productId | string | Id of the product to be updated |
variations | list object | List object with the attribute codes on which variant needs to be generated |
variations.fieldCode | string | Code of the custom attribute |
variations.optionValues | list key value pair | Hold key value pair of attribute value options |
variations.optionValues.key | string | Attribute value option name |
variations.optionValues.value | string | Attribute value |
Sample Request
Request
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
}
]
}
}
Name | Type | Description |
---|---|---|
status | string | Holds the status name related to the status code |
error | string | Details of the error if any |
errorId | string | Error code if any error in the process |
message | string | Message to display on front end if any in case of errors/success |
messageCode | string | Response message code |
totalRecords | int | Total number of products in result set |
result | object | Contains the result object can be array of objects or specific object |
result.productId | Guid | Id of the product |
result.variantProducts | List object | object list to hold the variant product details |
result.variantProducts.variantFields | List object | Object list that contains the variant attribute field details |
result.variantProducts.variantFields.fieldCode | string | Code of the custom attribute |
result.variantProducts.variantFields.label | string | Name of the field/attribute |
result.variantProducts.variantFields.value | string | Value of the field or attribute |
result.variantProducts.variant | string | Product Image URL |
result.variantProducts.productCode | string | ProductCode of the product |
result.variantProducts.stockCode | string | StockCode of the product |
result.variantProducts.price | decimal | Product Price |
result.variantProducts.inventory | decimal | Current stock of the product |
result.variantProducts.barCode | string | Barcode of the product |
Delete Variant
This endpoint is used to Delete a variant for an existing product.
Request Parameters
Name | Type | Description |
---|---|---|
productId | Guid | Id of the product |
variantProductId | string | Id of the variant product |
Sample Request
Request
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"
}
Name | Type | Description |
---|---|---|
isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
message | string | Message to display on front end (if any) in case of errors/success |
errors | array | List of error messages, if any |
messageCode | string | Response message code |
recordId | string | Record ID of the object updated / created |
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
Name | Type | Description |
---|---|---|
productId | Guid | Unique id of the product |
Barcode1 | string | Holds value of barcode1 |
Barcode2 | string | Holds value of barcode2 |
Barcode3 | string | Holds value of barcode3 |
Barcode4 | string | Holds value of barcode4 |
Barcode5 | string | Holds value of barcode5 |
Barcode6 | string | Holds value of barcode6 |
Barcode7 | string | Holds value of barcode7 |
Barcode8 | string | Holds value of barcode8 |
Barcode9 | string | Holds value of barcode9 |
Barcode10 | string | Holds value of barcode10 |
Sample Request
Request
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"
}
}
Name | Type | Description |
---|---|---|
status | string | Holds the status name related to the status code |
error | string | Details of the error if any |
errorId | string | Error code if any error in the process |
message | string | Message to display on frontend if any, in case of errors/success |
messageCode | string | Response message code |
result | object | Contains the result object |
result.isValid | boolean | Whether the transaction was successful or failure, true - Success, false - Failure |
result.message | string | Message to display on front end (if any) in case of errors/success |
result.errors | array | List of error messages, if any |
result.messageCode | string | Response message code |
result.recordId | string | Record ID of the object updated / created |