# Product Data API

## Introduction <a href="#introduction" id="introduction"></a>

### Overview <a href="#overview" id="overview"></a>

The EuroStocks Product-Data-Supplier-API is an interface to store Product to the EuroStocks-database and make them available on the platform as classified ads. It allows users to do all necessary operations like Get, Add, Update and Delete an ad information.

| Documentation can be incomplete and/or outdated, Contact EuroStocks team by sending an email on <api@eurostocks.com> for any questions regarding API. |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- |

The API is available at this base URL:

[https://products-data-api.eurostocks.com](https://products-data-api.eurostocks.com/docs/product-data-supplier-api.html)

### Main features <a href="#main_features" id="main_features"></a>

* Create a new ad
* Update an ad
* Deactivate an ad
* Activate an ad
* Delete an ad
* Undelete an ad
* Update Stock
* Upload images
* Change the order of existing images
* Delete image
* Get location Information
* Products by LocationId
* Inactive Products by LocationId
* Deleted Products by LocationId
* Product details by LocationId and EuroStocksAdId
* Fitments Makes
* Fitments Models
* Fitments Types

### Prerequisites <a href="#prerequisites" id="prerequisites"></a>

Product Data supplier API access can be granted to suppliers who wants to send EuroStocks Product informations, and it required username, password and API Key to access API.

| <p><strong>Limited support for the development process and maintenance:</strong><br>Please note that all examples provided in our documentation are considered as guidelines for your development process but EuroStocks for itself is not able to directly assist with any of your preferred programming languages and/or used scripts.</p> |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

### Test Account <a href="#test_account" id="test_account"></a>

A test environment can be provided. Please ask for the test account details and all the information will be used as mention in Prerequisites on test API url [https://test-products-data-api.eurostocks.com](https://products-data-api.eurostocks.com/docs/product-data-supplier-api.html)\
\
Note: Test data will be removed time to time.

## Working with Ad Data <a href="#working_with_ad_data" id="working_with_ad_data"></a>

### Overview <a href="#overview_2" id="overview_2"></a>

Product Supplier API allows you to manage your Product inventory in a programmatic way and integrate it with other applications. It allows users to do all necessary operations like Get, Add, Update and Delete an ad information.

Generate sample request click [here](#sample-request-body).

Platform Meta Data

| eurostocksAdId | <p>The unique identifier for an ad object on EuroStocks platform.<br>Example: 123456</p> |
| -------------- | ---------------------------------------------------------------------------------------- |
| locationId     | <p>Reference to the company's location of this ad information.<br>Example: 1234567</p>   |
| imageCount     | No. of images supplier will sent for requested new Product                               |

Product Data

| [MainCategory](#main-categories) | <p>Main categories to add products.<br>Example: Accessoires or Auto onderdelen</p>                                                                                                                                                                                                                                                                                              |
| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [SubCategories](#sub-categories) | <p>Sub categories to add products.<br>Example: Audio en toebehoren (universeel) or Bagage en Transport</p>                                                                                                                                                                                                                                                                      |
| [ProductTypes](#product-types)   | <p>Product types.<br>Example: Afstandsbediening radio or Antenne</p>                                                                                                                                                                                                                                                                                                            |
| price                            | <p>Product price <a href="#price-attributes-and-features"><mark style="color:blue;">Attributes and Features</mark></a>.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td><p>By default price will be considered including VAT if you want to provide price as Exclusive VAT then send "EXCLUDING\_VAT" = "YES"</p><p></p></td></tr></tbody></table> |

#### Additional Ad Information

<table data-header-hidden><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><em>condition</em></td><td><p>Provides Product Condition. For example : NEW or USED</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>Condition is default property and can be identify from flags<br>"IsDefaultFeature" and "IsConditionFeature"<br>Above flags should be checked in AND condition<br>both of them should be true for condtion feature<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/features/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td><em>delivery</em></td><td><p>Provides Product Delivery type. For example : Ophalen or Ophalen of verzenden</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>delivery is default property and can be identify from flag "IsDefaultFeature".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/features/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td><em>stock</em></td><td><p>Provides Product stock.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>stock is default property and can be identify from flag "IsDefaultAttribute".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td>unlimitedStock</td><td><p>Provides Product unlimitedStock.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>unlimitedStock is default property and can be identify from flag "IsDefaultAttribute".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td>allowOrderForOutOfStock</td><td><p>Provides Product allowOrderForOutOfStock.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>allowOrderForOutOfStock is default property and can be identify from flag "IsDefaultFeature".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/features/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td>weight</td><td><p>Provides Product weight.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>weight is default property and can be identify from flag "IsDefaultAttribute".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td>warehouseLocation</td><td><p>Provides Product warehouseLocation.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>warehouseLocation is default property and can be identify from flag "IsDefaultAttribute".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td>internalNumber</td><td><p>Provides Product internalNumber.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>internalNumber is default property and can be identify from flag "IsDefaultAttribute".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td>eanNumber</td><td><p>Provides Product eanNumber.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>eanNumber is default property and can be identify from flag "IsDefaultAttribute".<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}</td></tr></tbody></table></td></tr><tr><td><a href="#features">features</a></td><td>Provides all the feature available for selected Product type. For example: MONTAGE_MOGELIJK and SCHADE_OVERIGE_CATEGORIEEN.</td></tr><tr><td><a href="#feature-values">features values</a></td><td>Provides all the feature values available for selected feature. For example: AVAILABILITY = "RESERVED".</td></tr><tr><td><a href="#attributes">attributes</a></td><td>Provides all the attribute available for selected Product type. For example: MONTAGE_KOSTEN.</td></tr><tr><td>productInfo</td><td><p>Provides multilingual attributes which allows to add attribute for different languages. For example: PRODUCT_TITLE and PRODUCT_SPECIFIC_DESCRIPTION.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td><a href="#languages">LANGUAGEISOCODE</a> is mandatory when you want to send multilingual attributes. On Attributes response you will find flag "IsMultilingualAttribute" to identify if attribute is multilingual or not.</td></tr></tbody></table><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>To get multilingual attributes please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}</td></tr></tbody></table><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>To get all supported languages : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/languages</td></tr></tbody></table></td></tr><tr><td>priceInfo</td><td><p>Provides price information which will allow to calculate price. For example : PRICE_ON_REQUEST</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>On Attributes and Features response you will find flag "IsPriceAttribute" and "IsPriceFeature" respectively to identify attribute and feature is part of price info or not.</td></tr></tbody></table><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>To get "IsPriceAttribute" and "IsPriceFeature"<br>please refer API : https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey} and https://products-data-api.eurostocks.com/api/v1/productdatasupplier/features/{productTypeKey}.</td></tr></tbody></table></td></tr><tr><td>ktypes</td><td><p>Using ktypes Products can have its make, model and types.</p><table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td>Multiple values allowed.</td></tr></tbody></table></td></tr><tr><td>oemNumbers</td><td>Multiple oemnumbers are allowed. Max length for a oemNumber is 20 characters. alphanumeric characters are allowed. Spaces are allowed. - / \ and + is allowed.</td></tr><tr><td>MOTORBIKE_PARTS_MODEL</td><td><p>Using Model Keys, you get Full Make → Model list, Multiple values allowed.<br>Example:</p><pre class="language-markup"><code class="lang-markup">"MOTORBIKE_PARTS_MODEL": [
            "1090_ADVENTURE",
            "1098",
            "1000_GT",
            "1000_SS",
            "125_COSA",
            "125_STX",
            "125_F"
        ]
</code></pre></td></tr></tbody></table>

### How Ad Data Are Rendered <a href="#how_ad_data_are_rendered" id="how_ad_data_are_rendered"></a>

### **Representation as JSON data in Supplier API**<br>

| This is an ad fragment in JSON format for demonstration purposes only, some fields are not included. |
| ---------------------------------------------------------------------------------------------------- |

```json
{
   "eurostocksAdId":null,
   "locationId":1,
   "imageCount":"2",
   "mainCategory":"ACCESSORIES",
   "subCategory":"EXTERIOR",
   "productType":"BED_COVER",
   "condition":"NEW",
   "delivery":"ONLY_PICKUP",
   "stock":"10",
   "weight":"25",
   "priceInfo":{
      "PRICE":"125.99",
      "DISCOUNTED_PRICE":"110.49"
   },
   "ktypes":[
       14518
      ,13535
      ,13536
      ,13537
      ,13579
   ],
   "oemNumbers":[
      "120","130","140"
   ],
   "productInfo":[
      {
         "LANGUAGE_ISO_CODE":"nl",
         "PRODUCT_TITLE":"Test Product Created",
		 "EXTERNAL_PRODUCT_URL": "https://testProduct.com",
         "PRODUCT_SPECIFIC_DESCRIPTION":"NL : product Descriptions"
      },
      {
         "LANGUAGE_ISO_CODE":"en",
         "PRODUCT_TITLE":"EN : Test Product Created",
		 "EXTERNAL_PRODUCT_URL": "https://testProduct.com",
         "PRODUCT_SPECIFIC_DESCRIPTION":"EN : product Descriptions"
      }
   ],
   "features":{
      "DAMAGE_OTHER_CATEGORIES":"YES",
      "AVAILABILITY":"RESERVED"
   },
   "attributes":{	  
      "DIMENSIONS_HEIGHT":"8",
      "DIMENSIONS_LENGTH":"10",
      "DIMENSIONS_WIDTH":"12"
   }
}

```

## Create a new Ad

<mark style="color:green;">`POST`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productdetails`

Markplaats, 2dehands and webshop will take few minutes to reflect changes.\
\
Please note, when creating a new product, activating a product or undeleting a product by default it will not get automatically added to Marktplaats.nl and/or 2dehands.be. If you want to change this behavior, please contact Eurostocks.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

**Sample Success Request (Car Parts)**

```json
POST /api/v1/productdatasupplier/productdetails/
HOST: products-data-api.eurostocks.com

{
   "eurostocksAdId":null,
   "locationId":1,
   "imageCount":"2",
   "mainCategory":"ACCESSORIES",
   "subCategory":"EXTERIOR",
   "productType":"BED_COVER",
   "condition":"NEW",
   "delivery":"ONLY_PICKUP",
   "stock":"10",
   "weight":"25",
   "priceInfo":{
      "PRICE":"125.99",
      "DISCOUNTED_PRICE":"110.49"
   },
   "ktypes":[
       14518
	  ,13535
	  ,13536
      ,13537
      ,13579
   ],
   "oemNumbers":[
      "120","130","140"
   ],
   "productInfo":[
      {
         "LANGUAGE_ISO_CODE":"nl",
         "PRODUCT_TITLE":"Test Product Created",
		 "EXTERNAL_PRODUCT_URL": "https://testProduct.com",
         "PRODUCT_SPECIFIC_DESCRIPTION":"NL : product Descriptions"
      },
      {
         "LANGUAGE_ISO_CODE":"en",
         "PRODUCT_TITLE":"EN : Test Product Created",
		 "EXTERNAL_PRODUCT_URL": "https://testProduct.com",
         "PRODUCT_SPECIFIC_DESCRIPTION":"EN : product Descriptions"
      }
   ],
   "features":{
      "DAMAGE_OTHER_CATEGORIES":"YES",
      "AVAILABILITY":"RESERVED"
   },
   "attributes":{      
      "DIMENSIONS_HEIGHT":"8",
      "DIMENSIONS_LENGTH":"10",
      "DIMENSIONS_WIDTH":"12"
   }
}
```

**Sample Success Response (Car Parts)**

```json
HTTP/1.1 201 Created
{
    "eurostocksAdId": 339584,
    "eurostocksUrl": "https://directautos.eu/nl/accessoires/exterieur/bed-cover/product/339584/test-product-created"
}
```

**Sample Success Request (Motorbike Parts)**

```json
POST /api/v1/productdatasupplier/productdetails/
HOST: products-data-api.eurostocks.com

{
    "eurostocksAdId": null,
    "locationId": 1,
    "imageCount": 2,
    "mainCategory": "MOTORCYCLE_PARTS",
    "subCategory": "DRIVE",
    "productType": "CRUISE_CONTROL",
    "condition": "NEW",
    "delivery": "PICKUP_OR_SHIPPING",
    "stock": 10,
    "unlimitedStock": null,
    "allowOrderForOutOfStock": null,
    "keepActiveIfOutOfStock": null,
    "weight": "25",
    "warehouseLocation": null,
    "internalNumber": null,
    "eanNumber": null,
    "priceInfo": {
        "PRICE": "500",
        "EXCLUDING_VAT": "YES",
        "SPECIAL_SHIPPING_RATE_LOCAL": "10.00",
        "SPECIAL_SHIPPING_RATE_EUROPE": "20.00",
        "SPECIAL_SHIPPING_RATE_WORLDWIDE": "30.00"
    },
    "ktypes": null,
    "oemNumbers": null,
    "productInfo": [
        {
            "LANGUAGE_ISO_CODE": "nl",
            "PRODUCT_TITLE": "Test Product Multiple Models",
            "PRODUCT_SPECIFIC_DESCRIPTION": "NL : Bike 001"
        },
        {
            "LANGUAGE_ISO_CODE": "en",
            "PRODUCT_TITLE": "Test Product Multiple Models",
            "PRODUCT_SPECIFIC_DESCRIPTION": "EN : Bike 001"
        }
    ],
    "features": {
        "DAMAGE_OTHER_CATEGORIES": "YES",
        "AVAILABILITY": "AVAILABLE",
        "MOTORBIKE_PARTS_MODEL": [
            "1090_ADVENTURE",
            "1098",
            "1000_GT",
            "1000_SS",
            "125_COSA",
            "125_STX",
            "125_F"
        ]
    },
    "attributes": {}
}
```

**Sample Success Response (Motorbike Parts)**

```json
HTTP/1.1 201 Created
{
    "eurostocksAdId": 2257775,
    "eurostocksUrl": "https://www.autospulletjes.nl/nl/motorfiets-onderdelen/aandrijving/cruise-control/product/2257775/test-product-multiple-models"
}
```

**Sample Error Request**

```json
POST /api/v1/productdatasupplier/productdetails/
HOST: products-data-api.eurostocks.com

{
   "eurostocksAdId":null,
   "locationId":1,
   "imageCount":"2",
   "mainCategory":"ACCESSORIES",
   "subCategory":"EXTERIOR",
   "productType":"BED_COVER",
   "condition":"NEW",
   "delivery":"ONLY_PICKUP",
   "stock":"10",
   "weight":"25",
   "priceInfo":{
      "PRICE":"125.99",
      "DISCOUNTED_PRICE":"110.49"
   },
   "ktypes":[
       14518
	  ,13535
	  ,13536
      ,13537
      ,13579
   ],
   "oemNumbers":[
      "110",
      "120"
   ],
   "productInfo":[
      {
         "LANGUAGE_ISO_CODE":"nl",
         "PRODUCT_TITLE":"Test Product Created",
         "PRODUCT_SPECIFIC_DESCRIPTION":"NL : product Descriptions"
      },
      {
         "LANGUAGE_ISO_CODE":"en",
         "PRODUCT_TITLE":"EN : Test Product Created",
         "PRODUCT_SPECIFIC_DESCRIPTION":"EN : product Descriptions"
      }
   ],
   "features":{
      "DAMAGE_OTHER_CATEGORIES":"YES",
      "AVAILABILITY":"RESERVED"
   },
   "attributes":{
      "DIMENSIONS_HEIGHT":"8",
      "DIMENSIONS_LENGTH":"10",
      "DIMENSIONS_WIDTH":"12"
   }
}
```

**Sample Error Response**

```json
HTTP/1.1 400 Bad Request

{
    "Code": "Invalid",
    "Message": "Multiple OEMNumber(s) are not allowed for this main category ACCESSORIES"
}
```

## Update an Ad

<mark style="color:orange;">`PUT`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productdetails`

Markplaats, 2dehands and webshop will take few minutes to reflect changes.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

**Sample Success Request**

```json
PUT /api/v1/productdatasupplier/productdetails/
HOST: products-data-api.eurostocks.com
Content-type: "application/json"

{
   "eurostocksAdId":339587,
   "locationId":1,
   "imageCount":"2",
   "mainCategory":"ACCESSORIES",
   "subCategory":"EXTERIOR",
   "productType":"BED_COVER",
   "condition":"NEW",
   "delivery":"ONLY_PICKUP",
   "stock":"10",
   "weight":"25",
   "priceInfo":{
      "PRICE":"125.99",
      "DISCOUNTED_PRICE":"110.49"
   },
   "ktypes":[
       14518
	  ,13535
	  ,13536
      ,13537
      ,13579
   ],
   "oemNumbers":[
      "120"
   ],
   "productInfo":[
      {
         "LANGUAGE_ISO_CODE":"nl",
         "PRODUCT_TITLE":"Test Product Created",
         "PRODUCT_SPECIFIC_DESCRIPTION":"NL : product Descriptions"
      },
      {
         "LANGUAGE_ISO_CODE":"en",
         "PRODUCT_TITLE":"EN : Test Product Created",
         "PRODUCT_SPECIFIC_DESCRIPTION":"EN : product Descriptions"
      }
   ],
   "features":{
      "DAMAGE_OTHER_CATEGORIES":"YES",
      "AVAILABILITY":"RESERVED"
   },
   "attributes":{
      "DIMENSIONS_HEIGHT":"8",
      "DIMENSIONS_LENGTH":"10",
      "DIMENSIONS_WIDTH":"12"
   }
}
```

**Sample Success Response**

```json
HTTP/1.1 200 OK					

{
    "eurostocksAdId": 339587,
    "eurostocksUrl": "https://directautos.eu/nl/auto-onderdelen/overige-auto-onderdelen/diverse-auto-onderdelen/product/339587/test-product"
}
```

## Patch an Ad

<mark style="color:orange;">`PATCH`</mark>`https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productdetails/{locationId}/{eurostocksAdId}`

Markplaats, 2dehands and webshop will take few minutes to reflect changes.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request parameters

| Name                                             | Type   | Description                                                         |
| ------------------------------------------------ | ------ | ------------------------------------------------------------------- |
| locationId<mark style="color:red;">\*</mark>     | Number | Unique Identification number of location for which Product is added |
| eurostocksAdId<mark style="color:red;">\*</mark> | Number | Unique Identification number of Product you want to patch           |

**Sample Success Request**

```json
PATCH /api/v1/productdatasupplier/productdetails/1/2489232
HOST: products-data-api.eurostocks.com
Content-type: "application/json"

 {
   "productInfo": 
    [
        {
            "LANGUAGE_ISO_CODE": "nl",
            "PRODUCT_TITLE": "Test Automation Product",
            "PRODUCT_SPECIFIC_DESCRIPTION": "NL : product Descriptions Automation Product"
        },
        {
            "LANGUAGE_ISO_CODE": "en",
            "PRODUCT_TITLE": "Test Automation Product",
            "PRODUCT_SPECIFIC_DESCRIPTION": "EN : product Descriptions Automation Product"
        }
    ],
   "features": {
        "AVAILABILITY": "AVAILABLE",
        "CAR_PARTS_WARRENTY" : "CAR_PARTS_WARRENTY_SIX_MONTHS",
        "301_REDIRECT": "301_REDIRECT_YES"
    },
   "attributes": {
        "WEIGHT": "20"
    }
 }
```

**Sample Success Response**

```json
HTTP/1.1 200 OK					

{
    "eurostocksAdId": 2489232
}
```

#### Update Behavior for Attributes, Features, and Language-wise Product Information

When using the **PATCH Product** endpoint to update an existing product, the API processes the sections **Attributes**, **Features**, and **ProductInfo** (language-wise) according to the following rules:

1. **Update Existing Values**
   * If the product already contains values for the specified Attribute, Feature, or ProductInfo (based on language), the new values provided in the request body will first be **validated**.
   * Once validation succeeds, the existing values are **replaced/updated** with the new ones.
2. **Add New Values**
   * If the provided Attribute, Feature, or ProductInfo key does **not** exist for the product, the supplied values will be **inserted/added**.
3. **Remove Existing Values**
   * If a key is included in the request but its value is left **empty** (for example, `"WEIGHT": ""`), the corresponding entry for that Attribute, Feature, or ProductInfo (language-wise) will be **deleted/removed** from the product record.

> **Note:**\
> The PATCH request only modifies the fields explicitly provided in the JSON body. Any fields not included remain unchanged.

## Deactivate an Ad

<mark style="color:orange;">`PUT`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/deactivate/{locationId}/{eurostocksAdId}`

To deactivate a product, the current status of product must be active.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.\
\
When product is deactivated then its status will be changed to deactivated and the product Ad from Marktplaats and 2dehands will be removed if Ad is active.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| Header<mark style="color:red;">\*</mark>   | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                         | Type   | Description                                                         |
| -------------------------------------------- | ------ | ------------------------------------------------------------------- |
| locationId<mark style="color:red;">\*</mark> | Number | Unique Identification number of location for which Product is added |
| eurostocksAdId                               | Number | Unique Identification number of Product you want to deactivate      |

**Sample Success Requestc**

```json
PUT /api/v1/productdatasupplier/deactivate/{locationId}/{eurostocksAdId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
                    
{
  "eurostocksAdId": 599570,
  "Message": "Product deactivated"
}
     
```

## Activate an Ad

<mark style="color:orange;">`PUT`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/activate/{locationId}/{eurostocksAdId}`

To activate a product, the current status of product must be deactivated.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.\
\
Please note, when creating a new product, activating a product or undeleting a product by default it will not get automatically added to Marktplaats.nl and/or 2dehands.be. If you want to change this behavior, please contact Eurostocks.

#### Headers

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| UserName | String | Username which EuroStocks provides |
| APIKey   | String | ApiKey which EuroStocks provides   |
| Password | String | Password which EuroStocks provides |

#### Request Body

| Name           | Type   | Description                                                         |
| -------------- | ------ | ------------------------------------------------------------------- |
| locationId     | Number | Unique Identification number of location for which Product is added |
| eurostocksAdId | Number | Unique Identification number of Product you want to activate        |

**Sample Success Request**

```json
PUT /api/v1/productdatasupplier/activate/{locationId}/{eurostocksAdId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
                    
{
  "eurostocksAdId": 599570,
  "Message": "Product activated"
}
    
```

## Delete an Ad

<mark style="color:red;">`DELETE`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/{locationId}/{eurostocksAdId}`

No need to delete images before deleting Product.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.\
\
When product is deleted then its status will be changed to deleted and the product Ad from Marktplaats and 2dehands will be removed if Ad is active.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                             | Type   | Description                                                         |
| ------------------------------------------------ | ------ | ------------------------------------------------------------------- |
| locationId<mark style="color:red;">\*</mark>     | Number | Unique Identification number of location for which Product is added |
| eurostocksAdId<mark style="color:red;">\*</mark> | Number | Unique Identification number of Product you want to delete          |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
DELETE /api/v1/productdatasupplier/{locationId}/{eurostocksAdId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
                    
{
  "eurostocksAdId": 599570,
  "Message": "Product deleted"
}
```

## Undelete an Ad

<mark style="color:orange;">`PUT`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/undelete/{locationId}/{eurostocksAdId}`

To undelete a product, the current status of product must be deleted.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.\
\
Please note, when creating a new product, activating a product or undeleting a product by default it will not get automatically added to Marktplaats.nl and/or 2dehands.be. If you want to change this behavior, please contact Eurostocks.

#### Headers

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| UserName | String | Username which EuroStocks provides |
| Password | String | Password which EuroStocks provides |
| APIKey   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name           | Type   | Description                                                         |
| -------------- | ------ | ------------------------------------------------------------------- |
| locationId     | Number | Unique Identification number of location for which Product is added |
| eurostocksAdId | Number | Unique Identification number of Product you want to undelted        |

**Sample Success Request**

```json
PUT /api/v1/productdatasupplier/undelete/{locationId}/{eurostocksAdId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
                    
{
  "eurostocksAdId": 599570,
  "Message": "Product undeleted"
}
```

## Update Stock

<mark style="color:green;">`POST`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/stock/{eurostocksAdId}/{locationId}/{stock}/{unlimitedStock}/{allowOrderForOutOfStock}`

UnlimitedStock and AllowOrderForOutOfStock is Optional Parameters, default value is false.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.\
\
Stock = 0 won't change the product status and it won't remove the product from Marktplaats and 2dehands if Ad is ac

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                             | Type   | Description                                                                         |
| ------------------------------------------------ | ------ | ----------------------------------------------------------------------------------- |
| eurostocksAdId<mark style="color:red;">\*</mark> | Number | Unique Identification number of Product you want to undelted                        |
| locationId<mark style="color:red;">\*</mark>     | Number | Unique Identification number of location for which Product is added                 |
| stock                                            | Number | stock value can not be greater then 999 it will accept positive and negative number |
| unlimitedstock                                   | String | unlimitedstock is optional Parameter default value is false                         |
| allowOrderForOutOfStock                          | String | allowOrderForOutOfStock is optional Parameter default value is false                |

**Sample Success Request**

```json
POST /api/v1/productdatasupplier/images/{locationId}/{eurostocksAdId}/{displaySequence}
HOST: products-data-api.eurostocks.com

images = "binary image data"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
                    
{
  "eurostocksAdId": 599570,
  "Message": "Product Stock Updated"
}
  
```

## Upload an image

<mark style="color:green;">`POST`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/images/{locationId}/{eurostocksAdId}/{displaySequence}`

Upload new image by binary data.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                              | Type   | Description                                                                                                                                             |
| ------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| locationId<mark style="color:red;">\*</mark>      | Number | Unique Identification number of location for which Product is added                                                                                     |
| eurostocksAdId<mark style="color:red;">\*</mark>  | Number | Unique Identification number of Product you want to delete                                                                                              |
| displaySequence<mark style="color:red;">\*</mark> | Number | Display Sequence is a unique number for each image and, it should start from 1 and it should be incremental. Duplicate display sequence is not allowed. |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Data Types**

| Request           | Success Response               |
| ----------------- | ------------------------------ |
| binary image data | Image details in binary format |

**Sample Request Template**

```json
POST /api/v1/productdatasupplier/images/{locationId}/{eurostocksAdId}/{displaySequence}
HOST: products-data-api.eurostocks.com

images = "binary image data"
```

**Example Screen (Right click and select open image in new tab)**

![](https://products-data-api.eurostocks.com/docs/images/Image-Add-Request-1.jpg)

![](https://products-data-api.eurostocks.com/docs/images/Image-Add-Request-2.jpg)

**Sample Success Response**

```json
HTTP/1.1 201 Created
					
{
    "images": [
        {
            "ref": "https://images.autospulletjes.nl/1/93d16af95549c646/webshop/products/211925/xlarge/volkswagen-golf-211925-a12c238f.jpg"
        }
    ]
}
```

**Example Screen (Right click and select open image in new tab)**

![](https://products-data-api.eurostocks.com/docs/images/Image-Add-Response.jpg)

**Sample DisplaySequence Error Response**

```
HTTP/1.1 400 Bad Request
					
{
    "Code": "BadRequest",
    "Message": "Image with requested displaysequence is already exists"
}
```

![](https://products-data-api.eurostocks.com/docs/images/Image-Already-DisplaySequence.jpg)

## Update existing image

<mark style="color:purple;">`PATCH`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/images/{locationId}/{eurostocksAdId}/{displaySequence}`

Replace existing image with new image.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name            | Type   | Description                                                                       |
| --------------- | ------ | --------------------------------------------------------------------------------- |
| locationId      | Number | Unique Identification number of location for which Product is added               |
| eurostocksAdId  | Number | Unique Identification number of Product you want to replace image                 |
| displaySequence | Number | To patch an image at specific sequence use Display Sequence in the patch request. |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Data Types**

| Request           | Success Response               |
| ----------------- | ------------------------------ |
| binary image data | Image details in binary format |

**Sample Success Request**

```json
PATCH /api/v1/productdatasupplier/images/{locationId}/{eurostocksAdId}/{displaySequence}
HOST: products-data-api.eurostocks.com
files = "binary image data"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK			
   				
{
  "images": [
      {
          "ref": "https://images.autospulletjes.nl/1/93d16af95549c646/webshop/products/211925/xlarge/volkswagen-golf-211925-fg2c238f.jpg"
      }
  ]
}
```

**Example Screen (Right click and select open image in new tab)**

![](https://products-data-api.eurostocks.com/docs/images/Patch-Product-Image.jpg)

## Change the order of existing images

<mark style="color:orange;">`PUT`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/images/{locationId}/{eurostocksAdId}`

Sequence will be set as per provided in the request.\
Markplaats, 2dehands and webshop will take few minutes to reflect changes.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                         | Type   | Description                                                         |
| -------------------------------------------- | ------ | ------------------------------------------------------------------- |
| locationId<mark style="color:red;">\*</mark> | Number | Unique Identification number of location for which Product is added |
| eurostocksAdId                               | Number | Unique Identification number of Product                             |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
PUT /api/v1/productdatasupplier/images/{locationId}/{eurostocksAdId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"

{
    "images": [
        {
            "ref": "https://images.autospulletjes.nl/93d16af95549c646/webshop/products/211925/xlarge/volkswagen-golf-211925-3.jpg",
			"displaySequence":2
        },
		{
            "ref": "https://images.autospulletjes.nl/93d16af95549c646/webshop/products/211925/xlarge/volkswagen-golf-211925-1.jpg",
			"displaySequence":3
        },
		{
            "ref": "https://images.autospulletjes.nl/93d16af95549c646/webshop/products/211925/xlarge/volkswagen-golf-211925-2.jpg",
			"displaySequence":1
        }
    ]
}
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
```

## Delete images

<mark style="color:red;">`DELETE`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/image/{locationId}/{eurostocksAdId}/{displaySequence}`

Delete image from the Ad using eurostocksAdId.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                              | Type   | Description                                                                         |
| ------------------------------------------------- | ------ | ----------------------------------------------------------------------------------- |
| locationId<mark style="color:red;">\*</mark>      | Number | Unique Identification number of location for which Product is added                 |
| eurostocksAdId<mark style="color:red;">\*</mark>  | Number | Unique Identification number of Product                                             |
| displaySequence<mark style="color:red;">\*</mark> | Number | To delete an image at specific sequence use Display Sequence in the Delete request. |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
DELETE /api/v1/productdatasupplier/image/{locationId}/{eurostocksAdId}/{displaySequence}
HOST: products-data-api.eurostocks.com

```

**Sample Success Response**

```json
HTTP/1.1 200 OK
```

**Example Screen (Right click and select open image in new tab)**

![](https://products-data-api.eurostocks.com/docs/images/Image-Deleted.jpg)

## Get Location Information

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/locations`

Get all the locations details associated with supplier.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |
| UserName<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/locations
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
[
  {
    "locationId": 1,
    "locationName": "Autospulletjes",
    "postCode": "1054WS",
    "street": "Wilhelminastraat",
    "houseNumber": 162,
    "houseNumberExtension": "hs",
    "city": "Amsterdam"
  }
  ....
]
```

## Products by LocationId

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productlist/{locationId}`

Get product list by locationId, provides EuroStocksAdId and CreatedDate and ModifiedDate having UTC date time format.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                         | Type   | Description                                                |
| -------------------------------------------- | ------ | ---------------------------------------------------------- |
| locationId<mark style="color:red;">\*</mark> | Number | LocationId for which you want the all active products list |

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/productlist/1
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
{
  "productList": [
    {
      "eurostocksAdId": 324895,
      "createdDate": "2020-09-01T04:37:29.92Z",
      "modifiedDate": "2020-09-01T04:53:19.43Z"
    },
    {
      "eurostocksAdId": 324927,
      "createdDate": "2020-09-01T04:57:30.643Z",
      "modifiedDate": "2020-09-01T05:23:07.403Z"
    },
    {
      "eurostocksAdId": 326862,
      "createdDate": "2020-09-02T15:30:43.093Z",
      "modifiedDate": "2020-11-03T13:07:01.257Z"
    },
    {
      "eurostocksAdId": 332331,
      "createdDate": "2020-09-09T08:55:38.173Z",
      "modifiedDate": "2020-09-09T08:57:08.74Z"
    },
	...
	]
}

```

## Inactive Products by LocationId

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productlist/deactivated/{locationId}`

Get inactive product list by locationId, provides EuroStocksAdId and CreatedDate and ModifiedDate having UTC date time format.

#### Headers

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| UserName | String | Username which EuroStocks provides |
| Password | String | Password which EuroStocks provides |
| APIKey   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name       | Type   | Description                                                  |
| ---------- | ------ | ------------------------------------------------------------ |
| locationId | Number | LocationId for which you want the all inactive products list |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/productlist/deactivated/{locationId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
{
  "productList": [
    {
      "eurostocksAdId": 324895,
      "createdDate": "2020-09-01T04:37:29.92Z",
      "modifiedDate": "2020-09-01T04:53:19.43Z"
    },
    {
      "eurostocksAdId": 324927,
      "createdDate": "2020-09-01T04:57:30.643Z",
      "modifiedDate": "2020-09-01T05:23:07.403Z"
    },
    {
      "eurostocksAdId": 326862,
      "createdDate": "2020-09-02T15:30:43.093Z",
      "modifiedDate": "2020-11-03T13:07:01.257Z"
    },
    {
      "eurostocksAdId": 332331,
      "createdDate": "2020-09-09T08:55:38.173Z",
      "modifiedDate": "2020-09-09T08:57:08.74Z"
    },
	...
	]
}
```

## Deleted Products by LocationId

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productlist/deleted/{locationId}`

Get deleted product list by locationId, provides EuroStocksAdId and CreatedDate and ModifiedDate having UTC date time format.

#### Headers

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| UserName | String | Username which EuroStocks provides |
| Password | String | Password which EuroStocks provides |
| APIKey   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name       | Type   | Description                                                 |
| ---------- | ------ | ----------------------------------------------------------- |
| locationId | Number | LocationId for which you want the all deleted products list |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/productlist/deleted/{locationId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
{
  "productList": [
    {
      "eurostocksAdId": 324895,
      "createdDate": "2020-09-01T04:37:29.92Z",
      "modifiedDate": "2020-09-01T04:53:19.43Z"
    },
    {
      "eurostocksAdId": 324927,
      "createdDate": "2020-09-01T04:57:30.643Z",
      "modifiedDate": "2020-09-01T05:23:07.403Z"
    },
    {
      "eurostocksAdId": 326862,
      "createdDate": "2020-09-02T15:30:43.093Z",
      "modifiedDate": "2020-11-03T13:07:01.257Z"
    },
    {
      "eurostocksAdId": 332331,
      "createdDate": "2020-09-09T08:55:38.173Z",
      "modifiedDate": "2020-09-09T08:57:08.74Z"
    },
	...
	]
}
```

## Product details by LocationId and EuroStocksAdId

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productDetails/{locationId}/{eurostocksAdId}`

Retrieves product details along with `portalInfo` using the specified `LocationId` and `EuroStocksAdId`.\
Refer to the example below for more details.

#### Headers

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| UserName | String | Username which EuroStocks provides |
| Password | String | Password which EuroStocks provides |
| APIKey   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name           | Type   | Description                                                |
| -------------- | ------ | ---------------------------------------------------------- |
| locationId     | Number | LocationId for which you want the all active products list |
| eurostocksAdId | Number | EurostocksAdId for which you want detail overview          |

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/productDetails/{locationId}/{eurostocksAdId}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
{
    "eurostocksAdId": 2697678,
    "locationId": 1,
    "mainCategory": "CAR_PARTS",
    "subCategory": "BUMPERS_GRILLE_AND_ACCESSORIES",
    "productType": "FRONT_BUMPER",
    "delivery": "ONLY_PICKUP",
    "condition": "NEW",
    "stock": "10",
    "weight": "25.00",
    "priceInfo": {
        "PRICE": "715.00",
        "DISCOUNTED_PRICE": "695.00"
    },
    "ktypes": [
        13535,
        13536,
        13537,
        13579,
        14518
    ],
    "partNumbers": [
        "120",
        "130",
        "140"
    ],
    "productInfo": [
        {
            "LANGUAGE_ISO_CODE": "en",
            "PRODUCT_TITLE": "Test Automation Product",
            "PRODUCT_SPECIFIC_DESCRIPTION": "EN : product Descriptions Automation Product"
        },
        {
            "LANGUAGE_ISO_CODE": "nl",
            "PRODUCT_TITLE": "Test Automation Product",
            "PRODUCT_SPECIFIC_DESCRIPTION": "NL : product Descriptions Automation Product"
        }
    ],
    "features": {
        "DAMAGE_OTHER_CATEGORIES": "YES",
        "AVAILABILITY": "AVAILABLE",
        "301_REDIRECT": "301_REDIRECT_YES"
    },
    "attributes": {},
    "images": [
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-oyqtofo8.jpg",
            "displaySequence": 1
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-14ku41g0.jpg",
            "displaySequence": 2
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-xqpkic5r.jpg",
            "displaySequence": 3
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-h0iofnj9.jpg",
            "displaySequence": 4
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-06ppck2s.jpg",
            "displaySequence": 5
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-keolypoy.jpg",
            "displaySequence": 6
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-eq3hiu2n.jpg",
            "displaySequence": 7
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-fk8c6eif.jpg",
            "displaySequence": 8
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-et0h053i.jpg",
            "displaySequence": 9
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-it7kyudm.jpg",
            "displaySequence": 10
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-9tt7u8bi.jpg",
            "displaySequence": 11
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-zawnj25f.jpg",
            "displaySequence": 12
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-skbfwyza.jpg",
            "displaySequence": 13
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-0n6gm26d.jpg",
            "displaySequence": 14
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-v8ws0qkz.jpg",
            "displaySequence": 15
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-zya1j0po.jpg",
            "displaySequence": 16
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-q3by4szo.jpg",
            "displaySequence": 17
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-tqudm3g9.jpg",
            "displaySequence": 18
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-dmpu1eye.jpg",
            "displaySequence": 19
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-gow9vspc.jpg",
            "displaySequence": 20
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-l4qi841n.jpg",
            "displaySequence": 21
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-3u69ahd2.jpg",
            "displaySequence": 22
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-zl2fl7mw.jpg",
            "displaySequence": 23
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-b2o4nx95.jpg",
            "displaySequence": 24
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-f3lkc14f.jpg",
            "displaySequence": 25
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-i70oz6s0.jpg",
            "displaySequence": 26
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-6qppq0d0.jpg",
            "displaySequence": 27
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-bhol4gmc.jpg",
            "displaySequence": 28
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-p3r8iia1.jpg",
            "displaySequence": 29
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-aev7i8vw.jpg",
            "displaySequence": 30
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-6423to55.jpg",
            "displaySequence": 31
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-yar07oxp.jpg",
            "displaySequence": 32
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-uo887661.jpg",
            "displaySequence": 33
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-mzqh09pc.jpg",
            "displaySequence": 34
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-j3904pm0.jpg",
            "displaySequence": 35
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-1sooqw2o.jpg",
            "displaySequence": 36
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-50br3n4e.jpg",
            "displaySequence": 37
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-qpoiq9jc.jpg",
            "displaySequence": 38
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-v6w4vpm3.jpg",
            "displaySequence": 39
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-2s6ke2wz.jpg",
            "displaySequence": 40
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-27u7d4i5.jpg",
            "displaySequence": 41
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-q6i6nhzm.jpg",
            "displaySequence": 42
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-ofsty4o4.jpg",
            "displaySequence": 43
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-zq75gnft.jpg",
            "displaySequence": 44
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-aqho6kru.jpg",
            "displaySequence": 45
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-8h2re24f.jpg",
            "displaySequence": 46
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-j4x2gem4.jpg",
            "displaySequence": 47
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-7vxsp157.jpg",
            "displaySequence": 48
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-w6w4jfzy.jpg",
            "displaySequence": 49
        },
        {
            "ref": "https://cloudfront.automotivecdn.nl/unsafe/w:1024/wm:0.5:soea:10:10:0.25/wmu:bG9jYWw6Ly8vcHJkLzAvOTNkMTZhZjk1NTQ5YzY0Ni93ZWJzaG9wL3dhdGVybWFyay9ldXJvc3RvY2tzLWxvZ29fdDIxMXhjN29vaWk3ZWYwcHN6cDY3YS5wbmc/plain/es://1/93d16af95549c646/webshop/products/2697678/original/test-automation-product-kl7ioz16.jpg",
            "displaySequence": 50
        }
    ],
    "portalInfo": {
        "InventoryManagement": {
            "inventoryStatus": "active",
            "cmsUrl": "https://login.eurostocks.com/#/product/productdetails/2697678"
        },
        "eurostocks.com": {
            "detailPageUrl": "https://www.eurostocks.com/nl/auto-onderdelen/bumpers-grille-en-toebehoren/voorbumper/abarth/ritmo/product/3624141",
            "searchable": true,
            "availableForPurchase": true
        }
    }
}

```

## Fitments Makes

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/fitments/makes`

Get all fitments makes information.

#### Headers

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| UserName | String | Username which EuroStocks provides |
| Password | String | Password which EuroStocks provides |
| APIKey   | String | ApiKey which EuroStocks provides   |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/fitments/makes
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
[
  {
    "MakeId": 2,
    "Make": "ALFA ROMEO"
  },
  {
    "MakeId": 3,
    "Make": "AUTO UNION"
  },
  {
    "MakeId": 5,
    "Make": "AUDI"
  },
  {
    "MakeId": 6,
    "Make": "AUSTIN"
  },
  {
    "MakeId": 10,
    "Make": "BEDFORD"
  },
  .....
]  
```

## Fitments Models

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/fitments/{makeId}/models`

Get fitments models details by makeId.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                     | Type   | Description                                   |
| ---------------------------------------- | ------ | --------------------------------------------- |
| makeId<mark style="color:red;">\*</mark> | Number | MakeId for which you want all fitments Models |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/fitments/2/models
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
[
  {
    "MakeId": 2,
    "ModelId": 278,
    "Model": "145 (930_)",
    "ConstructructedFrom": "7/1/1994",
    "ConstructedTo": "1/1/2001"
  },
  {
    "MakeId": 2,
    "ModelId": 282,
    "Model": "155 (167_)",
    "ConstructructedFrom": "1/1/1992",
    "ConstructedTo": "12/1/1997"
  },
  {
    "MakeId": 2,
    "ModelId": 287,
    "Model": "164 (164_)",
    "ConstructructedFrom": "1/1/1987",
    "ConstructedTo": "10/1/1998"
  },
  .....
] 
```

## Fitments Types

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/fitments/{modelId}/types`

Get fitments types details by modelId.

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                      | Type   | Description                                   |
| ----------------------------------------- | ------ | --------------------------------------------- |
| modelId<mark style="color:red;">\*</mark> | Number | ModelId for which you want all fitments Types |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/fitments/278/types
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK                                
[
  {
    "MakeId": 2,
    "ModelId": 278,
    "KType": 3820,
    "Car": "1.7 i.e. 16V (930.A1)",
    "ConstructionFrom": "10/1/1994",
    "ConstructionTo": "12/1/1996",
    "FirstCountry": "NL",
    "Cylinder": "4",
    "CylinderCapacity": "",
    "CylinderCapacityCcm": "1712",
    "CylinderCapacityLiter": "170",
    "Linked": "",
    "PowerHpFrom": "129",
    "PowerHpTo": "129",
    "PowerKwFrom": "95",
    "PowerKwTo": "95",
    "MotorCode": "AR 33401",
    "ConstructionType": "Hatchback",
    "ImpulsionType": "Voorwielaandrijving",
    "Valves": "4",
    "ModelName": "145 (930_)",
    "TypeName": "1.7 i.e. 16V (930.A1)",
    "TypeNumber": "3820",
    "FuelType": "Benzine",
    "FuelTypeProcess": "Zuigleidinginspuiting / Carburateur",
    "MotorType": "Ottomotor",
    "BrakeSystem": "Hydraulisch",
    "CcmTech": "1712",
    "Doors": "",
    "Voltage": "",
    "TankCapacity": "",
    "HSN_TSN": "4001679",
    "ABENr": "G731",
    "AbeFrom": "01/06/1994",
    "StatHer": "FIAT (I)",
    "StatTyp": "ALFA ROMEO 930",
    "ABS": "",
    "ASR": ""
  },
  {
    "MakeId": 2,
    "ModelId": 278,
    "KType": 3821,
    "Car": "1.6 i.e. (930.A2)",
    "ConstructionFrom": "10/1/1994",
    "ConstructionTo": "12/1/1996",
    "FirstCountry": "NL",
    "Cylinder": "4",
    "CylinderCapacity": "",
    "CylinderCapacityCcm": "1596",
    "CylinderCapacityLiter": "160",
    "Linked": "",
    "PowerHpFrom": "103",
    "PowerHpTo": "103",
    "PowerKwFrom": "76",
    "PowerKwTo": "76",
    "MotorCode": "AR 33201",
    "ConstructionType": "Hatchback",
    "ImpulsionType": "Voorwielaandrijving",
    "Valves": "2",
    "ModelName": "145 (930_)",
    "TypeName": "1.6 i.e. (930.A2)",
    "TypeNumber": "3821",
    "FuelType": "Benzine",
    "FuelTypeProcess": "Zuigleidinginspuiting / Carburateur",
    "MotorType": "Ottomotor",
    "BrakeSystem": "Hydraulisch",
    "CcmTech": "1596",
    "Doors": "",
    "Voltage": "",
    "TankCapacity": "",
    "HSN_TSN": "4001680",
    "ABENr": "G731",
    "AbeFrom": "01/06/1994",
    "StatHer": "FIAT (I)",
    "StatTyp": "ALFA ROMEO 930",
    "ABS": "",
    "ASR": ""
  },
  .....
]  
```

## Main Categories

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/mainCategories`

#### Headers

| Name     | Type   | Description                        |
| -------- | ------ | ---------------------------------- |
| UserName | String | Username which EuroStocks provides |
| Password | String | Password which EuroStocks provides |
| APIKey   | String | ApiKey which EuroStocks provides   |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET api/v1/productdatasupplier/mainCategories
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK

[
  {
    "Key": "ACCESSOIRES",
    "Description": "Accessoires"
  },
  {
    "Key": "ANTIQUE_AND_ART",
    "Description": "Antiek en Kunst"
  },
  {
    "Key": "AUTO_ONDERDELEN",
    "Description": "Auto onderdelen"
  },
  {
    "Key": "BANDEN_EN_VELGEN",
    "Description": "Banden en Velgen"
  },
  ....
]
```

## Sub Categories

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/subCategories/{maincategoryKey}`

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET api/v1/productdatasupplier/subCategories/{maincategoryKey}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK

[
  {
    "Key": "AUDIO_EN_TOEBEHOREN_UNIVERSEEL",
    "Description": "Audio en toebehoren (universeel)"
  },
  {
    "Key": "BAGAGE_EN_TRANSPORT",
    "Description": "Bagage en Transport"
  },
  {
    "Key": "ELEKTRONICA",
    "Description": "Elektronica"
  },
  {
    "Key": "EXTERIEUR",
    "Description": "Exterieur"
  },
  ....
]
```

## Product Types

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productType/{subcategoryKey}`

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET api/v1/productdatasupplier/productType/{subcategoryKey}
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK

[
  {
    "Key": "AFSTANDSBEDIENING_RADIO",
    "Description": "Afstandsbediening radio "
  },
  {
    "Key": "ANTENNE",
    "Description": "Antenne"
  },
  {
    "Key": "ANTENNE_VERSTERKER",
    "Description": "Antenne versterker"
  },
  {
    "Key": "BEDIENINGSPANEEL_RADIO",
    "Description": "Bedieningspaneel radio"
  },
  ....
]
```

## Features

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/features/{productTypeKey}`

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/features/AIRBAG_SET
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
						
[
  {
    "Key": "ALLOW_OUT_OF_STOCK_ORDER",
    "Description": "Sta toe dat een product afgerekend wordt welke niet meer op voorraad is",
    "IsMultipleAllowed": false,
    "IsPriceFeature": false,
    "IsMandatory": false,
    "IsDefaultFeature": true
  },
  {
    "Key": "AVAILABILITY",
    "Description": "Beschikbaarheid",
    "IsMultipleAllowed": false,
    "IsPriceFeature": false,
    "IsMandatory": true,
    "IsDefaultFeature": false
  },
  ...
]
```

## Feature Values

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/featurevalues/{featureKey}`

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                         | Type   | Description                    |
| -------------------------------------------- | ------ | ------------------------------ |
| featureKey<mark style="color:red;">\*</mark> | Number | Feature key to get it's values |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/featurevalues/DELIVERY
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
							
[
  {
    "Key": "ONLY_PICKUP",
    "Description": "Ophalen"
  },
  {
    "Key": "ONLY_SHIPPING",
    "Description": "Verzenden"
  },
  {
    "Key": "PICKUP_OR_SHIPPING",
    "Description": "Ophalen of verzenden"
  }
]
```

## Attributes

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}`

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |

#### Request Body

| Name                                             | Type   | Description                        |
| ------------------------------------------------ | ------ | ---------------------------------- |
| ProductTypeKey<mark style="color:red;">\*</mark> | Number | Product type key to get attributes |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/attributes/AIRBAG_SET
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
							
[
  {
    "Key": "MONTAGE_KOSTEN",
    "Description": "Montage kosten:",
    "InputType": "None",
    "IsMandatory": false,
    "IsMultilingualAttribute": false,
    "IsPriceAttribute": false,
    "IsDefaultAttribute": false
  },
  {
    "Key": "PRICE",
    "Description": "Price",
    "InputType": "None",
    "IsMandatory": true,
    "IsMultilingualAttribute": false,
    "IsPriceAttribute": true,
    "IsDefaultAttribute": false
  },
  {
    "Key": "INTERNAL_NUMBER",
    "Description": "Interne nummer",
    "InputType": "None",
    "IsMandatory": false,
    "IsMultilingualAttribute": false,
    "IsPriceAttribute": false,
    "IsDefaultAttribute": true
  },
  ...
]
```

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/languages
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
							
[
  {
    "Key": "de"
  },
  {
    "Key": "en"
  },
  {
    "Key": "nl"
  },
  ...
]
```

## Sample request Body

<mark style="color:blue;">`GET`</mark> `https://products-data-api.eurostocks.com/api/v1/productdatasupplier/productdatasupplierRequestTemplate/{ProductTypeKey}/{mandatoryMode}`

#### Headers

| Name                                       | Type   | Description                        |
| ------------------------------------------ | ------ | ---------------------------------- |
| UserName<mark style="color:red;">\*</mark> | String | Username which EuroStocks provides |
| APIKey<mark style="color:red;">\*</mark>   | String | ApiKey which EuroStocks provides   |
| Password<mark style="color:red;">\*</mark> | String | Password which EuroStocks provides |

#### Request Body

| Name                                             | Type   | Description                                                                                                                                                                                                          |
| ------------------------------------------------ | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ProductTypeKey<mark style="color:red;">\*</mark> | String | Product type key to get attributes                                                                                                                                                                                   |
| mandatoryMode                                    |        | <p>mandatoryMode=true is when only want mandatory details associated with Product Type in request to create new Ad</p><p>mandatoryMode=false is to get all details associated with Product Type to create new Ad</p> |

{% tabs %}
{% tab title="200: OK " %}

```javascript
{
    // Response
}
```

{% endtab %}
{% endtabs %}

**Sample Success Request**

```json
GET /api/v1/productdatasupplier/productdatasupplierRequestTemplate/AIRBAG_SET/true
HOST: products-data-api.eurostocks.com
Content-type: "application/json"
```

**Sample Success Response**

```json
HTTP/1.1 200 OK
							
{
  "eurostocksAdId": null,
  "locationId": 0,
  "imageCount": "",
  "mainCateogry": "",
  "subCategory": "",
  "productType": "",
  "condition": "",
  "delivery": "",
  "stock": "",
  "weight": "",
  "priceInfo": {
    "PRICE": ""
  },
  "ktypes": [],
  "oemNumbers": [],
  "productInfo": [
    {
      "LANGUAGE_ISO_CODE": "nl"
    },
    {
      "LANGUAGE_ISO_CODE": "en"
    }
  ],
  "features": {
    "AVAILABILITY": ""
  },
  "attributes": {}
}
```

## All Error Codes <a href="#error_handling_and_data_validation" id="error_handling_and_data_validation"></a>

#### Overview <a href="#overview_error" id="overview_error"></a>

List of possible error codes with each request.

**Product Add/Update Product request**

| ErrorCode - 400                                                                        |
| -------------------------------------------------------------------------------------- |
| {attributeValue} is invalid value of attribute {attributekey}                          |
| {attributeValue} is required                                                           |
| Attribute not mapped with this product type                                            |
| AttributeValue already exists for {attributekey}                                       |
| {attributes} are not valid attributes                                                  |
| {features} are not valid features                                                      |
| No Features mapped with this product type                                              |
| {features} is not exist for this category                                              |
| {featureValue} invalid for feature {featureKey}                                        |
| {attributes} are mandatory attributes                                                  |
| {features} are mandatory features                                                      |
| {featuresValue} already exist for {featureKey}                                         |
| Invalid Features Value for feature {featureKey}                                        |
| LANGUAGE\_ISO\_CODE Language is not supported                                          |
| LANGUAGE\_ISO\_CODE is required to add multilingual attribute                          |
| {ProductType} price can not be 0.                                                      |
| PRICE\_ON\_REQUEST is not allowed for Product type {ProductType}                       |
| Extended attribute(s) is mandatory for 'nl' language                                   |
| Ktype is not allow for subcategory                                                     |
| Stock can not be zero                                                                  |
| Invalid characters in OEMNumber                                                        |
| OEMNumber length should not be more then 20 characters                                 |
| Invalid price field                                                                    |
| Total unique makes exceeds the maximum limit of 5                                      |
| Feature MOTORBIKE\_PARTS\_MODEL can only be added with MOTORCYCLE\_PARTS main category |
| Please provide valid model values for MOTORBIKE\_PARTS\_MODEL                          |

| ErrorCode - 500      |
| -------------------- |
| Something went wrong |
| Product not added    |

| ErrorCode - 404                                 |
| ----------------------------------------------- |
| sub category does not exist                     |
| product type in not match with this subcategory |
| location is not exists                          |
| Supplier not linked with this location          |
| No Product found                                |

#### **Product Add/Update image request**

| ErrorCode - 400                          |
| ---------------------------------------- |
| Invalid request                          |
| Product does not belongs to the supplier |
| Either filename or new image not found   |

| ErrorCode - 404                   |
| --------------------------------- |
| Product not matched with location |

| ErrorCode - 500       |
| --------------------- |
| Internal server error |

#### **Product Delete request**

| ErrorCode - 400                          |
| ---------------------------------------- |
| Invalid request                          |
| Product does not belongs to the supplier |

| ErrorCode - 404                   |
| --------------------------------- |
| Product not matched with location |

| ErrorCode - 500       |
| --------------------- |
| Internal server error |

#### **Get Product request**

| ErrorCode - 400                          |
| ---------------------------------------- |
| Invalid request                          |
| Product does not belongs to the supplier |

| ErrorCode - 404                   |
| --------------------------------- |
| ErrorCode - 404                   |
| Product is not found              |
| Product not matched with location |

| ErrorCode - 500       |
| --------------------- |
| Internal server error |

#### **Price Attributes and Features**

| <p>Price Features can be identified from flag "IsPriceFeature".<br>please refer API : <https://products-data-api.eurostocks.com/api/v1/productdatasupplier/features/{productTypeKey}></p> |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

| <p>Price Attributes can be identified from flag "IsPriceAttribute".<br>please refer API : <https://products-data-api.eurostocks.com/api/v1/productdatasupplier/attributes/{productTypeKey}></p> |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

| Parameter               | Description                                           |
| ----------------------- | ----------------------------------------------------- |
| VAT\_NOT\_RECLAIMABLE   | Vat Not Reclaimable (Marge product), Added as Feature |
| PRICE                   | Price, Added as Attribute                             |
| PRICE\_ON\_REQUEST      | Price On Request, Added as Feature                    |
| DISCOUNTED\_PRICE       | Discounted price, Added as Attribute                  |
| EXCLUDING\_VAT          | Price is excluding vat, Added as Feature              |
| SPECIAL\_SHIPPING\_RATE | Special shipping rate, Added as Attribute             |

<br>
