GetProductsByReferenceCode
Búsqueda de Productos por Código de Referencia.
GetProductsByReferenceCodeOperation
Este endpoint permite consultar información completa y actualizada (precio, stock real, promociones vigentes) de una lista de productos, identificados por su código de referencia (ProductReferenceCode), para una sucursal y unidad de negocio determinadas.
¡Código copiado al portapapeles!
📦 Request
📝 Response
📋 Códigos de error
| Campos del Payload de Solicitud (Request) | |||
|---|---|---|---|
| Field | Data Type | Required | Description |
| ProductReferenceCodeCollection | List<string> | Sí | Lista de códigos de referencia de los productos a consultar. (Mínimo 1 elemento) |
| BranchOfficeReferenceCode | string | Sí | Código de referencia (o nombre) de la sucursal/bodega para la cual se desea consultar el catálogo. |
| BusinessUnitReferenceCode | string | Sí | Código de referencia de la unidad de negocio. |
| BusinessModel | string | Sí | Modelo de negocio de la consulta ("B2B" o "B2C"). |
Ejemplo de Request
{
"Data": {
"Token": {
"Id": "TokenAsignado"
},
"Operation": {
"Name": "GetProductsByReferenceCodeOperation",
"GroupName": "ProductStoreManager",
"Payload": "{\"ProductReferenceCodeCollection\":[\"PROD-000789\",\"PROD-000912\"],\"BranchOfficeReferenceCode\":\"BOF-PE-LIMA-01\",\"BusinessUnitReferenceCode\":\"BU-PERU-001\",\"BusinessModel\":\"B2B\"}"
}
}
}
| Campos del Payload de Respuesta (por producto) | |
|---|---|
| Field | Description |
| ProductReferenceCode | Identificador público del producto (el mismo código que se envió en la solicitud). |
| Name | Nombre comercial del producto. |
| Content | Contenido/presentación del producto (ej. "1" + "Litro", equivalente a "1 L"). |
| Price | Precio base del producto. |
| NewPrice | Precio vigente, con descuento aplicado si corresponde. |
| DiscountPercentage | Porcentaje de descuento activo sobre el precio base. |
| Stock | Disponibilidad real de inventario en el momento de la consulta. |
| SoldOut | Indica si el producto está agotado. |
| TargetedOffer | Indica si el producto tiene una oferta/promoción dirigida activa. |
| MaxQuantity | Límite máximo de unidades que el cliente puede comprar de este producto, ya calculado por la plataforma. Útil para no intentar pedir más de lo permitido. |
| ProductCategory | Categoría comercial del producto. |
| ManufacturerName | Fabricante del producto. |
| ImageName | Nombre/ruta de la imagen del producto. |
Respuesta exitosa (todos los productos encontrados)
{
"Successful": true,
"UserMessage": null,
"Results": [
{
"ProductReferenceCode": "PROD-000789",
"Name": "Aceite Vegetal Premium 1L",
"Content": "1",
"UnitMeasure": "Litro",
"Price": 18.50,
"NewPrice": 16.90,
"DiscountPercentage": 8.6,
"Stock": 124,
"SoldOut": false,
"TargetedOffer": true,
"MaxQuantity": 20,
"ProductCategory": "Abarrotes",
"ManufacturerName": "Alicorp",
"ImageName": "aceite-cocinero-1l.jpg"
},
{
"ProductReferenceCode": "PROD-000912",
"...": "mismo esquema"
}
]
}
Respuesta con algún código no encontrado (comportamiento parcial, no bloqueante)
{
"Successful": true,
"UserMessage": "1 producto(s) no encontrado(s): PROD-999999",
"NotFoundReferenceCodes": ["PROD-999999"],
"Results": ["... productos sí encontrados ..."]
}
Importante: Si alguno de los códigos enviados no corresponde a un producto existente, la
operación no falla: retorna los productos que sí fueron encontrados en
Results e informa por separado, en
NotFoundReferenceCodes, cuáles códigos no existieron.
Esto permite corregir la selección sin perder el resto de la consulta.
| Códigos de Error posibles | |
|---|---|
| Código de error | Motivo |
| NO_PRODUCT_CODES_PROVIDED | ProductReferenceCodeCollection fue enviado vacío. |
| BRANCH_OFFICE_NOT_FOUND | El campo BranchOfficeReferenceCode no corresponde a ninguna sucursal válida. |
| BUSINESS_UNIT_NOT_FOUND | El campo BusinessUnitReferenceCode no corresponde a ninguna unidad de negocio válida. |
| INVALID_BUSINESS_MODEL | El campo BusinessModel no corresponde a un valor válido ("B2B" / "B2C"). |
Nota: Si ninguno de los ProductReferenceCode
enviados existe para la combinación de sucursal, unidad de negocio y modelo de negocio
consultada, la respuesta sigue siendo Successful = true, con
Results vacío y
NotFoundReferenceCodes completo; no se considera un
error.