Articulos
Endpoints
GET /api/items # Listar articulosPOST /api/items # Crear articuloPATCH /api/items/:id # Actualizar articuloDELETE /api/items/:id # Eliminar articuloGET /api/items/:id/batches # Lotes del articuloGET /api/items/:id/stock # Stock por almacen/zonaGET /api/items/:id/uoms # UOMs alternativasPOST /api/items/:id/uoms # Añadir UOM alternativaDELETE /api/items/:itemId/uoms/:id # Eliminar UOM alternativaCampos del articulo
| Campo | Tipo | Descripcion |
|---|---|---|
id | UUID | Identificador |
code | string | Codigo unico |
name | string | Nombre |
description | string | Descripcion |
uomId | UUID | Unidad de medida base |
categoryId | UUID | Categoria |
taxGroupId | UUID | Grupo de impuestos |
manageBy | N/B/S | Sin trazabilidad / Por lotes / Por serie |
basePrice | decimal | Precio base |
stock | decimal | Stock total |
minStock | decimal | Stock minimo (alertas) |
Crear articulo
curl -X POST http://localhost:3000/api/items \ -H "Authorization: Bearer <token>" \ -H "x-tenant-id: <tenantId>" \ -H "Content-Type: application/json" \ -d '{ "code": "PROD-001", "name": "Producto ejemplo", "uomId": "uuid-uom", "categoryId": "uuid-cat", "taxGroupId": "uuid-tax", "manageBy": "N", "basePrice": 25.50 }'Trazabilidad
manageBy: 'B'— Gestion por lotes (batchNum + expiryDate)manageBy: 'S'— Gestion por numero de serie (serialNum unico)manageBy: 'N'— Sin trazabilidad
Unidades de medida alternativas
Cada articulo puede tener UOMs alternativas con factor de conversion:
POST /api/items/:id/uoms{ "uomId": "uuid-uom-caja", "factor": 12}Esto significa que 1 caja = 12 unidades base.