Crear o Actualizar Artículo
CREAR O ACTUALIZAR ARTÍCULO
Sección titulada «CREAR O ACTUALIZAR ARTÍCULO»CABECERA
Sección titulada «CABECERA»Endpoint para registrar o actualizar información de artículos en el sistema TitanicSoft desde Synergy. Permite la sincronización bidireccional de datos de productos/artículos incluyendo sus características, marca, tipo, línea y unidad de medida.
Endpoint: /api/articulo/
- POST - Para crear un nuevo artículo (synergy_id NO debe existir)
- PUT - Para actualizar un artículo existente (synergy_id DEBE existir)
JSON de Ejemplo (Payload)
Sección titulada «JSON de Ejemplo (Payload)»{ "synergy_id": "1234", "nombre": "FILTRO DE ACEITE MARCA XYZ", "codigo": "FILT-001", "descripcion": "FILTRO DE ACEITE PARA MOTOR DIESEL", "unidad_medida": "NIU", "marca": "BOSCH", "observacion": "Artículo de alta rotación", "tipo": "REPUESTO", "linea": "FILTROS", "sublinea": "FILTROS DE ACEITE"}Validaciones Detalladas
Sección titulada «Validaciones Detalladas»| Atributo | Valor Esperado | Tipo de dato | Requisito | Longitud |
|---|---|---|---|---|
| synergy_id | Ejemplo: “1234” - Identificador único del artículo en Synergy | String | obligatorio | 1 hasta 30 |
| nombre | Nombre completo del artículo | String | obligatorio | 1 hasta 255 |
| codigo | Código único del artículo. Se convierte a mayúsculas automáticamente | String | obligatorio | 4 hasta 15 |
| descripcion | Descripción detallada del artículo | String | obligatorio | 1 hasta 100 |
| unidad_medida | Código SUNAT de unidad de medida. Ejemplo: “NIU” (UNIDAD), “KGM” (KILOGRAMO), “MTR” (METRO), etc. | String | obligatorio | 1 hasta 15 |
| marca | Marca del artículo. Se crea automáticamente si no existe | String | obligatorio | 1 hasta 100 |
| observacion | Observaciones adicionales del artículo | String | opcional | 0 hasta 300 |
| tipo | Tipo de artículo. Ejemplo: “REPUESTO”, “INSUMO”, “HERRAMIENTA”. Se crea automáticamente si no existe | String | opcional | 0 hasta 15 |
| linea | Línea del artículo. Se crea automáticamente si no existe | String | opcional | 0 hasta 15 |
| sublinea | Sublínea del artículo. Debe existir la línea para crear la sublínea. Se crea automáticamente si no existe | String | opcional | 0 hasta 100 |
RESPUESTA EXITOSA
Sección titulada «RESPUESTA EXITOSA»POST (Creación) - Código HTTP 201
Sección titulada «POST (Creación) - Código HTTP 201»{ "codigo_http": 201, "estado": "success", "accion": "creado", "synergy_id": "1234", "mensaje": "Artículo creado exitosamente"}PUT (Actualización) - Código HTTP 200
Sección titulada «PUT (Actualización) - Código HTTP 200»{ "codigo_http": 200, "estado": "success", "accion": "actualizado", "synergy_id": "1234", "mensaje": "Artículo actualizado exitosamente"}POSIBLES ERRORES DE VALIDACIÓN
Sección titulada «POSIBLES ERRORES DE VALIDACIÓN»1. Método HTTP No Permitido - Código 405
Sección titulada «1. Método HTTP No Permitido - Código 405»Escenario: Se utiliza un método diferente a POST o PUT (GET, DELETE, etc.)
{ "codigo_http": 405, "estado": "method_not_allowed", "mensaje": "Método no permitido. Use POST para crear o PUT para actualizar."}2. Error de Validación de Campos - Código 400
Sección titulada «2. Error de Validación de Campos - Código 400»Escenario: Los datos enviados no cumplen con las reglas de validación (campos requeridos vacíos, longitud incorrecta, etc.)
{ "codigo_http": 400, "estado": "validation_error", "mensaje": "Error en la validación", "detalles": { "synergy_id": "El campo synergy_id es requerido", "nombre": "El campo nombre debe tener al menos 1 caracteres", "codigo": "El campo codigo debe tener entre 4 y 15 caracteres" }}3. Conflicto - Artículo Ya Existe (POST) - Código 409
Sección titulada «3. Conflicto - Artículo Ya Existe (POST) - Código 409»Escenario: Se intenta crear un artículo con POST pero el synergy_id ya existe en la base de datos
{ "codigo_http": 409, "estado": "conflict", "mensaje": "El artículo ya existe con este synergy_id", "detalles": { "synergy_id": "1234", "codigo_existente": "FILT-001", "solucion": "Use PUT para actualizar el artículo existente" }}4. No Encontrado - Artículo No Existe (PUT) - Código 404
Sección titulada «4. No Encontrado - Artículo No Existe (PUT) - Código 404»Escenario: Se intenta actualizar un artículo con PUT pero el synergy_id no existe en la base de datos
{ "codigo_http": 404, "estado": "not_found", "mensaje": "El artículo no existe con este synergy_id", "detalles": { "synergy_id": "1234", "solucion": "Use POST para crear un nuevo artículo" }}5. Unidad de Medida Inválida - Código 400
Sección titulada «5. Unidad de Medida Inválida - Código 400»Escenario: El código de unidad de medida enviado no existe en la tabla de unidades de medida de SUNAT
{ "codigo_http": 400, "estado": "validation_error", "mensaje": "Unidad de medida no existe en la tabla de unidades de medida de la SUNAT", "detalles": { "codigo_sunat": "XXX" }}Códigos SUNAT válidos más comunes:
- NIU: UNIDAD
- KGM: KILOGRAMO
- MTR: METRO
- LTR: LITRO
- ZZ: UNIDAD (SERVICIOS)
- GLL: GALÓN
- DAY: DÍA
- HUR: HORA
- TNE: TONELADA
- SET: JUEGO
- CAN: CAJA