AreaCacaoDocs
FormulaciónImportar recetas

Importar desde CSV o Excel

La vía de importación sin IA y sin créditos: subes una hoja de cálculo, mapeas las columnas y AreaCacao crea o actualiza tus recetas en lote.

Qué es

Importar desde CSV o Excel convierte una hoja de cálculo en recetas de AreaCacao. Tú preparas el archivo, tú decides qué significa cada columna, y el importador crea (o actualiza) las recetas. No interviene ninguna IA en la lectura del archivo y no se consumen créditos.

  • Ruta: https://app.areacacao.com/import-recipe, pestaña Subir nuevo.
  • Cómo se llega: barra lateral → FORMULACIÓNImportar recetas → pestaña Subir nuevo. La tarjeta está debajo de la zona de subida de fotos/PDF.
  • Disponibilidad: activa por defecto para cualquier usuario con cuenta. No hay restricción por plan.

En qué se diferencia de importar una foto o un PDF

CSV / ExcelFoto o PDF
Lectura del archivoDeterminista: tus columnas, tu mapeoLa IA interpreta la imagen
Créditos0~15 por imagen, ~25 por PDF
Límite de usoSin límite de uso (sí hay un límite técnico de frecuencia, ver abajo)Limitado por tu saldo de créditos
Varias recetas por archivoSí, todas las que quepan en la hojaUna por archivo
Quién decide el significado de cada datoTú, en el paso de mapeoLa IA, y tú corriges después

La única parte donde puede intervenir la IA es opcional y la eliges tú: autocompletar los ingredientes que no existan en tu catálogo (ver la sección Ingredientes que no casan con el catálogo, más abajo).

La tarjeta y sus dos botones

La tarjeta se titula «CSV o Excel (sin créditos)» y su texto es: «Importa tus recetas desde una hoja de cálculo. No consume créditos y sin límite de uso. Importa una o varias recetas a la vez.»

Tiene dos botones y un desplegable:

  • Importar CSV/Excel — abre el asistente.
  • Descargar plantilla — descarga el archivo directamente, sin pasar por el servidor.
  • Guía rápida: cómo preparar tu archivo — un desplegable con las reglas de llenado y la lista de valores válidos de filling_type.

Si la tarjeta no aparece en tu pantalla, la funcionalidad está apagada desde infraestructura (bandera RECIPE_IMPORT_CSV_ENABLED). Está encendida por defecto: sólo se apaga si vale explícitamente false.

La plantilla

El botón Descargar plantilla genera plantilla-recetas-areacacao.csv en tu equipo. Es un CSV con BOM UTF-8 (para que Excel respete los acentos) y trae la cabecera canónica más tres recetas de ejemplo, elegidas para enseñar los tres patrones que el importador entiende:

  1. Ganache de maracuyá — relleno simple: cuatro filas comparten recipe_name, y la última lleva los pasos.
  2. Trufa clásica de cacao — relleno con capas: la columna part separa «Interior» de «Rebozado».
  3. Tableta 70% cacao — receta de chocolate: usa chocolate_type y cocoa_percent, y deja filling_type vacío.

No estás obligado a usar la plantilla: puedes importar tu propia hoja con tus propias cabeceras y decirle en el paso de mapeo qué es cada columna.

Columnas

La plantilla trae 16 columnas, en este orden:

recipe_name, recipe_type, chocolate_type, filling_type, cocoa_percent, part, ingredient_code, ingredient_name, quantity, unit, weight_g, cost_per_unit, cost_currency, is_supply, supply_code, steps

En el asistente puedes mapear 18 campos: los 16 de la plantilla más recipe_id (ID de la receta) y cost_unit (Unidad de coste), que existen como destino de mapeo aunque no vengan en la plantilla.

CampoEtiqueta en el asistentePara qué sirve
recipe_nameNombre de la recetaÚnico campo obligatorio. Agrupa las filas: varias filas con el mismo nombre forman una sola receta.
recipe_idID de la recetaActualiza una receta existente en lugar de crear una nueva.
recipe_typeTipo de recetaValores aceptados: chocolate, filling, relleno. Cualquier otro valor (o vacío) se trata como generic.
chocolate_typeTipo de chocolateSólo para recetas de chocolate.
filling_typeTipo de rellenoEl tipo técnico del relleno; habilita la validación por rangos.
cocoa_percent% de cacaoPorcentaje de cacao de la receta.
partParte / secciónSepara capas o secciones dentro de la misma receta.
ingredient_codeCódigo de ingredienteVincula la fila a una ficha exacta de tu catálogo.
ingredient_nameNombre de ingredienteSe usa para buscar por nombre cuando no hay código.
quantityCantidadCantidad del ingrediente.
unitUnidadUnidad de la cantidad.
weight_gPeso (g)Peso en gramos. Si lo dejas vacío, se intenta convertir desde cantidad + unidad.
cost_per_unitCoste por unidadCoste unitario de la línea.
cost_unitUnidad de costeUnidad a la que se refiere el coste.
cost_currencyMonedaMoneda del coste.
is_supplyEs insumoMarca la fila como insumo (material no comestible).
supply_codeCódigo de insumoVincula la fila a un insumo de tu catálogo por código.
stepsPasos / elaboraciónTodos los pasos en una sola celda, separados por el carácter barra vertical.

Cómo se agrupan las filas

Las filas se agrupan por recipe_name normalizado: minúsculas, sin tildes y con los espacios internos colapsados. Es decir, «Ganache de Maracuyá» y «ganache de maracuya» acaban en la misma receta.

Reglas de llenado que el importador aplica

  • Un ingrediente por fila. No escribas la lista completa de ingredientes en una sola celda: el importador no puede separarla.
  • Pasos con |. Basta con rellenar steps en una fila cualquiera de la receta.
  • Capas con part. Mismo recipe_name en todas las filas y el nombre de la capa en part. Si la receta tiene una sola capa, deja part vacía.
  • filling_type con el identificador exacto, en minúsculas y con guiones bajos. ganache a secas no es un valor válido; la ganache clásica de bombón es ganache_bombon. La lista completa está en el desplegable Guía rápida de la propia pantalla.

El asistente, paso a paso

El asistente se titula «Importar recetas desde CSV» y tiene cinco pantallas.

Subir. Arrastra el archivo a la zona «Arrastra tu archivo aquí» o haz click para seleccionarlo. Acepta .csv y .xlsx, y un solo archivo por importación (el selector no permite marcar varios).

Mapear. Una tabla con tres columnas —Columna del archivo, Ejemplo y Campo de AreaCacao— donde eliges el destino de cada cabecera. El asistente ya viene pre-rellenado con su propia detección, que reconoce sinónimos en español e inglés sin distinguir mayúsculas ni tildes (Nombre de la receta, recipe name, receta… van todos a recipe_name).

Las columnas que no necesites se dejan en Omitir. Un mismo campo de AreaCacao no puede asignarse a dos columnas: al elegirlo en una, se limpia de la otra.

Si no has mapeado el nombre de la receta, el asistente no te deja avanzar y muestra: «Indícanos al menos qué columna contiene el nombre de la receta para continuar.»

Opciones. Eliges qué hacer con los ingredientes que no encontremos. Ver la sección siguiente.

Vista previa. El servidor calcula qué pasaría sin escribir nada: «Esto es lo que haremos. Nada se ha guardado todavía.» Verás los recuentos de Recetas en total, Recetas a crear, Recetas a actualizar, Ingredientes vinculados, Ingredientes a crear, Ingredientes pendientes e Insumos no encontrados, más una lista de Errores detectados por número de fila.

Importar. Pulsas Importar y el trabajo pasa a segundo plano. La pantalla consulta el estado cada 2,5 segundos hasta que termina y muestra «Importación completada» con el resumen «N creadas · N actualizadas · N con errores.»

El importador resuelve cada fila así: si hay ingredient_code, busca esa ficha exacta; si no, busca por nombre contra tu catálogo. Cuando no encuentra nada, aplica la opción que elegiste en el paso Opciones:

  • Crear ingredientes faltantes como pendientes (sin coste)«Los ingredientes que no encontremos se añaden marcados como pendientes, sin datos nutricionales ni de coste. Podrás completarlos después. No consume créditos.» Es la opción por defecto.
  • Autocompletar ingredientes faltantes con IA — 5 créditos por ingrediente«Para cada ingrediente que no encontremos, la IA estima macros, alérgenos y datos de coste. Se cobran 5 créditos por ingrediente nuevo.»

El modo IA es la única forma de que esta vía consuma créditos, y se cobran por ingrediente nuevo, no por receta ni por archivo. El modo pendiente jamás toca tus créditos.

Insumos

Las filas marcadas con is_supply o con supply_code se tratan como insumos. Se vinculan sólo por código contra tu catálogo de insumos. Si el código no existe, la línea se importa igualmente pero queda marcada para revisión, y el recuento Insumos no encontrados de la vista previa te avisa antes. La importación nunca crea insumos nuevos — ni siquiera en modo IA, que sólo aplica a ingredientes.

Crear frente a actualizar

  • Sin recipe_id → siempre se crea una receta nueva.
  • Con recipe_id → si ese id existe y es tuyo, la receta se actualiza. Si no existe o no es tuyo, se crea una receta nueva.
  • Cuando se crea una receta cuyo nombre ya tienes en tu catálogo, AreaCacao diferencia el nombre automáticamente en lugar de duplicarlo a ciegas. Esto sólo se aplica al crear, nunca al actualizar.
  • Una receta que falla no aborta el lote: se marca con su error y el importador sigue con la siguiente.

Límites

LímiteValor
Formatos.csv y .xlsx
Archivos por importación1
Tamaño máximo del archivo20 MB
Filas de datos máximas20 000 (sin contar la cabecera)
Hojas de un .xlsx que se leenSólo la primera
Importaciones simultáneas1 por usuario
Frecuencia20 operaciones de subida/análisis cada 10 minutos por usuario

Si intentas lanzar una importación mientras otra sigue en cola o procesándose, el servidor la rechaza: hay que esperar a que la anterior termine.

Qué NO hace

  • No lee tu archivo con IA. El mapeo de columnas es tuyo y el parseo es determinista.
  • No aparece en la pestaña Historial. Esa pestaña lista las importaciones de foto y PDF. Las importaciones desde hoja de cálculo no se listan en ninguna pantalla: su estado sólo se ve en la ventana del asistente mientras la tienes abierta. Si la cierras, la importación sigue, pero para comprobar el resultado tendrás que mirar en Mis recetas.
  • No se puede cancelar. Una vez pulsas Importar no hay botón de cancelar; el asistente sólo deja cerrar la ventana.
  • No crea insumos nuevos.
  • No lee más de una hoja de un libro de Excel.
  • No importa desde un enlace a Google Sheets ni desde una URL: hay que subir el archivo. Para importar desde una página web existe otra vía distinta, ver Importar receta por URL.
  • No valida por ti el filling_type. Si escribes un identificador que no existe, la receta se importa sin validación técnica de relleno.

Siguientes pasos

En esta página