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

# Recetas

> Define cómo las ventas y la producción consumen inventario: recetas, subrecetas, el ciclo borrador-publicación y el simulador de venta.

Las recetas conectan lo que **vendes** con lo que **tienes en stock**. Cuando se vende una orden, BOH busca la receta de cada producto y descuenta los ingredientes del inventario automáticamente.

**Dónde trabajas:** la sección **Recetas** del menú BOH — **Todas las recetas** (`/boh/admin/recipes`), **Subrecetas** (`/boh/admin/subrecipes`) y **Simular venta por producto** (`/boh/admin/recipes/effective`).

## Tipos de receta

| Tipo                  | Qué hace                                                                                                                                      | Ejemplo                                                  |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| **Sales recipe**      | Vinculada a un producto vendible. Se consume automáticamente cuando se vende el producto.                                                     | "Classic Burger" consume pan, carne, queso…              |
| **Production recipe** | Produce un ítem en stock a partir de otros ítems, mediante un [lote de producción](/es/manuals/boh/transfers-production#lotes-de-produccion). | "BBQ sauce" consume tomate, azúcar… y genera salsa.      |
| **Subrecipe**         | Composición reutilizable dentro de otras recetas. No tiene stock propio.                                                                      | "Burger base" usada por todas las hamburguesas del menú. |

Las líneas de receta pueden consumir:

* Un **ítem** específico (ej. 120 g de queso marca X).
* Una **etiqueta de ítems** (ej. 80 g de cualquier `TOMATO`) — BOH elige el miembro según su [estrategia de selección](/es/manuals/boh/catalog#etiquetas-de-items--items-intercambiables).
* Una **subreceta** (ej. 1 porción de "Burger base"), expandida recursivamente al momento del consumo.

<Frame>
  <img src="https://mintcdn.com/firepos/BrdVCD37uC_Sgwgg/images/manuals/boh/recipes/01-recipes-list.png?fit=max&auto=format&n=BrdVCD37uC_Sgwgg&q=85&s=90f41b0835320ee2d3bf4764c032d041" alt="Lista de recetas con filtro por tipo" width="2918" height="1516" data-path="images/manuals/boh/recipes/01-recipes-list.png" />
</Frame>

## Ciclo de vida: borrador, publicada, archivada

Las recetas están **versionadas**. Cada versión pasa por tres estados:

| Estado        | Significado                                                 |
| ------------- | ----------------------------------------------------------- |
| **Draft**     | Editable. No la usan las ventas.                            |
| **Published** | Inmutable y activa — es la versión que consumen las ventas. |
| **Archived**  | Histórica. Se conserva para auditar consumos pasados.       |

Publicar una versión nueva archiva automáticamente la publicada anterior, así **solo existe una versión publicada por producto y tienda** a la vez.

<Warning>
  Las ventas solo consumen recetas **publicadas**. Un producto con solo una receta en borrador no descontará inventario al venderse.
</Warning>

## Crear y publicar una receta

<Steps>
  <Step title="Abre el formulario de receta">
    **Recipes → Create** (`/boh/admin/recipes/new`).
  </Step>

  <Step title="Elige el tipo y el objetivo">
    Para una receta de venta, selecciona el producto vendible al que aplica y la tienda. Para una receta de producción, selecciona el ítem de salida. Para una subreceta, asígnale un code.
  </Step>

  <Step title="Agrega las líneas">
    Cada línea: qué consumir (ítem, etiqueta o subreceta), la cantidad y la unidad.
  </Step>

  <Step title="Guarda el borrador y revísalo">
    Desde la página de detalle (`/boh/admin/recipes/{id}`) puedes revisar las líneas y el historial de versiones.
  </Step>

  <Step title="Publica">
    Pulsa **Publish**. El borrador pasa a ser la versión activa.
  </Step>
</Steps>

<Frame>
  <img src="https://mintcdn.com/firepos/BrdVCD37uC_Sgwgg/images/manuals/boh/recipes/02-recipe-form.png?fit=max&auto=format&n=BrdVCD37uC_Sgwgg&q=85&s=f4d0e9dd06e4f240e10d6198585a2662" alt="Formulario de receta de venta con líneas de consumo de ítem, etiqueta y subreceta" data-path="images/manuals/boh/recipes/02-recipe-form.png" />
</Frame>

El mismo formulario cubre los tres tipos de receta — lo que cambia es el **objetivo**: un producto vendible y tienda para recetas de venta, un ítem de salida para recetas de producción y un código para subrecetas.

<Frame>
  <img src="https://mintcdn.com/firepos/BrdVCD37uC_Sgwgg/images/manuals/boh/recipes/05-production-recipe-form.png?fit=max&auto=format&n=BrdVCD37uC_Sgwgg&q=85&s=2478a428dc3e621e989752026625e10d" alt="Formulario de receta de producción con ítem de salida y cantidad producida" width="2940" height="2094" data-path="images/manuals/boh/recipes/05-production-recipe-form.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/firepos/BrdVCD37uC_Sgwgg/images/manuals/boh/recipes/06-subrecipe-form.png?fit=max&auto=format&n=BrdVCD37uC_Sgwgg&q=85&s=c728ad70967f112960085db3bba171ec" alt="Formulario de subreceta con código reutilizable" width="2940" height="1672" data-path="images/manuals/boh/recipes/06-subrecipe-form.png" />
</Frame>

<Frame>
  <img src="https://mintcdn.com/firepos/BrdVCD37uC_Sgwgg/images/manuals/boh/recipes/03-recipe-detail.png?fit=max&auto=format&n=BrdVCD37uC_Sgwgg&q=85&s=efafbd67ace5a3e96b0c7e97de649a64" alt="Detalle de receta con historial de versiones y acción de publicar" width="2940" height="1842" data-path="images/manuals/boh/recipes/03-recipe-detail.png" />
</Frame>

## Líneas con alcance por canal

Existe una única receta publicada por producto y tienda. Las líneas que solo aplican a un canal específico (delivery, drive-thru, comer en el local…) se modelan **por línea** usando el campo opcional `service_codes`:

| Configuración de línea                      | Cuándo aplica                                                   |
| ------------------------------------------- | --------------------------------------------------------------- |
| `service_codes` ausente o vacío             | **Siempre** — la línea es general y aplica a todos los canales. |
| `service_codes: ["DELIVERY"]`               | Solo cuando el canal de la orden es `DELIVERY`.                 |
| `service_codes: ["DELIVERY", "DRIVE_THRU"]` | Cuando el canal es `DELIVERY` **o** `DRIVE_THRU`.               |

<Tip>
  Modela contenedores de delivery, kits de cubiertos y bolsas como líneas con alcance `DELIVERY` en lugar de ponerlos en la receta base — las órdenes dine-in no los consumirán.
</Tip>

Al simular una venta (**Recipes → Simulate sale by product**), selecciona el tipo de servicio para ver exactamente qué líneas se consumirán para ese canal — las líneas generales siempre se muestran; las líneas con alcance por canal, solo cuando su código coincide.

## Simular una venta

Antes de salir en vivo, verifica qué descontará realmente un producto: **Recipes → Simulate sale by product** (`/boh/admin/recipes/effective`). Elige una tienda, un producto y un tipo de servicio, y BOH muestra la lista expandida de ítems y cantidades que consumiría una venta — incluyendo la expansión de subrecetas y la resolución de etiquetas.

<Frame>
  <img src="https://mintcdn.com/firepos/BrdVCD37uC_Sgwgg/images/manuals/boh/recipes/04-simulate-sale.png?fit=max&auto=format&n=BrdVCD37uC_Sgwgg&q=85&s=1aa9615acb3b5bc45a75b16d399a01ae" alt="Simulación de venta mostrando el consumo de ingredientes expandido para un producto" width="2940" height="2922" data-path="images/manuals/boh/recipes/04-simulate-sale.png" />
</Frame>

Siguiente: [Abastecimiento](/es/manuals/boh/procurement).
