> ## 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.

# Grupos de modificadores

> Define las preguntas que el cliente responde al pedir —tamaño, salsa, extras— una sola vez y reutilízalas en todos los productos.

Un grupo de modificadores es una **pregunta que le haces al cliente cuando pide**: *¿qué salsa?*, *¿qué tamaño?*, *¿le agregas algo?*. El grupo define la pregunta, las respuestas posibles y cuántas puede elegir.

Se define una vez y se reutiliza: el mismo grupo *Salsas* sirve para las diez hamburguesas de la carta, y el día que agregues una salsa nueva aparece en las diez. Navega a **Restaurant OS → Menú y Productos → Grupos de modificadores**.

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/modifier-groups/01-listado.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=848de1031d379a2a733e04136b3be38d" alt="Listado de grupos de modificadores" width="3200" height="2000" data-path="images/manuals/backoffice/modifier-groups/01-listado.png" />
</Frame>

***

## Lo mínimo que hay que saber

<Note>
  **1. Las opciones son productos del catálogo.** Para ofrecer *queso extra* tiene que existir un producto *queso extra*. No se escriben opciones sueltas.

  **2. El precio de la opción sale del producto**, no se escribe aquí. Esta pantalla lo muestra de solo lectura.

  **3. Solo pones dos números: el mínimo y el máximo.** Si el grupo es obligatorio y si es de una o de varias opciones **no se elige** — la pantalla lo deduce de esos dos números.
</Note>

***

## El camino simple

1. **Nuevo grupo de modificadores**, ponle nombre —*Salsas*, *Tamaño*, *Extras*—.
2. Pon el **mínimo** y el **máximo** de opciones que puede elegir.
3. Guarda, y en la pestaña **Options** busca los productos que van a ser las opciones.
4. Ve a la ficha de cada producto que use este grupo y agrégalo desde su pestaña **Modifier Groups**.

<Tip>
  Un grupo no hace nada por sí solo. Empieza a funcionar cuando un producto lo usa.
</Tip>

***

## Las reglas de selección

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/modifier-groups/02-reglas.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=39fd7ee0371f80c8ea1d2a78ab31f4b3" alt="Tarjeta de reglas de selección: mínimo, máximo y las etiquetas derivadas" width="3200" height="2000" data-path="images/manuals/backoffice/modifier-groups/02-reglas.png" />
</Frame>

La tarjeta tiene **solo dos campos**: **Minimum options** y **Maximum options**. Nada más.

Debajo aparecen dos etiquetas —**Required** u **Optional**, y **Single** o **Multiple**— con la leyenda *"Derived from min / max values"*. No son campos: son el resultado de los dos números que pusiste.

<Info>
  **Por qué se deduce en vez de elegirse.** Un grupo marcado "opcional" con mínimo 1 sería una contradicción, y alguien la descubriría cuando un cliente no pudiera terminar el pedido. Al derivarlo de los números, esa contradicción no puede existir.
</Info>

Ejemplos que cubren casi todo:

| Lo que quieres                         | Min | Max | Queda               |
| -------------------------------------- | --- | --- | ------------------- |
| Elegir el tamaño, sí o sí              | 1   | 1   | Required · Single   |
| Salsa, opcional                        | 0   | 1   | Optional · Single   |
| Hasta tres extras, opcionales          | 0   | 3   | Optional · Multiple |
| Elegir dos acompañamientos de un combo | 2   | 2   | Required · Multiple |

***

## Las opciones son productos

Esta es la parte que sorprende: una opción no es un texto suelto. **Detrás de cada opción hay un producto del catálogo**, y la pestaña **Options** ofrece dos caminos para llegar ahí.

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/modifier-groups/03-opciones.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=acb7f4e5a2378f8025e6fd8e430f7050" alt="Pestaña Options con los productos asignados como opciones" width="3200" height="2000" data-path="images/manuals/backoffice/modifier-groups/03-opciones.png" />
</Frame>

| Camino                        | Cuándo                                                                                                                                                                  |
| ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Search and assign product** | El producto ya existe. Lo buscas por nombre y queda asignado.                                                                                                           |
| **Add option**                | No existe todavía. El formulario te pide nombre, **PLU**, **External ID**, **Recipe ID**, descripciones y precio — es la ficha de un producto, y eso es lo que se crea. |

Tiene una razón práctica: una opción tiene precio, impuestos, código de PLU, receta de cocina y nombre en tres idiomas. Todo eso ya vive en un producto, y duplicarlo sería mantenerlo dos veces.

<Info>
  **Por eso existe el tipo de producto Modifier.** En [Productos](/es/manuals/backoffice/products) puedes crear un producto de tipo **Modifier** —*queso extra*, *doble carne*— que existe para ser opción y no para venderse suelto. Basta con apagarle **Show in menu**: el producto no aparece en la carta pero sigue disponible dentro de combos y modificadores.
</Info>

Las opciones **se reordenan arrastrando**, y ese es el orden en que el cliente las ve.

Las opciones **no se guardan solas**: al terminar hay que confirmar con **Save options**.

### Lo que se define por opción

<Frame>
  <img src="https://mintcdn.com/firepos/fMgbql6u0dMQH9DE/images/manuals/backoffice/modifier-groups/04-opcion.png?fit=max&auto=format&n=fMgbql6u0dMQH9DE&q=85&s=f21f92eda7d307e5b3371a98d9520883" alt="Diálogo Add option, con los identificadores y las descripciones de la opción" width="1600" height="1800" data-path="images/manuals/backoffice/modifier-groups/04-opcion.png" />
</Frame>

| Control                                   | Qué hace                                                   |
| ----------------------------------------- | ---------------------------------------------------------- |
| **Default option**                        | Viene preseleccionada cuando el cliente abre el grupo.     |
| **Availability**                          | Si se apaga, la opción **queda fuera de todos los menús**. |
| **External ID** · **PLU** · **Recipe ID** | Los identificadores para POS, retail y cocina.             |
| **Tags KDS**                              | Etiquetas para la pantalla de cocina.                      |

La pestaña **Price** del diálogo es **de solo lectura**: muestra el neto, el bruto y el sugerido *del producto que elegiste*. La propia pantalla lo dice: *"Values from the selected product (read from product detail)"*.

<Warning>
  **Para cambiar cuánto cuesta una opción, hay que ir al producto o a la lista de precios.** Aquí no se edita. Si el extra de queso tiene que costar distinto, el precio se corrige en el producto *queso extra* o en la [lista de precios](/es/manuals/backoffice/price-lists) correspondiente.
</Warning>

***

## El mismo grupo, distinto en un producto

Un grupo se define una vez, pero **un producto puede apartarse de él** sin romper a los demás. Eso se hace desde la ficha del producto, no aquí.

Desde la pestaña **Modifier Groups** de un producto puedes cambiar, solo para ese producto:

* el **título** con el que se muestra el grupo,
* el **mínimo** y el **máximo**,
* el **precio de cada opción**.

Lo que dejes en el valor del grupo se sigue heredando. Lo que cambies queda marcado como **Custom for this product**.

<Info>
  Es el mismo patrón que en el resto del catálogo: se define una vez arriba y se ajusta abajo solo donde hace falta. El grupo *Extras* puede costar más caro dentro de la hamburguesa premium sin que eso toque a las demás.
</Info>

***

## Recetas: cómo se resuelven los casos reales

<AccordionGroup>
  <Accordion title="Ofrecer salsas a elección, sin costo">
    1. Crea los productos de las salsas en [Productos](/es/manuals/backoffice/products), tipo **Modifier**, con **Show in menu** apagado y precio 0.
    2. **Nuevo grupo de modificadores**, nombre *Salsas*.
    3. Mínimo **0**, máximo **1**. El grupo queda **Optional · Single** solo.
    4. Pestaña **Options**: agrega las salsas y ordénalas arrastrando.
    5. En cada producto que las lleve, pestaña **Modifier Groups** → **Add group**.
  </Accordion>

  <Accordion title="Obligar a elegir el tamaño">
    1. Crea los productos *Pequeño*, *Mediano*, *Grande* como **Modifier**, cada uno con su precio.
    2. Grupo *Tamaño*, mínimo **1**, máximo **1**. Queda **Required · Single**.
    3. Marca *Mediano* como **Default option** para que venga preseleccionado.

    Con mínimo 1 el cliente no puede avanzar sin elegir, que es exactamente lo que quieres cuando el precio depende del tamaño.
  </Accordion>

  <Accordion title="Cobrar el mismo extra más caro en un producto premium">
    No dupliques el grupo. Ve a la ficha del producto premium, pestaña **Modifier Groups**, abre el grupo y edita el **precio de esa opción para este producto**.

    Queda marcado **Custom for this product** y los demás productos siguen con el precio del catálogo.
  </Accordion>

  <Accordion title="Se acabó un extra: sacarlo de todos lados">
    Si es por hoy, no toques esto: usa [Agotados](/es/manuals/backoffice/out-of-stock), que lo devuelve solo al cierre.

    Si es definitivo, apaga **Availability** en esa opción: queda fuera de todos los menús que usen el grupo.
  </Accordion>
</AccordionGroup>

***

## Errores que salen caros

<Warning>
  **Poner mínimo 1 en un grupo que querías opcional.** El grupo pasa a ser obligatorio y el cliente no puede terminar el pedido sin responder. No hay un interruptor de "opcional" que lo contradiga: mira las etiquetas debajo de los números antes de guardar.
</Warning>

<Warning>
  **Crear las opciones como productos vendibles.** Si un producto de tipo **Modifier** queda con **Show in menu** encendido, *queso extra* aparece en la carta como si fuera un plato. Apágalo: sigue funcionando como opción.
</Warning>

<Warning>
  **Buscar el precio de la opción en esta pantalla.** Aquí es de solo lectura. Se corrige en el producto o en la lista de precios, y desde ahí llega a todos los grupos que usen esa opción.
</Warning>

<Warning>
  **Apagar Availability de una opción por algo temporal.** Sale de todos los menús y se queda así hasta que alguien lo deshaga a mano.
</Warning>

***

## Glosario

| Término                     | Qué significa                                                                     |
| --------------------------- | --------------------------------------------------------------------------------- |
| **Grupo de modificadores**  | La pregunta que se le hace al cliente al pedir, con sus respuestas posibles.      |
| **Opción**                  | Una respuesta posible. Siempre es un producto del catálogo.                       |
| **Min / Max**               | Los dos únicos números que se configuran: cuántas opciones puede elegir.          |
| **Single / Multiple**       | Si el cliente elige una o varias. Se deduce del máximo; no se elige.              |
| **Required / Optional**     | Se deduce del mínimo: 1 o más lo hace obligatorio. Tampoco se elige.              |
| **Default option**          | La opción que viene preseleccionada.                                              |
| **Modifier**                | El tipo de producto que existe para ser opción y no para venderse suelto.         |
| **Custom for this product** | La marca de un grupo que en ese producto tiene título, límites o precios propios. |

***

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="No encuentro el producto que quiero poner como opción">
    Con **Search and assign product** solo aparecen los que ya existen. Si no está, tienes dos salidas: crearlo en [Productos](/es/manuals/backoffice/products) —normalmente de tipo **Modifier**— y volver a buscarlo, o usar **Add option** y cargarlo desde aquí con sus datos.
  </Accordion>

  <Accordion title="¿Dónde cambio el precio de una opción?">
    En el producto que está detrás de esa opción, o en la [lista de precios](/es/manuals/backoffice/price-lists) que use ese destino. Si solo tiene que cambiar dentro de un producto en particular, se hace desde la pestaña **Modifier Groups** de ese producto.
  </Accordion>

  <Accordion title="Agregué el grupo y el cliente no lo ve">
    Un grupo no llega solo al menú. Tiene que estar asignado al producto (pestaña **Modifier Groups** de la ficha) y ese producto tiene que estar en un menú que se haya sincronizado en [Asignación de menús](/es/manuals/backoffice/menu-assignments).
  </Accordion>

  <Accordion title="Convertí un producto a Modifier y perdió sus grupos">
    Es lo esperado y la pantalla lo avisa antes: *"A modifier cannot have modifier groups"*. Un modificador es una respuesta, no una pregunta, así que no puede tener grupos colgando.
  </Accordion>
</AccordionGroup>

***

## Lo que viene

* **Grupos anidados**: hoy una opción no puede abrir a su vez otro grupo de preguntas.
