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.
Columns
Section titled “Columns”| 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.
Categories and other details
Section titled “Categories and other details”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.
Opening stock
Section titled “Opening stock”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.
Duplicates
Section titled “Duplicates”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.