# Update Vendor Product

## Overview
In order to update an existing vendor product, you can consume the endpoint presented in this article. In order to consume it, you must:

- Be authenticated user

For information on how you can authenticate, see: [Authentication](https://developer.sellercloud.com/dev-article/authentication/)

As soon as you do authentication and receive a valid token, it needs to be passed to the service call.

## Endpoint
NOTE: Endpoint “PUT /api/Vendors/{vendorId}/products/{productSKU}” is obsolete as it does not support special characters in the productID. Use the new endpoint presented in this article.

Example for such endpoint for **TT** server is:

https://tt.api.sellercloud.com/rest/api/Vendors/{vendorId}/products

For your server endpoint will be:

https://{your_server_id}.api.sellercloud.com/rest/api/Vendors/{vendorId}/products

## Request
Information about expected request parameters can be found on swagger UI [https://tt/api.sellercloud.com/rest/swagger](https://tt/api.sellercloud.com/rest/swagger).

- Method Type: **HttpPut**
- Authorization: Use **Bearer Token** (where ‘Token’ is the token received from token authentication)
- Header info: **Content-Type: application/json**
- Request Body:

```
{
  "ProductID": "string",
  "Price": 0,
  "PricePerCase": 0,
  "QtyPerCase": 0,
  "IsAvailable": true,
  "Qty": 0
}
```

| **Parameter**   | **Data Type** | **Description**                                                                 | **Is Required** | 
|----------------- |----------------|---------------------------------------------------------------------------------|-----------------| 
| ProductID       | string         | ID if existing product                                                           | true            | 
| Price           | decimal        | Product site price<br>Do not provide or set to “null” if no update is needed.  | false           | 
| PricePerCase    | decimal        | Product price per case<br>Do not provide or set to “null” if no update is needed.  | false           | 
| QtyPerCase      | integer        | Product quantity per case<br>Do not provide or set to “null” if no update is needed.  | false           | 
| IsAvailable       | bool           | Indicates if product is available<br>Do not provide or set to “null” if no update is needed.  | false           | 
| Qty             | integer        | Product quantity<br>Do not provide or set to “null” if no update is needed.    | false           |

## Response
- If user is authenticated and vendor product update is successful, then response will be **Status Code 200 => OK**
- If no product is found for the specified vendor id and product SKU, then response will be **Status Code 404 => Not Found**
- If user is not authenticated, then response will be **Status Code 401 => Not Valid Token**
- In case of error, response will be **Status Code 500 => Internal Server Error**
