Skip to content

Importing ingredients

The ingredients import turns a stock spreadsheet into ingredient records in one pass. It is usually the first import you run. The upload, mapping and per-row checks work the same for every import kind; see CSV imports for that flow.

Field Required What goes in it
Name Yes The ingredient’s name, e.g. “Habanero, fresh”
Unit Yes The unit it is measured in: g, kg, ml, L, units
Density No Grams per millilitre, for volume-to-mass conversions
Category No The name of one of your categories
Opening stock No Quantity on hand, in the ingredient’s own unit
Unit cost No What one unit costs, used to seed the average cost

Common header names map on their own: “uom” finds Unit, “famille” finds Category. Anything else you match by hand under Column mapping.

The category cell is matched by name against categories you already created. A cell that matches nothing leaves the ingredient uncategorized, so set up your categories before a large import.

Compliance details (allergens, INCI fields, shelf life) and category custom fields are not import columns. Fill them in on each ingredient’s card afterwards, or let AI enrichment suggest the compliance values.

Tick Also set opening stock and the quantity column is posted as each new ingredient’s opening balance, in its own unit. Provide a unit cost too and it seeds the weighted average cost, so recipes cost correctly from day one. A hot-sauce row might read: name “Habanero, fresh”, unit kg, category “Chilis”, opening stock 12, unit cost 8.40.

Opening stock only posts for ingredients the import creates. Re-running the same file never double-counts stock.

Ingredient names are unique. A row whose name already exists in your inventory is flagged “An ingredient with this name already exists” and held back; the import never silently creates a second record for the same thing. Rows that repeat inside the file are flagged as duplicates too, so a messy export cannot import the same line twice.