# Product List

## GET /vendor-product/

> Get vendor product list

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product/":{"get":{"tags":["Product"],"summary":"Get vendor product list","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"offset","in":"query","schema":{"type":"integer"}},{"name":"keyword","in":"query","schema":{"type":"string"}},{"name":"count","in":"query","schema":{"type":"integer"}},{"name":"sortBy","in":"query","schema":{"type":"string"}},{"name":"sortOrder","in":"query","schema":{"type":"string"}},{"name":"productName","in":"query","schema":{"type":"string"}},{"name":"price","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}},{"name":"approvalFlag","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully got your product list.","content":{}},"400":{"description":"Bad Request","content":{}},"401":{"description":"Unauthorized","content":{}},"500":{"description":"Internal Server Error","content":{}}}}}}}
```

## Create a vendor product

> Creates a new product or updates an existing product in the vendor's catalog.

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product/":{"post":{"tags":["Product"],"summary":"Create a vendor product","description":"Creates a new product or updates an existing product in the vendor's catalog.","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"required":["categoryId","image","price","productName","productType","quantity","sku"],"type":"object","properties":{"productType":{"type":"string","description":"1 or 2"},"productName":{"type":"string","description":"Name of the product (max 255 characters)"},"productDescription":{"type":"string","description":"Detailed description of the product"},"sku":{"type":"string","description":"Stock Keeping Unit (SKU) (max 64 characters)"},"upc":{"type":"string","description":"Universal Product Code"},"hsn":{"type":"string","description":"Harmonized System Nomenclature"},"productSlug":{"type":"string","description":"URL-friendly identifier for the product"},"quantity":{"type":"integer","description":"Available stock quantity","format":"int32"},"categoryId":{"type":"array","description":"Array of category IDs","items":{"type":"integer"}},"image":{"type":"string","description":"URL or path to the product image"},"price":{"type":"number","description":"Price of the product","format":"float"},"location":{"type":"string","description":"Location of the product"},"outOfStockStatus":{"type":"integer","description":"Status indicating if the product is out of stock","format":"int32"},"requiredShipping":{"type":"integer","description":"Flag indicating if shipping is required","format":"int32"},"dateAvailable":{"type":"string","description":"Date when the product is available","format":"date-time"},"sortOrder":{"maximum":9999,"type":"integer","description":"Sorting order of the product (max 4 digits)","format":"int32"},"defaultImage":{"type":"integer","description":"Flag indicating the default image","format":"int32"},"relatedProductId":{"type":"string","description":"Comma-separated list of related product IDs"},"packingCost":{"type":"number","description":"Packing cost of the product","format":"float"},"shippingCost":{"type":"number","description":"Shipping cost of the product","format":"float"},"tax":{"type":"number","description":"Tax applied to the product","format":"float"},"taxType":{"type":"integer","description":"Type of tax applied to the product","format":"int32"},"others":{"type":"number","description":"Other charges applied to the product","format":"float"},"productHighlights":{"type":"string","description":"Highlights of the product"},"productDiscount":{"type":"array","description":"Discounts applied to the product","items":{"type":"number"}},"productSpecial":{"type":"array","description":"Special attributes for the product","items":{"type":"number"}},"tirePrices":{"type":"array","description":"Tiered pricing for the product","items":{"type":"number"}},"hasTirePrice":{"type":"integer","description":"Flag indicating if tiered pricing is available","format":"int32"},"width":{"type":"string","description":"Width of the product"},"height":{"type":"string","description":"Height of the product"},"status":{"type":"integer","description":"Status of the product (e.g., active or inactive)","format":"int32"},"weight":{"type":"string","description":"Weight of the product"},"length":{"type":"string","description":"Length of the product"},"fileName":{"type":"string","description":"File name for the product"},"containerName":{"type":"string","description":"Container name for storing product data"}}}}},"required":true},"responses":{"200":{"description":"Product created or updated successfully.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad request. Invalid input data.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"500":{"description":"Internal server error.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}}}}}}}
```

## Get Product Details

> Retrieves details of a specific product by its ID.

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product/{id}":{"get":{"tags":["Product"],"summary":"Get Product Details","description":"Retrieves details of a specific product by its ID.","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"The ID of the product to retrieve details for","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Successfully retrieved product details.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad Request","content":{}},"401":{"description":"Unauthorized","content":{}},"404":{"description":"Product not found","content":{}},"500":{"description":"Internal Server Error","content":{}}}}}}}
```

## Delete a Product

> Deletes a product by its ID.

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product/{id}":{"delete":{"tags":["Product"],"summary":"Delete a Product","description":"Deletes a product by its ID.","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"The ID of the product to delete","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Product deleted successfully.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad Request","content":{}},"401":{"description":"Unauthorized","content":{}},"404":{"description":"Product not found","content":{}},"500":{"description":"Internal Server Error","content":{}}}}}}}
```

## GET /vendor-product/vendor-category-list

> Retrieve vendor category list

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product/vendor-category-list":{"get":{"tags":["Product"],"summary":"Retrieve vendor category list","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved vendor category list","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad Request","content":{}},"401":{"description":"Unauthorized","content":{}},"500":{"description":"Internal Server Error","content":{}}}}}}}
```

## GET /specification

> Retrieve specification list by category ID

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/specification":{"get":{"tags":["Product"],"summary":"Retrieve specification list by category ID","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"categoryIds","in":"query","description":"Category IDs to filter the specification list","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Successfully retrieved specification list","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad Request","content":{}},"401":{"description":"Unauthorized","content":{}},"500":{"description":"Internal Server Error","content":{}}}}}}}
```

## GET /tax/tax-list

> Retrieve all tax list

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/tax/tax-list":{"get":{"tags":["Product"],"summary":"Retrieve all tax list","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Successfully retrieved all tax list","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad Request","content":{}},"401":{"description":"Unauthorized","content":{}},"500":{"description":"Internal Server Error","content":{}}}}}}}
```

## POST /vendor-product-seo/{productId}

> Create SEO for a vendor product

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product-seo/{productId}":{"post":{"tags":["Product"],"summary":"Create SEO for a vendor product","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"productId","in":"path","description":"The ID of the product for which SEO needs to be created","required":true,"schema":{"type":"integer"}}],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"metaTagTitle":{"type":"string","description":"SEO meta title for the product"},"metaTagDescription":{"type":"string","description":"SEO meta description for the product"},"metaTagKeyword":{"type":"string","description":"SEO meta keywords for the product"}}}}}},"responses":{"200":{"description":"SEO created successfully.","content":{}},"400":{"description":"Bad Request","content":{}},"401":{"description":"Unauthorized","content":{}},"500":{"description":"Internal Server Error","content":{}}}}}}}
```

## Create product specifications

> This endpoint allows you to save product specifications for a given product.

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product-specification":{"post":{"tags":["Product"],"summary":"Create product specifications","description":"This endpoint allows you to save product specifications for a given product.","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"required":["productId","productSpecifications"],"type":"object","properties":{"productId":{"type":"integer","description":"The ID of the product for which the specifications are being set","format":"int32"},"productSpecifications":{"type":"string","description":"Product specifications as a JSON string"}}}}},"required":true},"responses":{"200":{"description":"Product specification successfully saved","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad Request. The data provided is not valid.","content":{}},"500":{"description":"Internal Server Error.","content":{}}}}}}}
```

## Update attribute keyword for a vendor product

> Updates the attribute keyword for the specified product based on the attribute slug.

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/vendor-product-specification/attribute-slug/product/{id}":{"put":{"tags":["Product"],"summary":"Update attribute keyword for a vendor product","description":"Updates the attribute keyword for the specified product based on the attribute slug.","parameters":[{"name":"Authorization","in":"header","required":true,"schema":{"type":"string"}},{"name":"id","in":"path","description":"The ID of the product for which the attribute keyword needs to be updated","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Successfully updated attribute keyword.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"400":{"description":"Bad request. Invalid data or missing parameters.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}},"401":{"description":"Unauthorized. Authentication required.","content":{"application/xml":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}},"application/json":{"schema":{"type":"object","properties":{"status":{"type":"number"},"message":{"type":"string"}}}}}}}}}}}
```

## Get Vendor Specification Family List API

> This API retrieves a list of vendor specification families with optional pagination.

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/api/vendor-specification/vendor-family":{"get":{"tags":["Vendor Specification"],"summary":"Get Vendor Specification Family List API","description":"This API retrieves a list of vendor specification families with optional pagination.","parameters":[{"name":"limit","in":"query","description":"Number of records to return.","schema":{"type":"number"}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"number"}},{"name":"count","in":"query","description":"If set to 1, returns only the count.","schema":{"type":"number"}}],"responses":{"200":{"description":"Successfully fetched vendor specification family list.","content":{"*/*":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"createdBy":{"type":"string"},"createdDate":{"type":"string"},"modifiedBy":{"type":"string"},"modifiedDate":{"type":"string"},"id":{"type":"string"},"familyName":{"type":"string"},"isActive":{"type":"boolean"},"isDelete":{"type":"boolean"}}}}}}}}},"500":{"description":"Failed to fetch vendor specification family list.","content":{"*/*":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```

## Get Vendor Category List API

> This API retrieves a list of vendor categories with optional filters and pagination.

```json
{"openapi":"3.0.1","info":{"title":"SpurtV5","version":"1.0.0"},"tags":[],"servers":[{"url":"http://139.59.67.17/backend/api"},{"url":"https://139.59.67.17/backend/api"}],"paths":{"/api/vendor-specification/vendor-category-list":{"get":{"tags":["Vendor Specification"],"summary":"Get Vendor Category List API","description":"This API retrieves a list of vendor categories with optional filters and pagination.","parameters":[{"name":"limit","in":"query","description":"Number of records to return.","schema":{"type":"number"}},{"name":"offset","in":"query","description":"Number of records to skip.","schema":{"type":"number"}},{"name":"keyword","in":"query","description":"Keyword to filter categories.","schema":{"type":"string"}},{"name":"familyId","in":"query","description":"Family ID to filter categories.","schema":{"type":"number"}},{"name":"count","in":"query","description":"If set to true, returns only the count of categories.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successfully retrieved the vendor category list.","content":{"*/*":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"},"data":{"type":"array","items":{"type":"object","properties":{"categoryId":{"type":"string"},"sortOrder":{"type":"string"},"parentInt":{"type":"string"},"categoryName":{"type":"string"},"levels":{"type":"string"}}}}}}}}},"500":{"description":"Failed to fetch vendor category list.","content":{"*/*":{"schema":{"type":"object","properties":{"status":{"type":"integer"},"message":{"type":"string"}}}}}}}}}}}
```
