# Productos y servicios
Los productos y servicios tiene la misma estructura, pero los productos tienen
dos campos adicionales: images
y total
. Los endpoints
son similares para
productos o servicios pero remplazando la palabra products
por services
# Modelo principal
El siguiente modelo detalla los campos en común que tienen los productos y servicios.
interface Principal {
/**
* El código principal del producto.
*/
code: string;
/**
* Código secundario del producto.
*/
auxiliarCode?: string;
/**
* El precio del producto.
*/
price?: number;
/**
* La descripción del producto.
*/
description: string;
/**
* Porcentaje de iva que se va aplicar al producto. Por defecto `4`.
*/
iva?: string;
aditionalInformation?: InfoAdicional[];
/**
* El estado del producto. Por defecto es `active`.
*/
status?: "active" | "inactive";
_movements: Movement[];
}
Consideraciones:
- Mayor detalle sobre el _movements.
- El
iva
tiene diferentes porcentajes de iva. - El
aditionalInformation
tiene el siguiente formato. - El precio final se calcula automáticamente.
# Información adicional
Permite agregar mas información sobre el producto, como color, medidas o cualquier tipo de información.
interface InfoAdicional {
nombre: string;
valor: string;
}
# Obtener un producto o servicio
GET https://api-test.upconta.com/v3/production/products-services/:id
# Ejemplo de respuesta
{
"_id": "662253f04939e1ab31a7477e",
"code": "COMP002",
"price": 600.5,
"description": "Computadoras"
}
# Productos
Los productos pueden alimentar el stock, pertenecer a bodegas, tener imágenes.
# Modelo
interface Producto {
/**
* Clave de unidad de medida. Por defecto `u`.
*/
claveUnidad?: string;
/**
* El número de productos en stock. Este campo se autoalimenta.
*/
total?: number;
/**
* Las bodegas a las que pertenece el producto. Este campo se autoalimenta con
* los movimientos de stock.
*/
bodegas: [];
}
- El
claveUnidad
tiene diferentes unidades
# Opciones de productos
GET https://api-test.upconta.com/v3/production/products/get-options
# Ejemplo de respuesta
{
"PorcentajesDeIVA": [
{
"id": "0",
"description": "0%",
"value": 0
},
{
"id": "2",
"description": "12%",
"value": 0.12
},
{
"id": "4",
"description": "15%",
"value": 0.15
},
{
"id": "5",
"description": "5%",
"value": 0.05
},
{
"id": "6",
"description": "No objeto de impuesto",
"value": 0
},
{
"id": "7",
"description": "Excento de IVA",
"value": 0
},
{
"id": "8",
"description": "8%",
"value": 0.08
},
{
"id": "10",
"description": "13%",
"value": 0.13
}
]
}
# Obtener claves de unidad
GET https://api-test.upconta.com/v3/utils/enums/claves-unidad-ec
# Ejemplo de respuesta
[
{
"id": "u",
"description": "Unidad"
},
{
"id": "kg",
"description": "Kilogramo"
},
{
"id": "lb",
"description": "Libra"
},
{
"id": "gr",
"description": "Gramo"
},
{
"id": "t",
"description": "Tonelada"
},
{
"id": "oz",
"description": "Onza"
},
{
"id": "m",
"description": "Metro"
},
{
"id": "m2",
"description": "Metro cuadrado"
},
{
"id": "m3",
"description": "Metro cúbido"
},
{
"id": "litro",
"description": "Litro"
},
{
"id": "galon",
"description": "Galón"
},
{
"id": "caneca",
"description": "Caneca"
},
{
"id": "tanque",
"description": "Tanque"
},
{
"id": "glb",
"description": "global"
}
]
# Obtener productos
GET https://api-test.upconta.com/v3/production/products
# Ejemplo de respuesta
{
"page": 1,
"total": 24,
"data": [
{
"_id": "65bacf5f377451eee0f4ac2a",
"code": "0050",
"price": 0,
"description": "EQUIPO DE COMPUTO"
},
{
"_id": "62cede8e35928bf153258073",
"code": "ENC",
"price": 10,
"description": "ENCEBOLLADO MIX"
}
]
}
# Obtener producto
GET https://api-test.upconta.com/v3/production/products/:id
# Ejemplo de respuesta
{
"_id": "65bacf5f377451eee0f4ac2a",
"code": "0050",
"price": 0,
"description": "EQUIPO DE COMPUTO"
}
# Crear producto
POST https://api-test.upconta.com/v3/production/products
# Ejemplo de petición
{
"code": "COMP002",
"auxiliarCode": "DELL_001",
"price": 600.5,
"description": "Computadoras",
"iva": "2",
"ice": "3620"
}
# Ejemplo de respuesta
{
"status": "active",
"code": "COMP002",
"auxiliarCode": "DELL_001",
"price": 600.5,
"description": "Computadoras",
"descripciones": [],
"iva": "2",
"ice": "3620",
"categorias": [],
"categoriasRestaurantes": [],
"claveUnidad": "u",
"_movements": [
{
"type": "created",
"user": "608adf6a375dfd83381ba163",
"nota": "Creado por desarrollador",
"date": "2024-04-18T21:37:47.612Z"
}
],
"total": 0,
"tipoProducto": "producto",
"_id": "662192ab0dbc2d448f6537f7",
"type": "product",
"aditionalInformation": [],
"precios": [],
"bodegas": [],
"images": [],
"relaciones": [],
"precioFinal": 672.56,
"__v": 0
}
# Editar producto
PUT https://api-test.upconta.com/v3/production/products/:id
# Ejemplo de petición
{
"description": "Computadoras de escritorio"
}
# Ejemplo de respuesta
{
"status": "active",
"code": "COMP002",
"auxiliarCode": "DELL_001",
"price": 600.5,
"precioFinal": 672.56,
"description": "Computadoras de escritorio",
"descripciones": [],
"iva": "2",
"ice": "3620",
"aditionalInformation": [],
"categorias": [],
"categoriasRestaurantes": [],
"claveUnidad": "u",
"precios": [],
"_movements": [
{
"type": "created",
"date": "2024-04-18T21:37:47.612Z",
"user": "608adf6a375dfd83381ba163",
"nota": "Creado por desarrollador"
},
{
"type": "edit",
"user": "608adf6a375dfd83381ba163",
"nota": "Editado por desarrollador",
"date": "2024-04-18T21:38:17.038Z"
}
],
"total": 0,
"bodegas": [],
"images": [],
"relaciones": [],
"tipoProducto": "producto",
"_id": "662192ab0dbc2d448f6537f7",
"__v": 1,
"type": "product"
}
# Eliminar producto
DELETE https://api-test.upconta.com/v3/production/products/:id
# Ejemplo de respuestas
{
"message": "success"
}
# Servicios
Los campos de los servicios son los detallados en el modelo
principal y los endpoints para hacer el CRUD básico son los
mismos que en productos, solo se reemplaza products
por services