Endpoint: POST /api/v1/store/products
Description: Create a new product in the store (Admin only).
Headers:
-
Content-Type: application/json
-
Authorization: Bearer <access_token>
(Admin role required)
Request Body:
{
"product_name": "string (required, 3-100 chars)",
"description": "string (required, 10-1000 chars)",
"initial_price": "number (required, min: 0)",
"final_price": "number (required, min: 0, must be <= initial_price)",
"currency": "string (required, enum: USD|INR|EUR|GBP)",
"in_stock": "boolean (optional, default: true)",
"color": "string (optional)",
"size": "string (optional)",
"main_image": "string (required)",
"other_images": "array of strings (optional)",
"other_attributes": "array of objects (optional, format: {name: string, value: string})"
}
Success Response (201):
{
"success": true,
"message": "Product created successfully",
"data": {
"product": {
"product_name": "string (required, 3-100 chars)",
"description": "string (required, 10-1000 chars)",
"initial_price": 45,
"final_price": 40,
"currency": "USD",
"in_stock": true,
"main_image": "https://plus.unsplash.com/premium_photo-1749846961895-464c17182d86?w=900&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxmZWF0dXJlZC1waG90b3MtZmVlZHwzfHx8ZW58MHx8fHx8",
"category_tree": [],
"image_count": 1,
"image_urls": [],
"rating": 0,
"all_available_sizes": [],
"_id": "6854aff5e5a90aa4b840c504",
"other_attributes": [],
"createdAt": "2025-06-20T00:48:53.390Z",
"updatedAt": "2025-06-20T00:48:53.390Z",
"__v": 0,
"discount_amount": 5,
"discount_percentage": 11.11
}
}
}
Error Responses:
401 Unauthorized:
{
"success": false,
"message": "Access token required"
}
403 Forbidden:
{
"success": false,
"message": "Admin access required"
}
422 Validation Error:
{
"success": false,
"message": "Validation failed",
"errors": {
"product_name": "Product name is required",
"final_price": "Final price cannot be greater than initial price"
}
}