Skip to content

Importing Products, with Recipes and Bundles

If you have a lot of products to add, a CSV import is faster than adding them one at a time — and if a product is made from other products, its recipe or bundle can be set up in the same file.


Before you start

You'll need a CSV file with at least sku and name columns. Everything else is optional, including the recipe and bundle columns covered below. Download Iraca's template first if you don't have a file ready — it includes a plain product, a recipe, and a bundle, already filled in as working examples.

Only workspace owners and admins can import products.


The basics: one row per product

  1. Go to Inventory → Products
  2. Click Import CSV
  3. Click Template to download products-import-template.csv
  4. Fill in your data, then drag the file into the upload area (or click to browse) and click Import

Iraca matches rows to existing products by SKU: a SKU that already exists in your catalog is updated, and a new one is created (up to your plan's product limit). A blank cell on an update never erases a value — it just means "leave this field as it is."

See the in-app column list for the full set of plain-product columns (brand, barcode, category, unit cost, dimensions, and so on). brand exports as well as imports, so an export edited in a spreadsheet and re-imported keeps its brands.


Linking a supplier

preferred_supplier_name records who you usually buy a product from, and it exports as well as imports — so an export, edited in a spreadsheet and re-imported, keeps its suppliers rather than losing them.

The name has to match a contact you already have; Iraca will not create one from a spreadsheet. A name it can't match to exactly one contact leaves the product imported without a supplier and lists the name in the import summary. The rules are the same as for supplies — see Importing Supplies for the detail.


Adding a recipe

A recipe has a variable number of ingredients, which doesn't fit naturally into one row of a spreadsheet. Iraca handles this the way accounting software handles a multi-line invoice in CSV: the product's SKU repeats on one row per ingredient.

ColumnMeaning
recipe_output_quantityHow many finished units one batch yields. Defaults to 1.
ingredient_skuThe SKU of an ingredient — must already exist, either earlier in your catalog or elsewhere in this same file.
ingredient_quantityRequired whenever ingredient_sku is filled in.
ingredient_unitOptional, defaults to unit.

A sandwich made from bread and turkey:

sku,name,...,recipe_output_quantity,ingredient_sku,ingredient_quantity,ingredient_unit
SAND-01,Turkey Sandwich,...,1,BREAD-01,2,unit
SAND-01,,...,,TURKEY-01,120,g

Only the first row needs the product's other fields (name, unit of measure, and so on) — the second row leaves them blank, meaning "same product, another ingredient." Repeating them on every row works too, if that's easier to build in your spreadsheet tool.

The ingredient has to exist somewhere. Either it's already a product in your catalog, or you give it its own row elsewhere in the same file (in any order — a finished good's ingredient rows can come before or after the ingredient's own product row). Iraca reads the whole file before creating anything, specifically so the order doesn't matter.

Importing the same file again updates the recipe's ingredient list rather than duplicating it — safe to re-run if you're refining a file.


Adding a bundle

Bundles use the identical pattern, with component_ columns instead of ingredient_ ones:

ColumnMeaning
is_bundle1 to mark the product as a bundle.
bundle_typekit or prepackaged. Defaults to kit.
component_skuThe SKU of a component — same existence rule as ingredient_sku above.
component_quantityRequired whenever component_sku is filled in.
sku,name,...,is_bundle,bundle_type,component_sku,component_quantity
KIT-01,Gift Basket,...,1,kit,BREAD-01,1
KIT-01,,...,,,TURKEY-01,2

If you fill in component_sku rows but leave is_bundle blank, Iraca marks the product as a bundle automatically — that's reported back as a note, not an error, so you'll see it in the results but the import still succeeds.

See Composite Products and Bundles for what kit and prepackaged mean for fulfillment.


What the import won't do

  • Won't guess at an ingredient or component. If a SKU can't be found anywhere in your catalog or the file, that one line is skipped and reported as an error — the rest of the file still imports.
  • Won't nest bundles. A component that is itself a bundle is rejected, same as building a bundle by hand.
  • Won't let a product be both. A product can't have ingredient_sku rows and component_sku rows at the same time — pick a recipe or a bundle for that SKU.
  • Won't remove an ingredient or component that's missing from a later import. Re-importing adds and updates lines; it never deletes one just because this file doesn't mention it.

Reading the results

After the import, Iraca shows how many products were created and updated, how many recipes were created, and any row-level problems — grouped as errors (that row was skipped) and warnings (it imported, but worth a look, like the automatic bundle flip above).


This guide covers the Iraca app and its add-ons. The Iraca Marketplace is documented separately.