Import products from CSV

If your kitchen already keeps products in a spreadsheet, CSV import is the fastest way to seed Rinvy from it. The import auto-creates any categories and suppliers it doesn't recognize, accepts a handful of common header aliases, and warns about rows it can't fully process. (No spreadsheet? Scanning a supplier invoice builds your catalog from a photo instead.)

Required and supported columns

ColumnRequiredNotes
NameyesProduct name. Trimmed and case-insensitive within your restaurant.
CategoryyesAuto-created if it doesn't exist.
UnitnoDefaults to each. Common aliases (pound, lbs, pcs, cases, pkg) are normalized.
SuppliernoAuto-created if it doesn't exist.
Minimum StocknoNumeric, in the default unit.
Case SizenoNumeric.
Case CostnoNumeric. Dropped silently if case size is blank.

After you pick a file, Rinvy auto-matches each column to a product field so you can confirm or correct it before importing — here a Par header is recognized as Minimum Stock.

The Map columns step, with each CSV header auto-matched to a product field and the Par column recognized as Minimum Stock

File and tier limits

  • Maximum file size: 5 MB.
  • Tier-cap enforcement: if your CSV would push your product total above your plan's cap (50 on Free, 300 on Standard, unlimited on Pro), the import is rejected entirely — no products are created.
  • Supplier overage works differently: if your CSV brings the supplier total over the cap (3 / 10), the surplus suppliers are skipped and the products import without a supplier link. Each skipped supplier appears as a warning.

What CSV import doesn't cover

CSV creates standard quantity-tracked, inventoried products only. To configure these after import, edit each product:

  • Status-tracked items
  • Recipe outputs and non-inventoried products
  • Source-product links
  • Unit conversions (weight ⇄ volume, count ratios)
  • Supplier item codes

Example

A two-row CSV that imports cleanly:

Name,Category,Unit,Supplier,Minimum Stock,Case Size,Case Cost
Chicken Breast,Refrigerator,lb,US Foods,10,4,45.99
Olive Oil,Dry Storage,each,Sysco,2,,

The first row creates a chicken breast quantity-tracked product with case math. The second creates an oil that's ordered bottle-by-bottle (case fields blank).

The final review step counts the valid rows, lists any new categories and suppliers it will create, and flags rows it can't fully process — like a case cost with no case size — before anything is written.

The Review import step showing five valid rows, a warning on the Olive Oil row for a case cost with no case size, and the new Freezer category and Sysco supplier that will be created

Round-trip with the Products page

The Products page also has an Export button that downloads a CSV — the header order matches the import template, so you can export, edit in a spreadsheet, then re-import.

Common mistakes

Importing a CSV that pushes you over the product cap

The whole import is rejected. Split the CSV into batches that fit under your cap, or upgrade your plan. See plan limits.

Case Cost with a blank Case Size

Silently dropped — Rinvy can't compute a unit cost without a case size. Set both or neither.

Using a column header that isn't auto-detected

Common aliases work (Par → Minimum Stock, lbs → lb), but unusual headers are skipped. Rename to one of the supported headers and re-import.

Expecting tracking method or non-inventoried to import from CSV

CSV creates plain quantity-tracked products. Edit each product after import to switch tracking method, mark as recipe output, or set conversions.

Related