Productos
Ruta: /catalogo/productos (en restaurante redirige a /catalogo)
Quién la usa: dueño
Permiso requerido: service.manage (sin ese permiso no se ve el editor)
Capturas: docs/manual/screenshots/catalogo/
Qué es
La ficha de un producto, de arriba a abajo: datos básicos (nombre, SKU,
sección, precio, costo, impuestos, visibilidad, foto), ¿De dónde sale?
(cómo se abastece), Tamaños (solo si el producto se prepara con receta) y
Opciones y extras (los grupos de Modificadores enlazados, con su tabla de
precio y consumo por tamaño). En Nura Resto no es una pantalla aparte: al
abrir /catalogo/productos el sistema lleva de vuelta a
Productos, y la ficha se despliega dentro de la fila del
producto al presionar Editar. La lista separada de productos existe solo
en las verticales que además venden servicios.
Cuándo se usa
Cada vez que hay que tocar un producto ya creado o darlo de alta: decidir si se compra listo, se prepara con receta o es una porción de otra cosa; corregir el precio; cambiarlo de sección; ponerle foto; agregar o quitar un tamaño; cargar el precio o el consumo de un extra para un tamaño en particular; o archivarlo cuando deja de venderse pero su historial debe quedar.
Paso a paso
Básicos
- Abra Ajustes → Productos, ubique el producto dentro de su sección y
presione Editar. La ficha se abre debajo de la fila y el botón pasa a
decir Cerrar.

- Corrija lo que haga falta y presione Guardar (el de la ficha, a la derecha). Los cambios se ven de inmediato en el POS y en el menú en línea.
- Para la foto, presione Foto y elija la imagen. Mientras no haya foto, el recuadro muestra un guion (—).
- Para retirar un producto sin borrar su historial, desmarque Activo y presione Guardar.
¿De dónde sale?
Debajo de los datos básicos hay tres opciones («pills»); solo una puede estar marcada a la vez y cambiar de una a otra reacomoda el resto de la ficha:
- Se compra listo — el producto tiene su propio stock y se pide al
proveedor tal cual (una lata de refresco). Al elegirla no hay receta que
cargar: la pantalla muestra el stock actual y el costo promedio del
artículo, y avisa que se recibe desde Inventario o Compras.

- Se prepara con receta — cada unidad vendida descuenta insumos y
preparaciones. La receta se edita ahí mismo: elija el Insumo o
preparación…, la Cantidad y presione + Agregar; Quitar borra
una línea. Junto al precio se ve el costo y el margen en vivo (en
frankies-sim, Margherita: «Costo $0.25 · margen 98 %» con solo la Caja de pizza en la vista «Todos los tamaños»).
- Es una porción de… — el producto se corta de otro producto o de una
preparación (una pizza en slices, una bandeja de lasaña en porciones).
Elija De un producto o De una preparación; si es de un producto,
elija cuál y, si tiene tamaños, cuál tamaño; escriba las Porciones por
unidad (por defecto 8) y presione Guardar porción.
Guardado, la línea de la derecha muestra el stock en porciones y su costo:
«0 porciones en stock · costo $0.00/porción · se agota solo al llegar a 0».

Tamaños
- Solo para productos Se prepara con receta: presione Variantes (N)
para editar los tamaños. Cada variante tiene su nombre, su precio absoluto
y su casilla de activa; OK graba esa variante y Quitar la borra. La
línea del final crea una variante nueva: nombre, precio, # de orden y
Añadir. En
frankies-simla Margherita tiene tres: 10" $12.00, 14" $18.00 y 18" $26.00. - Con tamaños cargados, la receta de «Se prepara con receta» gana un
segmentado Todos los tamaños | 10" | 14" | 18" encima de la lista: las
filas sin marca son comunes a todos los tamaños; un tamaño muestra sus
filas propias con la etiqueta «(solo 18")» junto al nombre, más las
comunes. En
frankies-sim, Solo 18" de Margherita agrega Albahaca 0.016 kg, Mozzarella 0.221 kg, Sauce 0.234 kg y Masa 0.649 kg a la Caja de pizza común, y el costo sube a $5.25 (margen 56 %).
Opciones y extras
- Los grupos de Modificadores enlazados al producto salen como chips («Extras · opcional»). + Agregar grupo · editar grupos lleva a Modificadores, donde se enlazan o desenlazan grupos completos — no se hace desde aquí.
- Si el producto tiene tamaños, debajo de los chips sale la tabla de precio y consumo por tamaño: una fila por opción del grupo, una columna por tamaño. Cada celda tiene el campo +$ (recargo de esa opción para ese tamaño; vacío = usa el recargo base de la opción, que se ve en gris junto al nombre) y, debajo, sus filas de consumo con + consumo para agregar otra. Esto es lo único de los extras que se edita en Productos: el resto (nombre, recargo base, consumo común) se edita en Modificadores.
Guardar
- No hay un botón único para toda la ficha: Guardar graba los datos
básicos; las variantes se graban con su propio OK; el origen, la
receta, la porción y las celdas de la tabla de extras se graban solas al
presionar su botón o al salir del campo (
onBlur), sin un Guardar aparte.
Campos y botones
| Campo/Botón | Qué hace | Notas |
|---|---|---|
| Foto | Sube la imagen del producto para el menú en línea | Muestra — cuando no hay imagen |
| Nombre | Nombre visible en POS, menú y comanda | — |
| SKU | Código interno del producto | Es el que usan las promociones (p. ej. MARGHERITA) |
| Sección | Mueve el producto a otra sección | No puede quedar vacío |
| Precio | Precio base sin impuesto | Debe ser mayor a 0; si queda en 0 el borde se marca en rojo |
| Costo | Costo unitario de referencia | En la simulación varios productos están en 0 |
| Grav. | El producto paga ITBMS | Encendido por defecto |
| Inv. | El producto descuenta existencias | Apagado en las pizzas: el consumo va por receta de ingredientes |
| Vence | El producto maneja fecha de vencimiento | — |
| POS / En línea | Visible en el punto de venta / en el menú en línea | Se suman a la visibilidad de la sección |
| Destacado | Aparece en el carrusel «Destacados» del menú en línea | — |
| Activo | Producto en circulación | Desmarcar = archivado, no borra el historial |
| Guardar | Graba los datos básicos | El origen, las variantes y los extras se graban aparte |
| Se compra listo | Marca el origen «tiene su propio stock» | Crea/liga el artículo con el que se pide al proveedor; sin receta |
| Se prepara con receta | Marca el origen «descuenta insumos y preparaciones» | Habilita la receta y, con tamaños, el segmentado de tamaño |
| Es una porción de… | Marca el origen «se corta de otro producto o preparación» | Habilita De un producto / De una preparación |
| Insumo o preparación… · Cantidad · + Agregar | Añade una línea a la receta (origen «Se prepara con receta») | Deshabilitado sin insumo o sin cantidad > 0 |
| Quitar (receta) | Borra esa línea de la receta | Sin confirmación |
| De un producto / De una preparación | Elige si la porción sale de un producto de venta o de una preparación | Cambia el selector de abajo |
| Producto de origen / Tamaño de origen | Producto (y tamaño, si tiene) del que se corta la porción | El selector de producto solo lista productos de origen «Se prepara con receta» |
| Preparación de origen | Preparación de la que se corta la porción | Solo cuando se eligió «De una preparación» |
| Porciones por unidad | Cuántas porciones salen de una unidad del origen | Por defecto 8 |
| Guardar porción | Graba el origen «Es una porción de…» | Deshabilitado sin origen elegido o sin porciones por unidad > 0 |
| Variantes (N) ▾/▴ | Despliega el editor de tamaños | N cuenta solo las variantes activas; solo con origen «Se prepara con receta» |
| OK / Quitar (variante) | Graba o borra esa variante | El precio de la variante es absoluto, no un recargo |
| Añadir (variante) | Crea un tamaño nuevo | # define el orden en que se ofrece |
| Todos los tamaños / 10" / 14" / 18" | Filtra la receta entre común y propia de un tamaño | Solo aparece con variantes cargadas |
| + Agregar grupo · editar grupos | Lleva a Modificadores para enlazar o desenlazar grupos | No enlaza grupos desde aquí |
| +$ (celda de la tabla de extras) | Precio de esa opción para ese tamaño | Vacío = usa el recargo base de la opción |
| + consumo (celda de la tabla de extras) | Agrega una línea de consumo de esa opción para ese tamaño | El consumo común (todos los tamaños) se edita en Modificadores |
| Eliminar (fila del producto) | Borra el producto | Solo si nunca se vendió y no tiene inventario |
Mensajes y errores
"Este producto tiene ventas registradas — desactívalo en lugar de eliminarlo."
NG_PRODUCT_HAS_SALES
"Este producto tiene inventario — consúmelo o ajústalo antes de eliminar."
NG_PRODUCT_HAS_STOCK
"Producto no válido."
NG_PRODUCT_INVALID
"Origen no válido."
NG_SOURCE_INVALID
"Ese producto no tiene receta cargada."
NG_RECIPE_EMPTY— al guardar una porción «De un producto» cuyo origen no tiene ninguna línea de receta común (sin tamaño) ni de ese tamaño.
"Ese artículo no se produce internamente."
NG_NOT_PRODUCIBLE— al guardar una porción «De una preparación» eligiendo un artículo que no es una preparación.
"No tienes permiso para esta acción."
NG_FORBIDDEN
Al subir la foto, si el usuario no puede editar el producto: «Sin permiso para editar el producto.»
Lo que la pantalla no hace. No hay una lista de productos independiente ni
una URL propia por producto: escribir /catalogo/productos devuelve a
/catalogo. Tampoco hay precio por sede: el precio de la ficha es el mismo en
todas. Con variantes cargadas, el precio del campo Precio deja de
cobrarse tal cual — el POS y el menú exigen elegir un tamaño y cobran el de la
variante. Y el selector Producto de origen de «Es una porción de…» solo
ofrece productos «Se prepara con receta»: no se puede cortar una porción de
otra porción ni de un producto comprado listo.