Endpoints / Productos
Actualizar producto
Actualiza parcialmente los datos editables de un producto, incluyendo sus relaciones, precios, inventario, imagen y estado, dentro de la empresa del usuario autenticado.
/products/:idCaso de Uso
Se usa cuando la aplicación necesita modificar cualquiera de los datos de un producto existente: cambiar su categoría, marca, proveedor o medida, corregir código o nombre, ajustar precios, modificar niveles de stock, actualizar la imagen o cambiar el estado. Al usarlo, el usuario obtiene los datos completos del producto actualizado con sus relaciones resueltas.
Autenticación
Requiere token JWT en el header `Authorization: Bearer <token>`. Permite acceso a usuarios con rol jefe o empleado. La empresa y el usuario autenticado deben estar activos.
Parámetros de ruta
idstringobligatorioIdentificador del producto.
Body
prdtoctgriaidstring opcionalNuevo identificador de la categoría del producto.
prdtomrcidstring opcionalNuevo identificador de la marca del producto.
prdtoprovidstring opcionalNuevo identificador del proveedor del producto.
prdtomdiaidstring opcionalNuevo identificador de la medida del producto.
prdtocodigostring opcionalNuevo código del producto; debe ser único dentro de la empresa.
prdtonombrestring opcionalNuevo nombre del producto; debe ser único dentro de la empresa.
prdtopreciocompranumber opcionalNuevo precio de compra del producto.
prdtoprecioventanumber opcionalNuevo precio de venta del producto.
prdtostockminimonumber opcionalNuevo nivel mínimo de stock.
prdtostockmaximonumber opcionalNuevo nivel máximo de stock.
prdtoestadostring opcionalNuevo estado del producto; acepta activo, inactivo o eliminado.
imagenfile opcionalNueva imagen del producto; solo se aceptan .png o .jpg de hasta 5 MB.
Reglas de negocio
Solo un usuario con rol jefe o empleado puede actualizar productos.
Solo permite actualizar productos de la empresa del usuario autenticado.
La empresa del usuario autenticado debe estar activa.
El usuario autenticado debe estar activo.
El producto debe existir dentro de la empresa autenticada.
Un producto con estado eliminado no puede actualizarse.
Debe enviarse al menos un campo editable con un valor diferente al actual.
Si se envían prdtoctgriaid, prdtomrcid, prdtoprovid o prdtomdiaid, deben corresponder a entidades existentes dentro de la misma empresa.
Si se envía prdtocodigo, no puede estar vacío ni repetirse.
Si se envía prdtonombre, no puede estar vacío ni repetirse.
Si se envían campos numéricos, deben ser valores válidos.
Si se envía prdtoestado, solo puede ser activo, inactivo o eliminado.
Si se envía imagen, solo se aceptan archivos .png y .jpg de hasta 5 MB.
La respuesta incluye las relaciones resueltas como objetos anidados.
Errores esperados
No se envió un token JWT válido o el token no contiene información válida del usuario.
No se envió el parámetro id en la ruta.
El producto no existe dentro de la empresa del usuario autenticado o la actualización no devolvió resultados.
prdtoctgriaid fue enviado vacío.
prdtomrcid fue enviado vacío.
prdtoprovid fue enviado vacío.
prdtomdiaid fue enviado vacío.
prdtocodigo fue enviado vacío.
prdtonombre fue enviado vacío.
prdtoestado fue enviado vacío.
prdtoestado tiene un valor no permitido.
Uno de los campos numéricos fue enviado vacío.
Uno de los campos numéricos no es un número válido.
La imagen enviada supera los 5 MB.
La imagen enviada no tiene extensión .png o .jpg.
Ocurrió un error interno al guardar la imagen en el servidor.
El producto existe, pero está en estado eliminado.
El prdtoctgriaid enviado no corresponde a una categoría existente.
El prdtomrcid enviado no corresponde a una marca existente.
El prdtoprovid enviado no corresponde a un proveedor existente.
El prdtomdiaid enviado no corresponde a una medida existente.
Otro producto de la misma empresa ya usa el prdtocodigo enviado.
Otro producto de la misma empresa ya usa el prdtonombre enviado.
No se envió ningún campo editable o todos los valores enviados son iguales a los actuales.
La empresa asociada al usuario autenticado no fue encontrada.
La empresa asociada al usuario autenticado está inactiva.
El usuario autenticado no fue encontrado dentro de su empresa.
El usuario autenticado no pertenece a la empresa indicada por su sesión.
El usuario autenticado intentó acceder a una empresa distinta a la suya.
El rol del usuario no está permitido para acceder al módulo de productos.
El usuario autenticado no tiene un rol permitido para actualizar productos.
El usuario autenticado está inactivo y no puede usar el sistema.
Notas de uso
Este endpoint no recibe query params.
Envía solo los campos que deseas actualizar.
Si no se envía imagen, usa Content-Type: application/json.
Si se envía imagen, usa Content-Type: multipart/form-data con el archivo en el campo imagen.
prdtoestado permite el valor eliminado para eliminación lógica del producto.
La respuesta ya incluye las relaciones anidadas listas para usar en la interfaz.