Endpoints para Stock
La entidad Stock representa la cantidad de productos de un mismo tipo que hay en un almacén. Cada stock incluye una serie de atributos que lo describen.
Características Comunes de los Stocks
-
Identificación Única: Cada stock tiene un identificador único
idque los distingue de otros stocks en el sistema. -
Datos de Stock: Un Stock tiene información asociada como cantidad, datos del producto asociado, datos del almacén asociado y otros detalles.
-
Actividades y Registro: Las actividades realizadas por un stock dentro del sistema, como la creación de recursos, pueden ser registradas.
-
Producto: Se almacena información básica sobre el producto al que está asociado el stock, como
idRemotey la referencia del prodcuto. -
Almacén: Se guarda información básica sobre el almacén en el que se encuentran cada producto, como
idRemote.
Endpoints
GET/Stock/getStock
Obtención de una Lista Paginada de Stocks.
Descripción
Este endpoint recupera una lista paginada de stocks del sistema. Permite a los clientes obtener datos de stocks basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La respuesta incluye información detallada sobre cada stock, incluyendo su ID, cantidad, información del producto e información del almacén y marca de tiempo de última actualización.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"product": {
"id": "string",
"idRemote": "string",
"reference": "string"
},
"warehouse": {
"id": "string",
"idRemote": "string"
},
"cantidad": 0,
"createdAt": "string",
"updatedAt": "string"
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<product>
<id>string</id>
<reference>string</reference>
</product>
<warehouse>
<id>string</id>
<idRemote>string</idRemote>
</warehouse>
<cantidad>0</cantidad>
<createdAt>string</createdAt>
<updatedAt>string</updatedAt>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/Stock/updatedFrom
Obtención de Stocks desde una fecha de modificación
Descripción
Este endpoint recupera una lista paginada de stocks del sistema, desde una fecha de modificación utilizando el parámetro date. Permite a los clientes obtener datos de stocks basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La respuesta incluye información detallada sobre cada stocks, incluyendo su ID, cantidad, información del producto e informaciónd el almacén y marca de tiempo de última actualización.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
updated | Fecha de actualización | String | 1999-01-01 01:00:00 |
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"product": {
"id": "string",
"idRemote": "string",
"reference": "string"
},
"warehouse": {
"id": "string",
"idRemote": "string"
},
"cantidad": 0,
"createdAt": "string",
"updatedAt": "string"
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<product>
<id>string</id>
<idRemote>string</idRemote>
<reference>string</reference>
</product>
<warehouse>
<id>string</id>
<idRemote>string</idRemote>
</warehouse>
<cantidad>0</cantidad>
<createdAt>string</createdAt>
<updatedAt>string</updatedAt>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
GET/Stock/getStockMovementType
Obtención de una Lista Paginada de Tipos de Movimiento de Stocks.
Descripción
Este endpoint recupera una lista paginada de tipos de movimiento de stocks del sistema. Permite a los clientes obtener los tipos de movimientos de stocks basados en parámetros de paginación como el número de página (page) y el número de ítems por página (pageSize). La respuesta incluye el ID y el nombre de cada tipo de movimiento.
Parámetros
| Nombre | Descripción | Tipo | Valor Predeterminado |
|---|---|---|---|
page | Número de página | Integer | 1 |
pageSize | Número de ítems por página | Integer | 10 |
Respuestas
JSON
{
"data": [
{
"id": "string",
"name": "string"
}
],
"pagination": {
"totalItems": 0,
"itemsPerPage": 0,
"currentPage": 0,
"totalPages": 0,
"nextPageUrl": "string"
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<export>
<data>
<item>
<id>string</id>
<name>string</name>
</item>
</data>
<pagination>
<totalItems>0</totalItems>
<itemsPerPage>0</itemsPerPage>
<currentPage>0</currentPage>
<totalPages>0</totalPages>
<nextPageUrl>string</nextPageUrl>
</pagination>
</export>
POST/Stock/create
Registro de Stocks en la API: Uso del Método POST
Actualmente, nuestro método POST en la API está configurado para aceptar únicamente datos en formato JSON. Para registrar stocks de manera efectiva, es esencial seguir un proceso que asegure la integridad de los datos y el correcto funcionamiento del sistma.
Proceso de Registro:
-
Creación de Producto: La creación de un producto es imprescindible ya que en este se registrará por primera vez un stock con cantidad cero. Así, posteriormente en este endpoint se registra la cantidad de stock correspondiente a ese producto. 👉Registrar Producto🌱
-
Creación de Almacén: Debe existir un almacén para poder crear un producto y por lo tanto para poder crear un stock. El almacén que se asocia al producto es el que se asocia al stock correspondiente. 👉Registrar Almacén🌱
-
Tipo de Movimiento: El tipo de movimiento ya está creado y puede ser
IN,OUToCORRECTION. En el tipoINse sumará la cantidad introducida en el JSON a la cantidad del stock correspondiente. Para el tipoOUTse restará y para el tipoCORRECTIONse actualizará. Como el stock se registra en la creación del producto, siempre habrá uno asociado a este producto para poder sumar, restar o actualizar la cantidad.
Detalles del Método POST:
En ese caso usaremos el método POST para actualizar stocks ya que han sido registrados en el método POST de Producto. Es necesario enviar datos estructurados en formato JSON que incluyan información esencial como el id del producto, el id del almacén y la cantidad que queremos registrar. El proceso garantiza que cada stock tenga una identidad única y esté correctamente configurado para interactuar con la plataforma de manera segura y eficiente. El sistema creará automáticamente un id local.
Todos los parámetros del cuerpo de la solicitud son obligatorios.
La petición debe cumplir el siguiente esquema:
[
{
"productId": "string",
"warehouseId": "string",
"cantidad": 0,
"movementTypeId": "string"
}
]
Es posible añadir varios stocks a través de la misma solicitud separándolos con comas dentro del array en el cuerpo de la solicitud.
Respuestas
Para evitar sobrecargar el servidor, este endpoint envía un mensaje a un consumidor encargado de procesar la petición. Se puede verificar el estado de la solicitud enviada a través de la url adjunta en la respuesta. Una respuesta correctamente enviada al consumidor debe parecerse a esta:
{
"code": 201,
"message": "Stock message created successfully and dispatched to the queue.",
"statusUrl": "http://host/api/database/v1/message/status/66bf382938941"
}
El campo statusUrl nos redirige a una respuesta más detallada sobre el estado de la petición. Una solicitud correctamente procesada por el consumidor tiene el siguiente aspecto:
{
"data": [
{
"status": "completed",
"errorMessage": null
}
],
"pagination": {
"totalItems": 1,
"itemsPerPage": 10,
"currentPage": 1,
"totalPages": 1,
"nextPageUrl": null
}
}
En caso de producirse cualquier error durante el procesado del mensaje, la respuesta tendrá un aspecto similar a este:
{
"code": 400,
"error": "Invalid stock data format, a required parameter is missing"
}
Posibles Errores en la Respuesta
| Error | Código | Respuesta |
|---|---|---|
| Este error ocurre cuando no se puede establecer una conexión con la base de datos. Es un problema interno del servidor. | 500 | {"code": 500,"error": "Database connection failed."} |
| Este error ocurre cuando no puede insertar o actualizar y en la dbs de pruebas. | 500 | {"code": 500,"error": "Invalid connection name, you cannot insert in default"} |
| Este error indica que falta un parametro. | 400 | {"code": 400,"error": "Parameter $parameter is required"} |
| Este error indica que no está autorizado. | 401 | {"code": 401,"error": "Unauthorized."} |
| Este error indica que no ha sido posible encontrar el Stock. | 404 | {"code": 404,"error": "No entity found for Stock with $id."} |
| Este error ocurre cuando intenta insertar un registro que ya existe | 409 | {"code": 409,"error": "Duplicate entry"} |
| Este error ocurre cuando intenta enviar demasiadas solicitudes en un corto periodo de tiempo. | 429 | {"code": 429,"error": "Too Many Requests"} |