Skip to content

Product Services

Overview

Product services is used to get data from Xchecker related to Products.

  • v1/product/getproductcategories

    This method returns a list of product categories configured in Xchecker. Product Categories are the highest level of organisation of parts in Xchecker.

  • v1/product/getproducttypesbycategory

    This method returns a list of productTypes (shortcodes in Xchecker) for a given category name. It can optionally include all criteria available per productType. Product Types are the second level of organisation of parts in Xchecker and each Product Type can only belong to one Category.

  • v1/product/getproducttypesbycategoryreference

    This method returns a list of productTypes (shortcodes in Xchecker) for a given category reference. It can optionally include all criteria available per productType. Product Types are the second level of organisation of parts in Xchecker and each Product Type can only belong to one Category.

  • v1/product/getproducttypesbyinternalentityreference

    This method returns a list of productTypes (shortcodes in Xchecker) that the given entity/vehicle has applicated to it. This can be used to show a list of available productTypes for a selected entity/vehicle.

  • v3/product/getproducttypesbyinternalentityreference

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    This version uses advanced search functionality instead of SQL.

  • v4/product/getproducttypesbyinternalentityreference

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    This version uses advanced search functionality instead of SQL. Includes Applicated count - only returns applicated product types.

  • v5/product/getproducttypesbyinternalentityreference

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    This version uses advanced search functionality instead of SQL. Includes Applicated count - returns applicated and non-applicated product types.

  • v1/product/getexpandedproducttypesbyinternalentityreference

    This method returns a list of productTypes (Xchecker shortcodes) that the given entity/vehicle has applicated to it. This can be used to show a list of available productTypes and brands for a selected entity/vehicle. This method is expanded to return the brands and filtered criteria found on the Product Types

  • v1/product/getproductbrands

    This method returns a list of brands configured in Xchecker.

  • v2/product/getproductassignedbrands

    This method returns a list of brands configured and applicated in Xchecker.

  • v1/product/getproductsbypartnumbers

    This method returns the full product details for a given list of part numbers.

  • v2/product/getproductsbypartnumbers

    This method returns the full product details for a given list of part numbers. It includes several search options (exact, startswith, contains).

    The v2 includes parentProductReference

  • v3/product/getproductsbypartnumbers

    This method returns the full product details for a given list of part numbers. It includes several search options (exact, startswith, contains).

    The v3 includes criteria and tags

  • v1/product/getproductsbyproductreferences

    This method returns the full product details for a given list of product references.

  • v3/product/getproductsbyproductreferences

    This method returns the full product details for a given list of product references.

    The v3 includes criteria and tags

  • v1/product/getproductsbybarcodes

    This method returns the full product details for a given list of barcodes. It includes several search options. Barcodes must be configured in Xchecker.

  • v1/product/getproductsbyexternalreferences

    This method returns the full product details for a given list of external references. It includes several search options. External references must be configured in your Xchecker.

  • v1/product/getproductsbysku

    This method returns the full product details for a given list of SKU's. It includes several search options. SKU's must be configured in your Xchecker.

  • v1/product/getproductsbycrossreference

    This method returns the full product details for a given list of cross references's. It includes several search options.

  • v2/product/getproductsbycrossreference

    Under construction

  • v1/product/getproductsbyadvancedsearch

    This method is similar to the other product search methods but allows for filtering by entity/vehicle and criteria values.

  • v1/product/getproductkitcontents

    This method returns all products contained within a kit.

  • v1/product/getabbreviatedproductsbyproducttype

    Returns an abbreviated list of products by product types. This can return a lot of data so should be used carefully. It is suggested that you cache the response of this call and not repeatedly call it. It is expected that this is used in specialised screens in Product Finder type of applications.

  • v1/product/getabbreviatedproductsbyproducttypereference

    Returns an abbreviated list of products by product type references. This can return a lot of data so should be used carefully. It is suggested that you cache the response of this call and not repeatedly call it. It is expected that this is used in specialised screens in Product Finder type of applications.

  • v1/product/getproductsbyinternalentityreference

    This method returns all products fitted to a entity/vehicle. It can be filtered to Product Types.

  • v3/product/getproductsbyinternalentityreference

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    This method returns all products fitted to a entity/vehicle. It can be filtered to Product Types.

    The v3 includes criteria and tags

  • v4/product/getproductsbyinternalentityreference

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    Same as v3 except includes applicatedCount

  • /v2/product/getproducttypecriteriavalues

    Under construction

  • /v2/product/getproductsbyproductcriteria

    Under construction

  • v1/product/searchproductsfiltered

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    This method is an advanced search function that utilises some of the more complex features of ElasticSearch. It allows multiple product search terms as well as a single find-all term. It can also filter the results for many of the product attributes. The single search term can be configured to allow for fuzzy searches as well as synonyms and word root searches.

  • v2/product/searchproductsfiltered

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    This updated method allows for the search to be additionally filtered by internal entity reference

  • v1/product/searchproducts

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    Under construction

  • v1/product/searchproductswild

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    Under construction

  • v1/product/searchproductsdescription

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    Under construction

  • v1/product/searchproductssummary

    This method requires advanced search to be configured. Please contact your local Elcome representative for more details.

    Under construction


getProductCategories

Method URL

/v1/product/getproductcategories

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
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

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    }
}

Response Structure

public class productCategoryResponse
{
    public baseResponse baseResponse { get; set; } 
    public HashSet<productCategory> categories { 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 productCategory
{
    public long categoryReference { get; set; }
    public string categoryName { get; set; }
}


getProductTypesByCategory

Method URL

/v1/product/getproducttypesbycategory

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

public class productTypeRequest
{
    public baseRequest baseRequest { get; set; }
    public string productCategory { get; set; }
    public long productCategoryReference { get; set; }
    public bool includeAvailableCriteria { 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
productCategory no The product category name you want ProductTypes for
productCategoryReference yes not required for this method
includeAvailableCriteria no Set to "true" if you want available criteria returned with this call. Please note that including all used criteria significantly slows down the call.

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "productCategory":"Radiators",
    "productCategoryReference": 0,
    "includeAvailableCriteria": "true"
}

Response Structure

public class productTypesResponse
{
    public baseResponse baseResponse { get; set; }
    public List<productType> productTypes { 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 productType
{
    public long categoryReference { get; set; }
    public string categoryName { get; set; }
    public long productTypeReference { get; set; }
    public string productTypeName { get; set; }
    public string productTypeDescription { get; set; }
    public string externalProductTypeReference { get; set; }
    public string externalProductTypeName { get; set; }
    public long sortOrder { get; set; }
    public List<criteria> criteria { get; set; } 
}

public class criteria
{
    public string type { get; set; }
    public long criteriaReference { get; set; }
    public long groupReference { get; set; }
    public string groupName { get; set; }
    public string name { get; set; }
    public string externalName { get; set; }
    public string valueType { get; set; }
    public string value { get; set; }
    public string reference { get; set; }
}


getProductTypesByCategoryReference

Method URL

/v1/product/getproducttypesbycategoryreference

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

public class productTypeRequest
{
    public baseRequest baseRequest { get; set; }
    public string productCategory { get; set; }
    public long productCategoryReference { get; set; }
    public bool includeAvailableCriteria { 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
productCategory yes not required for this method
productCategoryReference yes The product category Reference you want ProductTypes for
includeAvailableCriteria no Set to "true" if you want available criteria returned with this call. Please note that including all used criteria significantly slows down the call.

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "productCategory":"",
    "productCategoryReference": 20,
    "includeAvailableCriteria": "false"
}

Response Structure

public class productTypesResponse
{
    public baseResponse baseResponse { get; set; }
    public List<productType> productTypes { 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 productType
{
    public long categoryReference { get; set; }
    public string categoryName { get; set; }
    public long productTypeReference { get; set; }
    public string productTypeName { get; set; }
    public string productTypeDescription { get; set; }
    public string externalProductTypeReference { get; set; }
    public string externalProductTypeName { get; set; }
    public long sortOrder { get; set; }
    public List<criteria> criteria { get; set; } 
}

public class criteria
{
    public string type { get; set; }
    public long criteriaReference { get; set; }
    public long groupReference { get; set; }
    public string groupName { get; set; }
    public string name { get; set; }
    public string externalName { get; set; }
    public string valueType { get; set; }
    public string value { get; set; }
    public string reference { get; set; }
}


getProductTypesByInternalEntityReference

Method URL

/v1/product/getproducttypesbyinternalentityreference

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

public class productTypesByInternalVehicleReferenceRequest
{
    public baseRequest baseRequest { get; set; }
    public int indexReference { get; set; }
    public long internalVehicleReference { get; set; }
    public long productTypeReference { get; set; }
    public bool includeAvailableCriteria { 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
indexReference no Reference to the index for which entries will be returned
internalVehicleReference no The internal vehicle reference you want product types for
productTypeReference no not used
includeAvailableCriteria no Set to "true" if you want available criteria returned with this call. Please note that this significantly slows the call.

Body Example (get all ProductTypes for all products that are applicated to this vehicle)

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "indexReference": 1,
    "internalVehicleReference": 8779,
    "includeAvailableCriteria": false
} 

Response Structure

public class productTypesResponse
{
    public baseResponse baseResponse { get; set; }
    public List<productType> productTypes { 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 productType
{
    public long categoryReference { get; set; }
    public string categoryName { get; set; }
    public long productTypeReference { get; set; }
    public string productTypeName { get; set; }
    public string productTypeDescription { get; set; }
    public string externalProductTypeReference { get; set; }
    public string externalProductTypeName { get; set; }
    public long sortOrder { get; set; }
    public List<criteria> criteria { get; set; } 
}

public class criteria
{
    public string type { get; set; }
    public long criteriaReference { get; set; }
    public long groupReference { get; set; }
    public string groupName { get; set; }
    public string name { get; set; }
    public string externalName { get; set; }
    public string valueType { get; set; }
    public string value { get; set; }
    public string reference { get; set; }
}


getExpandedProductTypesByInternalEntityReference

Method URL

/v1/product/getexpandedproducttypesbyinternalentityreference

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

public class productTypesExpandedByInternalVehicleReferenceRequest
{
    public baseRequest baseRequest { get; set; }
    public int indexReference { get; set; }
    public long internalVehicleReference { get; set; }
    public long productTypeReference { get; set; }
    public bool includeAvailableCriteria { get; set; }
    public string criteriaNameFilter { 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
indexReference no Reference to the index for which entries will be returned
internalVehicleReference no The internal vehicle reference you want product types for
productTypeReference no not used
includeAvailableCriteria no Set to "true" if you want available criteria returned with this call. Please note that this significantly slows the call.
criteriaNameFilter no Text to filter the returned criteria by method Contains.

Body Example

{
  "baseRequest": {
    "requestReference": 0,
    "requestPostedTime": "2018-11-21T13:29:06.131Z",
    "system": "ecat"
  },
  "indexReference": 1,
  "internalVehicleReference": 123456,
  "productTypeReference": 0,
  "includeAvailableCriteria": true,
  "criteriaNameFilter": "fitting"
}

Response Structure

public class productTypeExpandedResponse
{
    public baseResponse baseResponse { get; set; } = new baseResponse();
    public HashSet<productTypeExpanded> productTypes { get; set; } = new HashSet<productTypeExpanded>();
}

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 productTypeExpanded
{
    public long categoryReference { get; set; }
    public string categoryName { get; set; }
    public long productTypeReference { get; set; }
    public string productTypeName { get; set; }
    public string productTypeDescription { get; set; }
    public string externalProductTypeReference { get; set; }
    public string externalProductTypeName { get; set; }
    public long sortOrder { get; set; }
    public List<productBrand> brand { get; set; } = new List<productBrand>();
    public List<criteria> productCriteria { get; set; } = new List<criteria>();
    public List<criteria> applicationCriteria { get; set; } = new List<criteria>();
}

public class productBrand
{
    public long brandReference { get; set; }
    public string brandName { get; set; }
    public bool isMasterBrand { get; set; }
    public string systemName { get; set; }
}

public class criteria
{
    public string type { get; set; }
    public long criteriaReference { get; set; }
    public long groupReference { get; set; }
    public string groupName { get; set; }
    public string name { get; set; }
    public string externalName { get; set; }
    public string valueType { get; set; }
    public string value { get; set; }
    public string reference { get; set; }
}


getProductBrands

Method URL

/v1/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; }
}


getProductAssignedBrands

Method URL

/v2/product/getproductassignedbrands

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; }
}


getProductsByPartNumbers

Method URL

/v1/product/getproductsbypartnumbers

/v2/product/getproductsbypartnumbers

/v3/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 bool includeChildren { get; set; } 
    public bool includeCrossReferences { get; set; } 
    public bool includeSupercessions { 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 barcode { get; set; } 
    public string externalReference { get; set; } 
    public string sku { get; set; } 
    public string brand { get; set; } 
    public string crossReference { get; set; } 
    public long productReference { get; set; } 
    public long productTypeReference { get; set; } 
    public string searchOption { 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
searchProducts no
- partNumber no either full part number or partial dependant upon your searchOption entry.
- barcode
- externalReference
- sku
- brand yes optional exact brand name
- productReference
- productTypeReference yes optional productTypeReference
- searchOption no one of "exact" or "startswith" or "contains"

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "searchProducts":[{
        "partNumber": "CONDENSER1",
“barcode”:””,
"externalReference":"",
"sku":"",
        "brand": "",
        "productReference": 0,
        "productTypeReference": 14,
        "searchOption": "startswith"
    },
    {
        "partNumber": "FILTER1",
        “barcode”:””,
"externalReference":"",
"sku":"",
"brand": "",
        "productReference": 0,
        "productTypeReference": 56,
        "searchOption": "exact"
    }]
}

Response Structure

public class productResponse
{
    public baseResponse baseResponse { get; set; } 
    public HashSet<product or productV2 or productV3> 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 long sortOrder { get; set; }
}

If called using v2:
public class productV2 : product
    {
        public List<long>? parentProductReference { get; set; }
    }

If called using v3: 
public class productV3 : productV2
    {
        public List<CriteriaV3>? criteria { get; set; }
        public List<Tag>? tags { 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 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 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; }
}

public class criteria
{
    public string? type { get; set; }
    public long criteriaReference { get; set; }
    public long groupReference { get; set; }
    public string? groupName { get; set; }
    public string? name { get; set; }
    public string? externalName { get; set; }
    public string? valueType { get; set; }
    public string? value { get; set; }
    public string? reference { get; set; }
}

public class CriteriaV3 : criteria
    {
        public List<CriteriaFlags>? criteriaFlags { get; set; }
    }


getProductsByProductReferences

Method URL

/v1/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 bool includeChildren { get; set; } 
    public bool includeCrossReferences { get; set; } 
    public bool includeSupercessions { 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 barcode { get; set; } 
    public string externalReference { get; set; } 
    public string sku { get; set; } 
    public string brand { get; set; } 
    public string crossReference { get; set; } 
    public long productReference { get; set; } 
    public long productTypeReference { get; set; } 
    public string searchOption { 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
searchProducts
- partNumber not used
- barcode not used
- externalReference not used
- sku not used
- brand not used
- productReference no The internal product reference
- productTypeReference not used - set to 0
- searchOption not used

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "searchProducts":[{
        "partNumber": "",
        "barcode":"",
        "externalReference":"",
        "sku":"",
        "brand": "",
        "productReference": 45833,
        "productTypeReference": 0,
        "searchOption": ""
    },
    {
        "partNumber": "",
        "barcode":"",
        "externalReference":"",
        "sku":"",
        "brand": "",
        "productReference": 45835,
        "productTypeReference": 0,
        "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 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 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 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; }
}


getProductsByBarcodes

Method URL

/v1/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 bool includeChildren { get; set; } 
    public bool includeCrossReferences { get; set; } 
    public bool includeSupercessions { 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 barcode { get; set; } 
    public string externalReference { get; set; } 
    public string sku { get; set; } 
    public string brand { get; set; } 
    public string crossReference { get; set; } 
    public long productReference { get; set; } 
    public long productTypeReference { get; set; } 
    public string searchOption { 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
searchProducts no
- partNumber
- barcode no The required barcode, partial or full dependant upon searchOption
- externalReference
- sku
- brand yes optional exact brand name
- productReference
- productTypeReference yes optional productType reference
- searchOption no one of "exact" or "startswith" or "contains"

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "searchProducts":[{
        "partNumber": "",
        “barcode”:123456789,
"externalReference":"",
"sku":"",
        "brand": "",
        "productReference": 0,
        "productTypeReference": 0,
        "searchOption": "exact"
    },
    {
        "partNumber": "",
“barcode”:987654321””,
"externalReference":"",
"sku":"",
        "brand": "",
        "productReference": 0,
        "productTypeReference": 0,
        "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 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 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 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; }
}


getProductsByExternalReferences

Method URL

/v1/product/getproductsbyexternalreferences

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 bool includeChildren { get; set; } 
    public bool includeCrossReferences { get; set; } 
    public bool includeSupercessions { 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 barcode { get; set; } 
    public string externalReference { get; set; } 
    public string sku { get; set; } 
    public string brand { get; set; } 
    public string crossReference { get; set; } 
    public long productReference { get; set; } 
    public long productTypeReference { get; set; } 
    public string searchOption { 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
searchProducts no
- partNumber
- barcode
- externalReference no The external reference of the product (such as SAPID)
- sku
- brand yes optional exact brand name
- productReference
- productTypeReference yes optional productType reference
- searchOption no one of "exact" or "startswith" or "contains"

Body Example

`` json { "baseRequest":{ "requestReference":123456, "requestPostedTime":"2012-04-23T18:25:43.511Z", "system":"ecat" }, "searchProducts":[{ "partNumber": "", “barcode”:””, "externalReference":"12345", "sku":"", "brand": "", "productReference": 0, "productTypeReference": 0, "searchOption": "exact" }, { "partNumber": "", “barcode”:987654321””, "externalReference":"12346", "sku":"", "brand": "", "productReference": 0, "productTypeReference": 0, "searchOption": "exact" }] }

###Response Structure
``` c#
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 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 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 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; }
}


getProductsBySKU

Method URL

/v1/product/getproductsbysku

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 bool includeChildren { get; set; } 
    public bool includeCrossReferences { get; set; } 
    public bool includeSupercessions { 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 barcode { get; set; } 
    public string externalReference { get; set; } 
    public string sku { get; set; } 
    public string brand { get; set; } 
    public string crossReference { get; set; } 
    public long productReference { get; set; } 
    public long productTypeReference { get; set; } 
    public string searchOption { 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
searchProducts no
- partNumber
- barcode
- externalReference
- sku no the SKU of the required product
- brand yes optional exact brand name
- productReference
- productTypeReference yes optional productType reference
- searchOption no one of "exact" or "startswith" or "contains"

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "searchProducts":[{
        "partNumber": "",
        “barcode”:””,
"externalReference":"",
"sku":"abc123",
        "brand": "",
        "productReference": 0,
        "productTypeReference": 0,
        "searchOption": "exact"
    },
    {
        "partNumber": "",
“barcode”:””,
"externalReference":"",
"sku":"abc124",
        "brand": "",
        "productReference": 0,
        "productTypeReference": 0,
        "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 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 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 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; }
}


getProductsByCrossReference

Method URL

/v1/product/getproductsbycrossreference

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 bool includeChildren { get; set; } 
    public bool includeCrossReferences { get; set; } 
    public bool includeSupercessions { 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 barcode { get; set; } 
    public string externalReference { get; set; } 
    public string sku { get; set; } 
    public string brand { get; set; } 
    public long productReference { get; set; } 
    public long productTypeReference { get; set; } 
    public string searchOption { 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
searchProducts no
- partNumber
- barcode
- externalReference
- sku no the SKU of the required product
- brand yes optional exact brand name
- productReference
- productTypeReference yes optional productType reference
- searchOption no one of "exact" or "startswith" or "contains"

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "searchProducts":[{
        "partNumber": "",
        “barcode”:””,
"externalReference":"",
"sku":"abc123",
        "brand": "",
        "productReference": 0,
        "productTypeReference": 0,
        "searchOption": "exact"
    },
    {
        "partNumber": "",
“barcode”:””,
"externalReference":"",
"sku":"abc124",
        "brand": "",
        "productReference": 0,
        "productTypeReference": 0,
        "searchOption": "exact"
    }]
}

Response Structure

productResponse

Response Example

See getProductsByPartNumbers


getProductsByAdvancedSearch

Method URL

/v1/product/getproductsbyadvancedsearch

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

productAdvancedSearchRequest

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
productAdvancedSearchRequest no
- partNumber yes either full part number or partial dependant upon your searchOption entry.
- barcode yes The required barcode, partial or full dependant upon searchOption
- brand yes optional full brand name or empty string
- searchOption no one of "exact" or "startswith" or "contains"
- criteriaMatch yes list of criteria names and values to match to
- productTypeReference yes optional product type reference
- system no must be "ecat"

Body Example

TBA

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 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 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 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; }
}


getProductKitContents

Method URL

/v1/product/getProductKitContents

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 bool includeChildren { get; set; } 
    public bool includeCrossReferences { get; set; } 
    public bool includeSupercessions { 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 barcode { get; set; } 
    public string externalReference { get; set; } 
    public string sku { get; set; } 
    public string brand { get; set; } 
    public long productReference { get; set; } 
    public long productTypeReference { get; set; } 
    public string searchOption { 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
searchProducts no
- partNumber
- barcode
- externalReference
- sku
- brand
- productReference no the productReference of the kit
- productTypeReference
- searchOption no one of "exact" or "startswith" or "contains"

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "searchProducts":[{
        "partNumber": "",
        "barcode":"",
        "externalReference":"",
        "sku":"",
        "brand": "",
        "productReference": 123456,
        "productTypeReference": 0,
        "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 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 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 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; }
}

See getProductsByPartNumbers


getAbbreviatedProductsByProductType

Method URL

/v1/product/getabbreviatedproductsbyproducttype

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

productRequestByProductType

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
productType no full product type
productTypeReference
brands yes optional full brand name or empty string

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "productType": "RAEC",
"productTypeReference": 0,
    "brands": ["MyBrand"]
}

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 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 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 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; }
}


getAbbreviatedProductsByProductTypeReference

Method URL

/v1/product/getabbreviatedproductsbyproducttypereference

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

productRequestByProductType

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
productType
productTypeReference no product type reference
brands yes optional full brand name or empty string

Body Example

{
    "baseRequest":{
        "requestReference":123456,
        "requestPostedTime":"2012-04-23T18:25:43.511Z",
        "system":"ecat"
    },
    "productType": "",
"productTypeReference": 9,
    "brands": ["MyBrand"]
}

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 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 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 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

See getProductsByPartNumbers


getProductsByInternalEntityReference

Method URL

/v1/product/getproductsbyinternalentityreference

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

public class productTypesByInternalVehicleReferenceRequest
{
    public baseRequest baseRequest { get; set; }
    public int indexReference { get; set; }
    public long internalVehicleReference { get; set; }
    public long productTypeReference { get; set; }
    public bool includeAvailableCriteria { 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
indexReference no The reference to the entity/vehicle index to use
internalVehicleReference no The internal entity reference
productTypeReference yes The Product Types to return. '0' for all
includeAvailableCriteria no Whether to return all criteria for the products

Body Example


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 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 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 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; }
}


searchproductsfiltered

Method URL

/v1/product/searchproductsfiltered

Type

POST

Consumes

application/json

Produces

application/json

Body Structure

public class filteredSearchRequest
{
    public baseRequest baseRequest { get; set; }
    public string? searchTerm { get; set; }
    public string? partNumber { get; set; }
    public string? partDescription { get; set; }
    public string? brandName { get; set; }
    public string? barcode { get; set; }
    public string? crossReference { get; set; }
    public string? groupIdentifierLevel1 { get; set; }
    public string? groupIdentifierLevel2 { get; set; }
    public string? groupIdentifierLevel3 { get; set; }
    public string? externalNode { get; set; }
    public List<filter> filters { get; set; }
    public int skip { get; set; }
    public int take { get; set; }
}

public class filter
{
    public string? brand { get; set; }
    public string? groupIdentifierLevel1 { get; set; }
    public string? groupIdentifierLevel2 { get; set; }
    public string? groupIdentifierLevel3 { get; set; }
    public string? externalNode { get; set; }
}

Response Structure

public class namedSearchResponse : pagedResult
{
    public baseResponse baseResponse { get; set; }
    public List<searchItemWrapper>? hits { get; set; }
}

public class pagedResult
{
    public long total { get; set; }
    public int skipped { get; set; }
    public int took { get; set; }
}

public class searchItemWrapper
{
    public List<string>? foundBy { get; set; }
    public searchItem? hit { get; set; }
}

public class searchItem
{
    public List<string> partURL { get; set; }
    public List<string> crossReferences { get; set; }
    public List<string> tags { get; set; }
    public string groupIdentifierLevel3 { get; set; }
    public string groupIdentifierLevel2 { get; set; }
    public string groupIdentifierLevel1 { get; set; }
    public string mamProductCode { get; set; }
    public string sku { get; set; }
    public string barcode { get; set; }
    public bool isSearchable { get; set; }
    public bool isChild { get; set; }
    public bool isParent { get; set; }
    public string externalPartCategory { get; set; }
    public string externalPartDescription { get; set; }
    public string externalPartBrand { get; set; }
    public string externalPartNumber { get; set; }
    public string externalPartReference { get; set; }
    public List<productCriteriaSearchItem>? partCriteria { get; set; }
    public string? partDescription { get; set; }
    public int? brandSortOrder { get; set; }
    public string? brandName { get; set; }
    public string? partNumber { get; set; }
    public long internalPartReference { get; set; }
    public string? version { get; set; }
    public List<string>? foundBy { get; set; }
}