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

# Catálogo de Productos

> Gestión del catálogo de productos y servicios: tipos de composición, porciones, recetas, categorías y marcas

El catálogo centraliza todos los productos y servicios que la empresa vende o utiliza. Incluye precios, costos, impuestos, stock y configuración avanzada por tipo de composición.

## Tipos de composición

| Tipo              | Código          | Cuándo usar                                                                                                  |
| ----------------- | --------------- | ------------------------------------------------------------------------------------------------------------ |
| **Simple**        | `simple`        | Producto o servicio estándar sin subdivisiones                                                               |
| **Con porciones** | `with_portions` | Un producto base que se vende en diferentes presentaciones (ej: botella de 1L vendida como porción de 250ml) |
| **Con receta**    | `with_recipe`   | Producto fabricado combinando otros productos del inventario (ej: pizza armada con ingredientes)             |

***

## Crear un producto

<Steps>
  <Step title="Ir a Productos → Nuevo Producto" />

  <Step title="Datos básicos">
    | Campo               | Descripción                                                     |
    | ------------------- | --------------------------------------------------------------- |
    | Nombre              | Nombre del producto (requerido)                                 |
    | SKU                 | Código interno de referencia                                    |
    | Código de barras    | EAN/UPC del producto                                            |
    | Código de báscula   | Código corto para balanzas de peso                              |
    | Tipo de composición | `simple`, `with_portions` o `with_recipe`                       |
    | Tipo de producto    | `service` (Servicio), `phisical` (Bien), `both` (Bien/Servicio) |
    | Es facturable       | Si el producto aparece como ítem de venta en facturas           |
  </Step>

  <Step title="Precios">
    | Campo                           | Descripción                                                         |
    | ------------------------------- | ------------------------------------------------------------------- |
    | Precio base (sin impuestos)     | Se ingresa directamente o se calcula desde precio de venta o margen |
    | Precio de venta (con impuestos) | Precio al consumidor — se calcula automáticamente desde el base     |
    | Costo                           | Costo de adquisición                                                |
    | Margen                          | % de ganancia bruta — se calcula y ajusta junto con el precio       |
  </Step>

  <Step title="Clasificación">
    Categoría, unidad de medida, marca (opcional) y actividad económica.

    Si la categoría o marca que se necesita no existe, se puede crear directamente desde el selector sin salir del formulario — ver sección abajo.
  </Step>

  <Step title="Tratamiento fiscal">
    Ver página [Impuestos en Productos](impuestos) para la configuración detallada.
  </Step>

  <Step title="Imagen (opcional)">
    Subir una foto del producto (JPG/PNG).
  </Step>

  <Step title="Guardar" />
</Steps>

***

## Producto con porciones (`with_portions`)

Permite vender un producto base en diferentes tamaños o presentaciones. El inventario se descuenta del producto base proporcionalmente.

**Campos adicionales requeridos**

| Campo                | Descripción                                                          |
| -------------------- | -------------------------------------------------------------------- |
| `base_unit_quantity` | Cantidad total que contiene una unidad base (ej: `1000` para 1000ml) |
| `base_unit`          | Unidad de la cantidad base (ej: `ml`, `g`, `oz`)                     |

**Porciones** — cada porción define:

| Campo                 | Descripción                                                     |
| --------------------- | --------------------------------------------------------------- |
| Nombre de la porción  | Etiqueta visible (ej: "Vaso 250ml")                             |
| Cantidad              | Cuánto del producto base consume esta porción (ej: `250`)       |
| Unidad                | Unidad de la porción (ej: `ml`)                                 |
| Precio base (sin IVA) | Precio de la porción sin impuesto                               |
| Precio de venta       | Se calcula automáticamente aplicando los impuestos del producto |
| Activa                | Si la porción está disponible para venta                        |

**Ejemplo**: Una botella de agua (1000ml) con tres porciones:

| Porción          | Cantidad | Precio |
| ---------------- | -------- | ------ |
| Vaso pequeño     | 250ml    | \$0.50 |
| Vaso mediano     | 500ml    | \$0.90 |
| Botella completa | 1000ml   | \$1.50 |

Al vender 2 vasos medianos se descuentan 1000ml (2 × 500ml) del inventario de la botella.

<Note>
  El modal de disponibilidad muestra cuántas unidades de cada porción están disponibles según el stock actual del producto base.
</Note>

***

## Producto con receta (`with_recipe`)

Producto armado combinando otros productos simples del inventario. Al producir, los componentes se descuentan automáticamente.

**Componentes** — cada componente requiere:

| Campo               | Descripción                                      |
| ------------------- | ------------------------------------------------ |
| Producto componente | Producto simple con stock disponible             |
| Cantidad necesaria  | Cuántas unidades de ese componente usa la receta |
| Tipo de unidad      | `base` (unidad base del componente)              |

El sistema calcula en tiempo real:

* **Costo total** de la receta (suma de `precio_base × cantidad` de cada componente)
* **Precio sugerido** (costo × 1.30 — margen del 30%)
* **Disponibilidad máxima**: cuántas unidades del producto final se pueden fabricar con el stock actual de cada componente (limitado por el componente con menos disponibilidad)

**Producir**: al registrar una producción, los componentes se descuentan del inventario y el producto fabricado aumenta su stock.

<Warning>
  Solo los productos simples (`composition_type: simple`) con stock disponible pueden agregarse como componentes de una receta.
</Warning>

***

## Crear categorías y marcas

Las categorías y marcas pueden crearse directamente desde el formulario de producto sin necesidad de salir:

1. En el selector de **Categoría**, escribir el nombre y hacer clic en **+ Crear categoría**.
2. La categoría se crea y se selecciona automáticamente.
3. El mismo flujo aplica para **Marca** con **+ Crear marca**.

Las categorías son globales por empresa (visibles en todas las sucursales). Las marcas también son por empresa.

***

## Importar productos en masa

<Steps>
  <Step title="Ir a Productos → Importar" />

  <Step title="Descargar la plantilla CSV" />

  <Step title="Completar la plantilla con los datos de los productos" />

  <Step title="Subir el archivo (máximo 10MB)">
    El sistema muestra cuántos se importaron correctamente y cuáles tuvieron errores. Para cada error hay una sugerencia generada por IA.
  </Step>
</Steps>

***

## Búsqueda y filtros

Buscar por nombre, SKU, código de barras o código de báscula. Los filtros avanzados permiten filtrar por tipo de producto, categoría y rango de precio.

## Ver movimientos de inventario

Desde el detalle del producto, la pestaña de movimientos muestra el historial de entradas y salidas con fecha y origen.
