🆕 Registrar producto¶
Este endpoint permite registrar un nuevo producto en la tienda. Solo los usuarios con rol Admin pueden acceder a esta funcionalidad.
🧠 ¿Cuándo usar este endpoint?¶
- Cuando quieres agregar un nuevo producto a tu catálogo.
- Para definir el nombre, precio, descripción, imagen y categoría del producto.
🔐 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 registrar productos.
ADMINISTRATOR
📋 Headers¶
Nombre | Valor |
---|---|
Authorization | Bearer |
Content-Type | multipart/form-data |
📦 Body (form-data)¶
- Método:
POST
- Ruta:
/products/register
Campo | Tipo | Descripción | Ejemplo |
---|---|---|---|
sku | Texto | Código único del producto | CARTO-006 |
name | Texto | Nombre del producto | Camiseta |
description | Texto | Descripción del producto | Camiseta de algodón 100% |
price | Texto | Precio del producto (decimal) | 20.1 |
stock | Texto | Cantidad en inventario | 100 |
category | Texto | Categoría del producto | ZAP |
variants | Texto | JSON string con variantes | [{"color":"azul","size":"s","stock":50},{"color":"rojo","size":"m","stock":30}] |
images | Archivo | Una o más imágenes del producto | Seleccionar uno o varios archivos desde tu dispositivo |
🚀 Ejemplo curl¶
curl -X POST "http://localhost:3000/api/products/register" \
-H "Authorization: Bearer <tu_token_jwt_aqui>" \
-F "sku=CARTO-006" \
-F "name=Camiseta" \
-F "description=Camiseta de algodón 100%" \
-F "price=20.1" \
-F "stock=100" \
-F "category=ZAP" \
-F "variants=[{\"color\":\"azul\",\"size\":\"s\",\"stock\":50},{\"color\":\"rojo\",\"size\":\"m\",\"stock\":30}]" \
-F "images=@/ruta/a/tu/imagen1.jpg" \
-F "images=@/ruta/a/tu/imagen2.jpg"
📄 Respuesta exitosa¶
HTTP/1.1 201 Created
Content-Type: application/json
{
"message": "Producto creado exitosamente",
"product": {
"id": 15,
"sku": "CARTO-006",
"name": "Camiseta",
"price": 20.1,
"stock": 100,
"category": "ZAP",
"variants": [
{"color":"azul","size":"s","stock":50},
{"color":"rojo","size":"m","stock":30}
],
"images": [
{
"id": "uuid-1",
"url": "https://storage.firebase.com/imagen1.jpg"
},
{
"id": "uuid-2",
"url": "https://storage.firebase.com/imagen2.jpg"
}
]
}
}
❌ Respuesta de error¶
Código | Motivo | Solución |
---|---|---|
400 | Datos faltantes o inválidos | Verifica que todos los campos requeridos estén bien escritos |
401 | No autenticado | Asegúrate de enviar el token en el header |
403 | Permiso denegado | Solo los usuarios Admin pueden registrar productos |
💡 Tip "¿Sabías que...?"¶
Puedes usar este endpoint junto a la subida de imágenes por Firebase para crear productos completos con fotos.