🔄 Actualizar producto¶
Este endpoint permite actualizar la información de un producto existente, incluyendo la imagen. Solo puede ser accedido por usuarios con rol Admin.
🧠 ¿Cuándo usar este endpoint?¶
- Para editar el nombre, precio, descripción o categoría de un producto.
- Para reemplazar la imagen del producto.
- Cuando se necesita corregir errores o actualizar datos.
🔐 Requiere autenticación¶
Debes enviar un token JWT válido en el encabezado:
Authorization: Bearer <token>
Debes asegurarte de que el usuario tenga el rol adecuado para actualizar productos.
ADMINISTRATOR
📋 Headers¶
Nombre | Valor |
---|---|
Authorization | Bearer |
Content-Type | application/json |
📦 Parámetros de la ruta¶
- Método:
PUT
- Ruta:
/product/update/:id
Nombre | Tipo | Descripción |
---|---|---|
id | UUID | ID del producto a actualizar (UUID) |
📦 Body (form-data)¶
Campo | Tipo | Requerido | Descripción |
---|---|---|---|
name |
string | ❌ | Nuevo nombre del producto |
description |
string | ❌ | Descripción del producto |
price |
number | ❌ | Precio actualizado |
stock |
number | ❌ | Nueva cantidad en inventario |
categoryId |
number | ❌ | ID de la nueva categoría |
image |
archivo | ❌ | Nueva imagen del producto (.jpg , .png ) |
variants |
array | ❌ | Nuevas variantes del producto (opcional) |
🚀 Ejemplo curl¶
curl -X PUT "http://localhost:3000/api/product/update/7afc232e-c660-4c63-942c-abe5deeb7e3a" \
-H "Authorization: Bearer <tu_token_jwt_aqui>" \
-H "Content-Type: application/json" \
-d '{
"name": "Camiseta Actualizada",
"description": "Descripción actualizada de la camiseta",
"price": 25.0,
"stock": 60,
"categoryId": 1,
"image": "<url_de_la_nueva_imagen>",
"variants": [
{
"color": "azul",
"size": "s",
"stock": 60
},
{
"color": "amarilla",
"size": "m",
"stock": 40
}
]
}'
📄 Respuesta exitosa¶
HTTP/1.1 200 OK
Content-Type: application/json
{
"success": true,
"message": "Product updated",
"data": {
"id": "7afc232e-c660-4c63-942c-abe5deeb7e3a",
"name": "Camiseta Actualizada",
"description": "Descripción actualizada de la camiseta",
"price": 25.0,
"stock": 60,
"categoryId": 1,
"variants": [
{
"color": "azul",
"size": "s",
"stock": 60
},
{
"color": "amarilla",
"size": "m",
"stock": 40
}
],
"imageUrl": "<url_de_la_nueva_imagen>"
}
}
❌ Respuesta de error¶
Código | Motivo | Solución |
---|---|---|
400 | Datos inválidos | Verifica que todos los campos requeridos estén bien escritos |
404 | Producto no encontrado | Asegúrate de que el ID del producto exista en la base de datos |
403 | Acceso denegado | Solo los usuarios Admin pueden actualizar productos |
401 | Token inválido o no enviado | Asegúrate de enviar el token en el header y que sea válido |
💡 Tip "¿Sabías que...?"¶
Si no incluyes un campo en el form-data, ese dato no será modificado. Solo se actualiza lo que envías.