This endpoint returns the full details of a single product from the public storefront. Like the catalog list endpoint, it enforces visibility rules — only products withDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/MateoNavarroMN/Balsamoa-Backend/llms.txt
Use this file to discover all available pages before exploring further.
activo = true are returned, and all raw stock figures are replaced with sanitized availability information. Use this endpoint to render individual product pages in the store.
Request
| Property | Value |
|---|---|
| Method | GET |
| Path | /api/v1/tienda/productos/:id |
Path Parameters
The numeric ID of the product to retrieve. Must be a valid integer. IDs are stable and match those returned by the catalog list endpoint.
Example
Behavior
The server queries thevista_catalogo_productos view filtered by both id = $1 AND activo = true. If the product exists but has been deactivated by an admin, the endpoint returns 404 rather than exposing the inactive record. This ensures the public store never serves products that have been logically deleted or hidden.
Response
200 OK — A single sanitized product object. The response schema is identical to the objects in the store catalog list — raw stock fields are removed anddisponibilidad plus a boolean-only stock_por_talle are added.
Response Fields
The unique product ID.
The product name.
The product description. May be
null.The numeric ID of the product’s category.
The display name of the product’s category (e.g.,
"Hoodie", "Remera").The product price as a decimal string (e.g.,
"30000.00").Whether this product is marked as featured.
ISO 8601 timestamp of when the product record was created.
URL of the first image (lowest
orden value). May be null if no images are attached.An array of distinct hex color codes for all variants of this product. Use these to render color swatches on the product detail page.
All images associated with this product, ordered by
orden ascending.A human-readable availability label. One of
"Disponible" (stock > 3), "Últimas unidades" (stock 1–3), or "Agotado" (stock = 0).Per-size availability, with exact quantities removed. Only sizes that have at least one variant defined for this product are included.
Error Cases
| Status | Cause | Response body |
|---|---|---|
400 | id path parameter is not a valid number | {"mensaje": "El ID del producto debe ser un número válido"} |
404 | No active product found for the given ID (not found or inactive) | {"mensaje": "Producto no encontrado o no disponible"} |
500 | Database query failed | {"mensaje": "Error al obtener el producto"} |