Product Services¶
Overview¶
Product services is used to get data from Xchecker related to Products.
-
This method returns a global list of brands configured in Xchecker.
-
getProductsByProductReferences
This method returns the full product details for a given list of product references.
-
This method returns product details for a given list of part numbers.
-
This method returns product details for a given list of barcodes.
-
getProductsBySAPArticleReferences
This method returns product details for a given list of SAP Article ID's.
-
This method returns product details for a given external node.
Please note that this call could return a lot of data.
-
getProductExternalNodesByInternalEntityReference
This method returns all external nodes that an entities applicated parts belong to.
-
This method returns basic product details for a given set of search criteria.
-
This method returns basic product details for a given set of search criteria.
getProductBrands¶
Method URL¶
/v2/product/getProductBrands
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class simpleRequest { public baseRequest { get; set; } } public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| requestReference | no | You must provide a unique string identifier for this request |
| requestPostedTime | no | Enter the time of the request |
| system | no | "ecat" must be used to correctly filter allowable products |
Body Example¶
{ "baseRequest":{ "requestReference":123456, "requestPostedTime":"2012-04-23T18:25:43.511Z", "system":"ecat" } }
Response Structure¶
public class productBrandsResponse { public baseResponse baseResponse { get; set; } public HashSet<productBrand> brands { get; set; } } public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } } public class productBrand { public long brandReference { get; set; } public string brandName { get; set; } public bool isMasterBrand { get; set; } public string systemName { get; set; } public bool active { get; set; } }
Response Example¶
{ "baseResponse": { "baseRequest": { "requestReference": 0, "requestPostedTime": "2018-09-07T09:39:36.2709196+01:00", "system": null }, "responseTime": "00:00:00.2910714", "resultCode": 0, "resultText": "success" }, "brands": [ { "brandReference": 22503, "brandName": "AB Brand", "isMasterBrand": false, "systemName": "", "active": true }, { "brandReference": 22504, "brandName": "CD Brand", "isMasterBrand": false, "systemName": "", "active": true }, { "brandReference": 22505, "brandName": "ED Brand", "isMasterBrand": false, "systemName": "", "active": true } ] }
getProductsByProductReferences¶
Method URL¶
/v2/product/getProductsByProductReferences
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class productRequest { public baseRequest baseRequest { get; set; } public List<productSearchRequest> searchProducts { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
public class productSearchRequest { public string partNumber { get; set; } public string sapArticleCode { get; set; } public string barcode { get; set; } public string brand { get; set; } public long productReference { get; set; } public string externalNode { get; set; } public string searchOption { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| searchProducts | no | |
| - partNumber | ||
| - sapArticleCode | ||
| - barcode | ||
| - brand | ||
| - productReference | no | Internal Product reference |
| - externalNode | ||
| - searchOption |
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:54:05.515Z", "system": "ecat" }, "searchProducts": [ { "partNumber": "", "sapArticleCode": "", "barcode": "", "brand": "", "productReference": 1234, "externalNode": "", "searchOption": "" }, { "partNumber": "", "sapArticleCode": "", "barcode": "", "brand": "", "productReference": 9876, "externalNode": "", "searchOption": "" } ] }
Response Structure¶
public class productResponse { public baseResponse baseResponse { get; set; } public HashSet<product> products { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
public class product { public long productReference { get; set; } public long categoryReference { get; set; } public string categoryName { get; set; } public long productTypeReference { get; set; } public string productTypeName { get; set; } public string partNumber { get; set; } public string externalReference { get; set; } public string barcode { get; set; } public string sku { get; set; } public string description { get; set; } public string status { get; set; } public Dictionary<string, bool> visibility { get; set; } public bool isKitOrAccessory { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public string brand { get; set; } public bool isParent { get; set; } public bool isChild { get; set; } public bool isClone { get; set; } public long parentProductReference { get; set; } public HashSet<childProduct> childProducts { get; set; } public Dictionary<string, string> criteria { get; set; } public HashSet<kitItem> kitContents { get; set; } public HashSet<xReference> xReferences { get; set; } public HashSet<supercession> supercedes { get; set; } public HashSet<supercession> supercededBy { get; set; } public HashSet<string> externalNodes { get; set; } public HashSet<string> externalURLs { get; set; } public long sortOrder { get; set; } }
public class kitItem { public long productReference { get; set; } public string partNumber { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public long sortOrder { get; set; } }
public class childProduct { public string brand { get; set; } public long productReference { get; set; } public string partNumber { get; set; } public string relationship { get; set; } public long parentProductReference { get; set; } }
public class xReference { public string xRef { get; set; } public string company { get; set; } public string price { get; set; } public string info { get; set; } public string xRefSearch { get; set; } public string xRefType { get; set; } }
public class supercession { public long categoryReference { get; set; } public long productTypeReference { get; set; } public string oldPartNumber { get; set; } public long oldProductFileReference { get; set; } public string newPartNumber { get; set; } public long newProductFileReference { get; set; } public bool searchedOnOldPartNumber { get; set; } }
Response Example¶
getProductsByPartNumbers¶
Method URL¶
/v2/product/getProductsByPartNumbers
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class productRequest { public baseRequest baseRequest { get; set; } public List<productSearchRequest> searchProducts { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
public class productSearchRequest { public string partNumber { get; set; } public string sapArticleCode { get; set; } public string barcode { get; set; } public string brand { get; set; } public long productReference { get; set; } public string externalNode { get; set; } public string searchOption { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| searchProducts | no | |
| - partNumber | no | either full part number or partial dependant upon your searchOption entry. |
| - sapArticleCode | ||
| - barcode | ||
| - brand | yes | optional exact brand name |
| - productReference | ||
| - externalNode | yes | Filter parts to an external node |
| - searchOption | no | one of "exact" or "startswith" or "contains" |
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:54:05.515Z", "system": "ecat" }, "searchProducts": [ { "partNumber": "YBX5096", "sapArticleCode": "", "barcode": "", "brand": "", "productReference": 0, "externalNode": "", "searchOption": "exact" } ] }
Response Structure¶
public class productResponse { public baseResponse baseResponse { get; set; } public HashSet<product> products { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
public class product { public long productReference { get; set; } public long categoryReference { get; set; } public string categoryName { get; set; } public long productTypeReference { get; set; } public string productTypeName { get; set; } public string partNumber { get; set; } public string externalReference { get; set; } public string barcode { get; set; } public string sku { get; set; } public string description { get; set; } public string status { get; set; } public Dictionary<string, bool> visibility { get; set; } public bool isKitOrAccessory { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public string brand { get; set; } public bool isParent { get; set; } public bool isChild { get; set; } public bool isClone { get; set; } public long parentProductReference { get; set; } public HashSet<childProduct> childProducts { get; set; } public Dictionary<string, string> criteria { get; set; } public HashSet<kitItem> kitContents { get; set; } public HashSet<xReference> xReferences { get; set; } public HashSet<supercession> supercedes { get; set; } public HashSet<supercession> supercededBy { get; set; } public HashSet<string> externalNodes { get; set; } public HashSet<string> externalURLs { get; set; } public long sortOrder { get; set; } }
public class kitItem { public long productReference { get; set; } public string partNumber { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public long sortOrder { get; set; } }
public class childProduct { public string brand { get; set; } public long productReference { get; set; } public string partNumber { get; set; } public string relationship { get; set; } public long parentProductReference { get; set; } }
public class xReference { public string xRef { get; set; } public string company { get; set; } public string price { get; set; } public string info { get; set; } public string xRefSearch { get; set; } public string xRefType { get; set; } }
public class supercession { public long categoryReference { get; set; } public long productTypeReference { get; set; } public string oldPartNumber { get; set; } public long oldProductFileReference { get; set; } public string newPartNumber { get; set; } public long newProductFileReference { get; set; } public bool searchedOnOldPartNumber { get; set; } }
Product Response Example¶
{ "baseResponse": { "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:54:05.515Z", "system": "ecat" }, "responseTime": "00:00:02.3833145", "resultCode": 0, "resultText": "success" }, "products": [ { "productReference": 304, "categoryReference": 1, "categoryName": "Batteries", "productTypeReference": 7, "productTypeName": "YUAS", "partNumber": "YBX5096", "externalReference": null, "barcode": null, "sku": null, "description": "Yuasa Batteries", "status": "Yes", "visibility": { "automate": true, "ecat": true }, "isKitOrAccessory": false, "kitOrAccessory": null, "quantity": 1, "brand": "Yuasa", "isParent": true, "isChild": false, "isClone": false, "parentProductReference": 0, "childProducts": [ { "brand": "Yuasa", "productReference": 8000000000304, "partNumber": "HSB096", "relationship": "child", "parentProductReference": 304 }, { "brand": "Yuasa", "productReference": 8001000000304, "partNumber": "096 Lifetime", "relationship": "child", "parentProductReference": 304 } ], "criteria": { "brand": "Yuasa", "length (mm)": "278", "handles": "Yes", "end-Venting": "Yes", "state of Charge indicator": "Yes", "width (mm)": "175", "height (mm)": "190", "rating - 20-Hour Capacity Ah": "80", "rating - CCA A (EN)": "760", "layout": "0", "terminal type": "T1", "base Hold Down": "B3", "mean Weight (with Acid)": "18.8", "voltage (V)": "12", "lid Type": "Block" }, "kitContents": [], "xReferences": [], "supercedes": [], "supercededBy": [], "externalNodes": [], "externalURLs": [], "sortOrder": 6 } ] }
getProductsByBarcodes¶
Method URL¶
/v2/product/getProductsByBarcodes
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class productRequest { public baseRequest baseRequest { get; set; } public List<productSearchRequest> searchProducts { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
public class productSearchRequest { public string partNumber { get; set; } public string sapArticleCode { get; set; } public string barcode { get; set; } public string brand { get; set; } public long productReference { get; set; } public string externalNode { get; set; } public string searchOption { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| searchProducts | no | |
| - partNumber | ||
| - sapArticleCode | ||
| - barcode | no | the required barcode |
| - brand | yes | optional exact brand name |
| - productReference | ||
| - externalNode | ||
| - searchOption | no | one of "exact" or "startswith" or "contains" |
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:57:20.795Z", "system": "ecat" }, "searchProducts": [ { "partNumber": "", "sapArticleCode": "", "barcode": "4047023479419", "brand": "", "productReference": 0, "externalNode": "", "searchOption": "exact" } ] }
Response Structure¶
public class productResponse { public baseResponse baseResponse { get; set; } public HashSet<product> products { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
public class product { public long productReference { get; set; } public long categoryReference { get; set; } public string categoryName { get; set; } public long productTypeReference { get; set; } public string productTypeName { get; set; } public string partNumber { get; set; } public string externalReference { get; set; } public string barcode { get; set; } public string sku { get; set; } public string description { get; set; } public string status { get; set; } public Dictionary<string, bool> visibility { get; set; } public bool isKitOrAccessory { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public string brand { get; set; } public bool isParent { get; set; } public bool isChild { get; set; } public bool isClone { get; set; } public long parentProductReference { get; set; } public HashSet<childProduct> childProducts { get; set; } public Dictionary<string, string> criteria { get; set; } public HashSet<kitItem> kitContents { get; set; } public HashSet<xReference> xReferences { get; set; } public HashSet<supercession> supercedes { get; set; } public HashSet<supercession> supercededBy { get; set; } public HashSet<string> externalNodes { get; set; } public HashSet<string> externalURLs { get; set; } public long sortOrder { get; set; } }
public class kitItem { public long productReference { get; set; } public string partNumber { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public long sortOrder { get; set; } }
public class childProduct { public string brand { get; set; } public long productReference { get; set; } public string partNumber { get; set; } public string relationship { get; set; } public long parentProductReference { get; set; } }
public class xReference { public string xRef { get; set; } public string company { get; set; } public string price { get; set; } public string info { get; set; } public string xRefSearch { get; set; } public string xRefType { get; set; } }
public class supercession { public long categoryReference { get; set; } public long productTypeReference { get; set; } public string oldPartNumber { get; set; } public long oldProductFileReference { get; set; } public string newPartNumber { get; set; } public long newProductFileReference { get; set; } public bool searchedOnOldPartNumber { get; set; } }
###Response Example
``` json
{
"baseResponse": {
"baseRequest": {
"requestReference": 0,
"requestPostedTime": "2019-05-29T09:57:20.795Z",
"system": "ecat"
},
"responseTime": "00:00:00.0636221",
"resultCode": 0,
"resultText": "success"
},
"products": [
{
"productReference": 8000000000247,
"categoryReference": 1,
"categoryName": "Batteries",
"productTypeReference": 7,
"productTypeName": "YUAS",
"partNumber": "HSB012",
"externalReference": "160815",
"barcode": "4047023479419",
"sku": null,
"description": "Yuasa 12V Silver Car Battery HSB012 - 5 Yr Guarantee",
"status": "Yes",
"visibility": {
"automate": true,
"ecat": true
},
"isKitOrAccessory": false,
"kitOrAccessory": null,
"quantity": 1,
"brand": "Yuasa",
"isParent": false,
"isChild": true,
"isClone": true,
"parentProductReference": 247,
"childProducts": [],
"criteria": {
"sapArticleID": "160815",
"sapGenericArticle": "missing",
"sapPriceGBP": "72",
"sapPriceEUR": "86",
"sapStatus": "Current - Available",
"pimBrand": "Yuasa",
"sapVendor": "YUASA BATTERY SALES (UK) LIMITED",
"sapArticleType": "ZSAL",
"pimID": "1374748873084",
"guarantee": "5 Year",
"subGroup": "Silver"
},
"kitContents": [],
"xReferences": [],
"supercedes": [],
"supercededBy": [],
"externalNodes": [
"212578",
"PF100200302"
],
"externalURLs": [
"https://i1.adis.ws/i/washford/160815"
],
"sortOrder": 6
}
]
}
getProductsBySAPArticleReferences¶
Method URL¶
/v2/product/getProductsBySAPArticleReferences
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class productRequest { public baseRequest baseRequest { get; set; } public List<productSearchRequest> searchProducts { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
public class productSearchRequest { public string partNumber { get; set; } public string sapArticleCode { get; set; } public string barcode { get; set; } public string brand { get; set; } public long productReference { get; set; } public string externalNode { get; set; } public string searchOption { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| searchProducts | no | |
| - partNumber | ||
| - sapArticleCode | no | The SAP Article Code |
| - barcode | ||
| - brand | yes | optional exact brand name |
| - productReference | ||
| - externalNode | ||
| - searchOption | no | one of "exact" or "startswith" or "contains" |
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:05:51.433Z", "system": "ecat" }, "searchProducts": [ { "partNumber": "", "sapArticleCode": "161003", "barcode": "", "brand": "", "productReference": 0, "externalNode": "", "searchOption": "exact" } ] }
Response Structure¶
public class productResponse { public baseResponse baseResponse { get; set; } public HashSet<product> products { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
public class product { public long productReference { get; set; } public long categoryReference { get; set; } public string categoryName { get; set; } public long productTypeReference { get; set; } public string productTypeName { get; set; } public string partNumber { get; set; } public string externalReference { get; set; } public string barcode { get; set; } public string sku { get; set; } public string description { get; set; } public string status { get; set; } public Dictionary<string, bool> visibility { get; set; } public bool isKitOrAccessory { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public string brand { get; set; } public bool isParent { get; set; } public bool isChild { get; set; } public bool isClone { get; set; } public long parentProductReference { get; set; } public HashSet<childProduct> childProducts { get; set; } public Dictionary<string, string> criteria { get; set; } public HashSet<kitItem> kitContents { get; set; } public HashSet<xReference> xReferences { get; set; } public HashSet<supercession> supercedes { get; set; } public HashSet<supercession> supercededBy { get; set; } public HashSet<string> externalNodes { get; set; } public HashSet<string> externalURLs { get; set; } public long sortOrder { get; set; } }
public class kitItem { public long productReference { get; set; } public string partNumber { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public long sortOrder { get; set; } }
public class childProduct { public string brand { get; set; } public long productReference { get; set; } public string partNumber { get; set; } public string relationship { get; set; } public long parentProductReference { get; set; } }
public class xReference { public string xRef { get; set; } public string company { get; set; } public string price { get; set; } public string info { get; set; } public string xRefSearch { get; set; } public string xRefType { get; set; } }
public class supercession { public long categoryReference { get; set; } public long productTypeReference { get; set; } public string oldPartNumber { get; set; } public long oldProductFileReference { get; set; } public string newPartNumber { get; set; } public long newProductFileReference { get; set; } public bool searchedOnOldPartNumber { get; set; } }
Response Example¶
{ "baseResponse": { "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:05:51.433Z", "system": "ecat" }, "responseTime": "00:00:00.0475405", "resultCode": 0, "resultText": "success" }, "products": [ { "productReference": 8000000000256, "categoryReference": 1, "categoryName": "Batteries", "productTypeReference": 7, "productTypeName": "YUAS", "partNumber": "HSB096", "externalReference": "161003", "barcode": "4047023479617", "sku": null, "description": "Yuasa 12V Silver Car Battery HSB096 - 5 Yr Guarantee", "status": "Yes", "visibility": { "automate": true, "ecat": true }, "isKitOrAccessory": false, "kitOrAccessory": null, "quantity": 1, "brand": "Yuasa", "isParent": false, "isChild": true, "isClone": true, "parentProductReference": 256, "childProducts": [], "criteria": { "sapArticleID": "161003", "sapGenericArticle": "missing", "sapPriceGBP": "115", "sapPriceEUR": "129", "sapStatus": "Current - Available", "pimBrand": "Yuasa", "sapVendor": "YUASA BATTERY SALES (UK) LIMITED", "sapArticleType": "ZSAL", "pimID": "1374748873056", "guarantee": "5 Year", "subGroup": "Silver" }, "kitContents": [], "xReferences": [], "supercedes": [], "supercededBy": [], "externalNodes": [ "212578", "PF100200302" ], "externalURLs": [ "https://i1.adis.ws/i/washford/161003" ], "sortOrder": 6 } ] }
getProductsByExternalNode¶
Please note that this call could return a lot of data.
Method URL¶
/v2/product/getProductsByExternalNode
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class productNodeRequest { public baseRequest baseRequest { get; set; } public string node { get; set; } public List<string> brands { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| node | no | The external node to return products for |
| brands | yes | list of brands to filter the product list to |
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:06:13.839Z", "system": "ecat" }, "node": "165477", "brands": [ "Saris" ] }
Response Structure¶
public class productResponse { public baseResponse baseResponse { get; set; } public HashSet<product> products { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
public class product { public long productReference { get; set; } public long categoryReference { get; set; } public string categoryName { get; set; } public long productTypeReference { get; set; } public string productTypeName { get; set; } public string partNumber { get; set; } public string externalReference { get; set; } public string barcode { get; set; } public string sku { get; set; } public string description { get; set; } public string status { get; set; } public Dictionary<string, bool> visibility { get; set; } public bool isKitOrAccessory { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public string brand { get; set; } public bool isParent { get; set; } public bool isChild { get; set; } public bool isClone { get; set; } public long parentProductReference { get; set; } public HashSet<childProduct> childProducts { get; set; } public Dictionary<string, string> criteria { get; set; } public HashSet<kitItem> kitContents { get; set; } public HashSet<xReference> xReferences { get; set; } public HashSet<supercession> supercedes { get; set; } public HashSet<supercession> supercededBy { get; set; } public HashSet<string> externalNodes { get; set; } public HashSet<string> externalURLs { get; set; } public long sortOrder { get; set; } }
public class kitItem { public long productReference { get; set; } public string partNumber { get; set; } public string kitOrAccessory { get; set; } public long quantity { get; set; } public long sortOrder { get; set; } }
public class childProduct { public string brand { get; set; } public long productReference { get; set; } public string partNumber { get; set; } public string relationship { get; set; } public long parentProductReference { get; set; } }
public class xReference { public string xRef { get; set; } public string company { get; set; } public string price { get; set; } public string info { get; set; } public string xRefSearch { get; set; } public string xRefType { get; set; } }
public class supercession { public long categoryReference { get; set; } public long productTypeReference { get; set; } public string oldPartNumber { get; set; } public long oldProductFileReference { get; set; } public string newPartNumber { get; set; } public long newProductFileReference { get; set; } public bool searchedOnOldPartNumber { get; set; } }
Response Example¶
{ "baseResponse": { "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:06:13.839Z", "system": "ecat" }, "responseTime": "00:00:00.0484127", "resultCode": 0, "resultText": "success" }, "products": [ { "productReference": 481, "categoryReference": 3, "categoryName": "Cycle Carriers", "productTypeReference": 12, "productTypeName": "CCSA", "partNumber": "1051", "externalReference": "220348", "barcode": "12527002382", "sku": null, "description": "Sentinel (2 Bike)", "status": "Yes", "visibility": { "automate": true, "ecat": true }, "isKitOrAccessory": false, "kitOrAccessory": null, "quantity": 1, "brand": "Saris", "isParent": false, "isChild": false, "isClone": false, "parentProductReference": 0, "childProducts": [], "criteria": { "brand": "Saris", "sap Article Number": "220348", "sapArticleID": "220348", "sapGenericArticle": "missing", "sapPriceGBP": "69.99", "sapPriceEUR": "83.9", "sapStatus": "Current - Available", "pimBrand": "Saris", "sapVendor": "PALIGAP LIMITED A/C NO 0012", "sapArticleType": "ZSAL", "sapDescription": "Saris Sentinel 2 Bike Rear Cycle Carrier", "pimID": "1374748917238", "pack": "SING", "pack Quantity": "1", "web Description": "SARIS: SENTINEL 2 BIKE" }, "kitContents": [], "xReferences": [], "supercedes": [], "supercededBy": [], "externalNodes": [ "165477" ], "externalURLs": [ "https://i1.adis.ws/i/washford/220348" ], "sortOrder": 3 }, { "productReference": 482, "categoryReference": 3, "categoryName": "Cycle Carriers", "productTypeReference": 12, "productTypeName": "CCSA", "partNumber": "1052", "externalReference": "220355", "barcode": "12527002399", "sku": null, "description": "Sentinel (3 Bike)", "status": "Yes", "visibility": { "automate": true, "ecat": true }, "isKitOrAccessory": false, "kitOrAccessory": null, "quantity": 1, "brand": "Saris", "isParent": false, "isChild": false, "isClone": false, "parentProductReference": 0, "childProducts": [], "criteria": { "brand": "Saris", "sap Article Number": "220355", "sapArticleID": "220355", "sapGenericArticle": "missing", "sapPriceGBP": "79.99", "sapPriceEUR": "95.8", "sapStatus": "Current - Available", "pimBrand": "Saris", "sapVendor": "RALEIGH UK LIMITED", "sapArticleType": "ZSAL", "sapDescription": "Saris Sentinel 3 Bike Rear Cycle Carrier", "pimID": "1374748924737", "pack": "SING", "pack Quantity": "1", "web Description": "SARIS: SENTINEL 3 BIKE" }, "kitContents": [], "xReferences": [], "supercedes": [], "supercededBy": [], "externalNodes": [ "165477" ], "externalURLs": [ "https://i1.adis.ws/i/washford/220355" ], "sortOrder": 3 }, { "productReference": 484, "categoryReference": 3, "categoryName": "Cycle Carriers", "productTypeReference": 12, "productTypeName": "CCSA", "partNumber": "313B", "externalReference": "631444", "barcode": "12527009879", "sku": null, "description": "Bike Porter Trunk 3", "status": "Deleted from range", "visibility": { "automate": true, "ecat": true }, "isKitOrAccessory": false, "kitOrAccessory": null, "quantity": 1, "brand": "Saris", "isParent": false, "isChild": false, "isClone": false, "parentProductReference": 0, "childProducts": [], "criteria": { "brand": "Saris", "sap Article Number": "631444", "sapArticleID": "631444", "sapGenericArticle": "missing", "sapPriceGBP": "127", "sapPriceEUR": "159", "sapStatus": "Obsolete", "pimBrand": "Saris", "sapVendor": "RALEIGH UK LIMITED", "sapArticleType": "ZSAL", "sapDescription": "Saris Bike Porter 3 Bike Rear Cycle Carrier", "pimID": "1376686884325", "pack": "SING", "pack Quantity": "1", "web Description": "SARIS: BIKE PORTER 313" }, "kitContents": [], "xReferences": [], "supercedes": [], "supercededBy": [], "externalNodes": [ "165477" ], "externalURLs": [ "https://i1.adis.ws/i/washford/631444" ], "sortOrder": 3 } ] }
getProductExternalNodesByInternalEntityReference¶
Method URL¶
/v2/product/getProductExternalNodesByInternalEntityReference
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class productNodesByEntityRequest { public baseRequest baseRequest { get; set; } public long internalEntityReference { get; set; } public List<string> brands { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| internalEntityReference | no | The entity internal reference to find associated product external nodes for |
| brands | yes | list of brands to filter the product list to |
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:06:31.515Z", "system": "ecat" }, "internalEntityReference": 146450, "brands": [ "" ] }
Response Structure¶
public class productExternalNodeResponse { public baseResponse baseResponse { get; set; } public HashSet<string> externalNodes { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
Response Example¶
{ "baseResponse": { "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-05-29T09:06:31.515Z", "system": "ecat" }, "responseTime": "00:00:00.0082905", "resultCode": 0, "resultText": "success" }, "externalNodes": [ "165477", "165632", "255218", "255224", "165581", "165620", "212455", "PF100200301", "255220", "165618", "202001" ] }
searchProducts¶
Method URL¶
/v2/product/searchProducts
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class searchRequest { public baseRequest baseRequest { get; set; } public string partNumber { get; set; } public string partDescription { get; set; } public string brandName { get; set; } public decimal priceGBPLower { get; set; } public decimal priceGBPUpper { get; set; } public decimal priceEURLower { get; set; } public decimal priceEURUpper { get; set; } public string vendor { get; set; } public string vendorReference { get; set; } public string sapID { get; set; } public string barcode { get; set; } public string externalNode { get; set; } public int skip { get; set; } public int take { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| partNumber | yes | Part number to search for |
| partDescription | yes | Part description to search for |
| brandName | yes | Product brand name to search for |
| priceGBPLower | yes | |
| priceGBPUpper | yes | |
| priceEURLower | yes | |
| priceEURUpper | yes | |
| vendor | yes | The vendor name to search for |
| vendorReference | yes | The vendor reference to search for |
| sapID | yes | |
| barcode | yes | |
| externalNode | yes | The PIM leaf node to search for |
| skip | no | The number of returned records to skip over |
| take | no | The number of records to return |
This method uses various Elasticsearch techniques to enable the following:
1. Case insensitive queries 2. Allows ordered phrases. e.g ‘CANE CREEK’ but not ‘CREEK CRANE’ 3. Allows trailing wildcard (‘*') 4. Does ascii folding (accented characters converted to basic ascii set) for simpler queries 5. Allows sort on brandName and partNumber
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-06-19T12:49:53.467Z", "system": "ecat" }, "partNumber": "", "partDescription": "bar", "brandName": "thule", "priceGBPLower": 0, "priceGBPUpper": 0, "priceEURLower": 0, "priceEURUpper": 0, "vendor": "", "vendorReference": "", "sapID": "", "barcode": "", "externalNode": "", "skip": 0, "take": 10 }
Response Structure¶
public class searchResponse { public baseResponse baseResponse { get; set; } public long total { get; set; } public int skipped { get; set; } public int took { get; set; } public List<searchItem> hits { get; set; } }
public class searchItem { public long internalPartReference { get; set; } public string partNumber { get; set; } public string brandName { get; set; } public string partDescription { get; set; } public List<string> partCriteria { get; set; } public string vendor { get; set; } public string vendorReference { get; set; } public string vendorPartReference { get; set; } public string vendorPartNumber { get; set; } public string vendorBrandName { get; set; } public string vendorPartDescription { get; set; } public string externalPartReference { get; set; } public string externalPartNumber { get; set; } public string externalPartBrand { get; set; } public string externalPartDescription { get; set; } public string barcode { get; set; } public string groupIdentifierLevel1 { get; set; } ; public string groupIdentifierLevel2 { get; set; } public double priceGBP { get; set; } public double priceEUR { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
Response Example¶
{ "baseResponse": { "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-06-19T12:49:53.467Z", "system": "string" }, "responseTime": "00:00:00", "resultCode": 0, "resultText": null }, "total": 23, "skipped": 0, "took": 10, "hits": [ { "internalPartReference": 69146, "partNumber": "", "brandName": "Thule", "partDescription": "Thule Slide Bar 892", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "286273", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule Slide Bar 892", "barcode": "7313020009650", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 250, "priceEUR": 300 }, { "internalPartReference": 69147, "partNumber": "", "brandName": "Thule", "partDescription": "Thule Slide Bar 893", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "286281", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule Slide Bar 893", "barcode": "7313020009667", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 285, "priceEUR": 342 }, { "internalPartReference": 69145, "partNumber": "", "brandName": "Thule", "partDescription": "Thule Slide Bar 891", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "286265", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule Slide Bar 891", "barcode": "7313020009643", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 230, "priceEUR": 276 }, { "internalPartReference": 69171, "partNumber": "", "brandName": "Thule", "partDescription": "Thule ProBar 3921 Roof Bar, 1-pack", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "729420", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule ProBar 3921 Roof Bar, 1-pack", "barcode": "missing", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 80, "priceEUR": 96 }, { "internalPartReference": 69149, "partNumber": "", "brandName": "Thule", "partDescription": "Thule ProBar 391 Roof Bar, 2-pack", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "729396", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule ProBar 391 Roof Bar, 2-pack", "barcode": "missing", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 140, "priceEUR": 168 }, { "internalPartReference": 69151, "partNumber": "", "brandName": "Thule", "partDescription": "Thule ProBar 393 Roof Bar, 2-pack", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "729446", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule ProBar 393 Roof Bar, 2-pack", "barcode": "missing", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 175, "priceEUR": 210 }, { "internalPartReference": 69159, "partNumber": "", "brandName": "Thule", "partDescription": "Thule Roof Bar 765 (Pack of 2)", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "436659", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule Roof Bar 765 (Pack of 2)", "barcode": "7313021016336", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 85, "priceEUR": 102 }, { "internalPartReference": 68251, "partNumber": "", "brandName": "Thule", "partDescription": "Thule Roof Bar 763 (Pack of 2)", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "151084", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule Roof Bar 763 (Pack of 2)", "barcode": "5015025151083", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 44, "priceEUR": 52.8 }, { "internalPartReference": 69135, "partNumber": "961", "brandName": "Thule", "partDescription": "Thule Wing Bar 961 (Pack of 2)", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "304920", "externalPartNumber": "961", "externalPartBrand": "", "externalPartDescription": "Thule Wing Bar 961 (Pack of 2)", "barcode": "7313020055619", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 83, "priceEUR": 99 }, { "internalPartReference": 69148, "partNumber": "", "brandName": "Thule", "partDescription": "Thule ProBar 390 Roof Bar, 2-pack", "partCriteria": [], "vendor": "THULE OUTDOOR LTD", "vendorReference": "T8276U", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "729263", "externalPartNumber": "", "externalPartBrand": "", "externalPartDescription": "Thule ProBar 390 Roof Bar, 2-pack", "barcode": "missing", "groupIdentifierLevel1": "Roof Bars", "groupIdentifierLevel2": "Thule Roof Bars", "priceGBP": 140, "priceEUR": 168 } ] }
searchProductsWild¶
Method URL¶
/v2/product/searchProductsWild
Type¶
POST
Consumes¶
application/json
Produces¶
application/json
Body Structure¶
public class searchRequest { public baseRequest baseRequest { get; set; } public string query { get; set; } public int skip { get; set; } public int take { get; set; } }
public class baseRequest { public long requestReference { get; set; } public DateTime requestPostedTime { get; set; } public string system { get; set; } }
Body Fields¶
| Field | Optional | Description |
|---|---|---|
| baseRequest.requestReference | no | You must provide a unique string identifier for this request |
| baseRequest.requestPostedTime | no | Enter the time of the request |
| baseRequest.system | no | "ecat" must be used to correctly filter allowable products |
| query | no | The query term to search for in the partNumber and partDescription fields |
| skip | no | The number of returned records to skip over |
| take | no | The number of records to return |
Body Example¶
{ "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-06-20T15:25:59.250Z", "system": "ecat" }, "query": "motor* 6v bulb", "skip": 0, "take": 10 }
Response Structure¶
public class searchResponse { public baseResponse baseResponse { get; set; } public long total { get; set; } public int skipped { get; set; } public int took { get; set; } public List<searchItem> hits { get; set; } }
public class searchItem { public long internalPartReference { get; set; } public string partNumber { get; set; } public string brandName { get; set; } public string partDescription { get; set; } public List<string> partCriteria { get; set; } public string vendor { get; set; } public string vendorReference { get; set; } public string vendorPartReference { get; set; } public string vendorPartNumber { get; set; } public string vendorBrandName { get; set; } public string vendorPartDescription { get; set; } public string externalPartReference { get; set; } public string externalPartNumber { get; set; } public string externalPartBrand { get; set; } public string externalPartDescription { get; set; } public string barcode { get; set; } public string groupIdentifierLevel1 { get; set; } ; public string groupIdentifierLevel2 { get; set; } public double priceGBP { get; set; } public double priceEUR { get; set; } }
public class baseResponse { public baseRequest baseRequest { get; set; } public TimeSpan responseTime { get; set; } public long resultCode { get; set; } public string resultText { get; set; } }
Response Example¶
{ "baseResponse": { "baseRequest": { "requestReference": 0, "requestPostedTime": "2019-06-20T15:25:59.25Z", "system": "ecat" }, "responseTime": "00:00:00", "resultCode": 0, "resultText": null }, "total": 5, "skipped": 0, "took": 5, "hits": [ { "internalPartReference": 1110, "partNumber": "HMB293", "brandName": "Halfords", "partDescription": "Halfords Bike it Motorcycle Bulb HMB293 6v 4w", "partCriteria": [], "vendor": "RING AUTOMOTIVE LTD", "vendorReference": "R0602V", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "551366", "externalPartNumber": "HMB293", "externalPartBrand": "", "externalPartDescription": "Halfords Bike it Motorcycle Bulb HMB293 6v 4w", "barcode": "5015025551364", "groupIdentifierLevel1": "Bulbs", "groupIdentifierLevel2": "BLBMC", "priceGBP": 1.99, "priceEUR": 2.99 }, { "internalPartReference": 1117, "partNumber": "HMB393", "brandName": "Halfords", "partDescription": "Halfords Bike it Motorcycle Bulb HMB393 6v 35/35w", "partCriteria": [], "vendor": "RING AUTOMOTIVE LTD", "vendorReference": "R0602V", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "550848", "externalPartNumber": "HMB393", "externalPartBrand": "", "externalPartDescription": "Halfords Bike it Motorcycle Bulb HMB393 6v 35/35w", "barcode": "5015025550848", "groupIdentifierLevel1": "Bulbs", "groupIdentifierLevel2": "BLBMC", "priceGBP": 4.49, "priceEUR": 6.49 }, { "internalPartReference": 1116, "partNumber": "HMB392", "brandName": "Halfords", "partDescription": "Halfords Bike it Motorcycle Bulb HMB392 6v 25/25w", "partCriteria": [], "vendor": "RING AUTOMOTIVE LTD", "vendorReference": "R0602V", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "550822", "externalPartNumber": "HMB392", "externalPartBrand": "", "externalPartDescription": "Halfords Bike it Motorcycle Bulb HMB392 6v 25/25w", "barcode": "5015025550824", "groupIdentifierLevel1": "Bulbs", "groupIdentifierLevel2": "BLBMC", "priceGBP": 4.49, "priceEUR": 6.49 }, { "internalPartReference": 1112, "partNumber": "HMB3625", "brandName": "Halfords", "partDescription": "Halfords Bike it Motorcycle Bulb HMB3625 6v 25/25w", "partCriteria": [], "vendor": "RING AUTOMOTIVE LTD", "vendorReference": "R0602V", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "551093", "externalPartNumber": "HMB3625", "externalPartBrand": "", "externalPartDescription": "Halfords Bike it Motorcycle Bulb HMB3625 6v 25/25w", "barcode": "5015025551098", "groupIdentifierLevel1": "Bulbs", "groupIdentifierLevel2": "BLBMC", "priceGBP": 3.49, "priceEUR": 5.49 }, { "internalPartReference": 1115, "partNumber": "HMB384", "brandName": "Halfords", "partDescription": "Halfords Bike it Motorcycle Bulb HMB384 6v 21/5w", "partCriteria": [], "vendor": "RING AUTOMOTIVE LTD", "vendorReference": "R0602V", "vendorPartReference": "", "vendorPartNumber": "", "vendorBrandName": "", "vendorPartDescription": "", "externalPartReference": "551358", "externalPartNumber": "HMB384", "externalPartBrand": "", "externalPartDescription": "Halfords Bike it Motorcycle Bulb HMB384 6v 21/5w", "barcode": "5015025551357", "groupIdentifierLevel1": "Bulbs", "groupIdentifierLevel2": "BLBMC", "priceGBP": 1.99, "priceEUR": 2.99 } ] }