> ## Documentation Index
> Fetch the complete documentation index at: https://firespark.cloud/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Obtener producto

> Carga un producto de un menú compuesto con precios y disponibilidad.

Devuelve un producto del menú activo, incluyendo nombre y descripción localizados, imagen, y precios y disponibilidad por canal. Usa este endpoint para páginas de detalle o para hidratar ítems del carrito.

> [!NOTE]
>
> Requiere un access token de Fire spark obtenido mediante [intercambio de
> token](https://firespark.cloud/docs/es/storefront-api/oauth/exchange/post.md).

## Parámetros de ruta

| Parámetro | Descripción |
| - | - |
| `id` | Identificador externo del producto. Solo alfanuméricos, `_` y `-`. 1–64 caracteres. |

## Parámetros de consulta

| Parámetro | Requerido | Descripción |
| - | - | - |
| `fulfillment_id` | No | Identificador externo de fulfillment. |
| `store_id` | No | Identificador externo de la tienda. |
| `channel_id` | No | Identificador externo del canal. |
| `brand_id` | No | Identificador externo de la marca. |

## Request

```bash theme={null}
curl "https://firespark.cloud/api/storefront/v1/menus/products/hamburguesa-clasica?fulfillment_id=delivery&store_id=centro&channel_id=app&brand_id=0001" \
  -H "Authorization: Bearer ACCESS_TOKEN"
```

## Response

```json Success theme={null}
{
  "data": {
    "id": "hamburguesa-clasica",
    "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "brand_id": "0001",
    "merchant_id": "22222222-2222-2222-2222-222222222222",
    "name": "Hamburguesa clásica",
    "description": "Carne Angus con lechuga y tomate.",
    "image_url": "https://cdn.example.com/hamburguesa-clasica.jpg",
    "channels": {
      "APP": {
        "id": "app",
        "uid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "name": "App móvil",
        "stores": {
          "centro": {
            "id": "centro",
            "uid": "c3d4e5f6-a7b8-9012-cdef-123456789012",
            "name": "Centro",
            "fulfillment": {
              "DELIVERY": {
                "uid": "d4e5f6a7-b8c9-0123-def4-567890abcdef",
                "id": "delivery",
                "type": "DELIVERY",
                "name": "Delivery",
                "pricing": {
                  "minimum_quantity": 1,
                  "maximum_quantity": 10,
                  "is_tax_inclusive": true,
                  "tax_rate": 0.15,
                  "price": 12.99,
                  "anchor_price": 14.99,
                  "anchor_price_percentage": 0.13,
                  "modifiers": [],
                  "modifier_group_ids": ["choose-drink"]
                },
                "availability": {
                  "status": "AVAILABLE",
                  "schedules": [
                    { "day_of_week": "monday", "periods": [{ "start_time": "11:00:00", "end_time": "22:00:00" }] }
                  ],
                  "out_of_stock_until": null
                },
                "bundled_items": []
              }
            }
          }
        }
      }
    },
    "cms_template_id": null,
    "cms": null,
    "status": "ACTIVE"
  }
}
```

## Objeto producto

| Campo | Tipo | Descripción |
| - | - | - |
| `id` | string | Identificador externo del producto. |
| `uid` | string (UUID) | Identificador interno de Fire spark. |
| `brand_id` | string \| null | Identificador externo de marca. `null` cuando el recurso no está ligado a una marca. |
| `merchant_id` | string (UUID) | Identificador de comercio en Fire spark. |
| `name` | string | Nombre visible. 1–100 caracteres. |
| `description` | string | Descripción opcional. Hasta 500 caracteres. `null` si se omite. |
| `image_url` | string | URL de imagen del producto. |
| `channels` | object | Precios y disponibilidad por canal, tienda y fulfillment. |
| `cms_template_id` | string (UUID) | Plantilla CMS vinculada. `null` si no hay plantilla asignada. |
| `cms` | object | Solo lectura. Plantilla CMS resuelta cuando está asignada. |
| `status` | string | `ACTIVE` o `INACTIVE`. |

Cada entrada de fulfillment en `channels` requiere `uid`, `id`, `type`, `name`, `pricing` y `availability`. El objeto `pricing` incluye `price`, `tax_rate`, `is_tax_inclusive`, límites de cantidad, `modifier_group_ids`, `modifiers` opcionales, `variant_group_ids` y `variants` opcionales (mira [Variantes](https://firespark.cloud/docs/es/concepts/products.md#variantes-y-grupos-de-variantes)) y `bundled_items` opcionales. El objeto `availability` incluye `status`, `schedules` (entradas con `day_of_week` y `periods`, o `null` cuando no hay restricción de horarios) y `out_of_stock_until` opcional.

## Respuestas de error

| Estado | Descripción |
| - | - |
| `401` | Access token ausente o inválido. |
| `403` | El token no tiene acceso a este producto. |
| `404` | Producto no encontrado en el menú activo para este contexto. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.