Skip to main content

Stash help

CSV import

Moving from another app, a spreadsheet, or a printout? Use CSV import to load everything in one pass. Most users migrate ~100–1000 comics this way and never touch the form again.

What we accept

  • CSV (comma-separated) or XLSX (Excel). XLSX files get converted to CSV on upload.
  • UTF-8 encoding recommended; we try to detect others but it’s safer to convert first.
  • First row should be column headers — our wizard reads them.
  • Up to ~10,000 rows per file. Split larger sets into multiple imports.

The wizard

  1. Open /import, drop your file.
  2. Map columns: we auto-detect common headers (“Title”, “Issue”, “Publisher”, etc.) and propose mappings to our database fields. Confirm or adjust each row.
  3. Preview: we render the first 10 rows as inventory items would appear in your collection. Catch column-mapping mistakes here before committing.
  4. Import: progress bar tracks rows processed. Duplicates (same title + issue + publisher) are skipped silently.

Required + recommended fields

  • Required: item_name (title). Rows with a blank title are rejected with a row-number error.
  • Strongly recommended: number, publisher — used for duplicate detection and metadata enrichment.
  • Recommended: acquired_price, condition_grade, date_acquired — these drive P/L and tax reporting later.
  • Anything else (writer, artist, notes, etc.) — fill in what you have. You can always enrich later.

Duplicate detection

We treat a row as a duplicate if there’s already an item in your workspace with the same item_name + number + publisher (case-insensitive). Duplicates are skipped, counted in the summary, and don’t halt the import.

If the matching is too strict for your data (e.g. you have legitimate duplicates that differ only in condition), import them as separate rows with a small note in the item_name — otherwise they’ll collapse.

Errors

Per-row errors appear in the result screen with the offending row number and a specific message (“Invalid date format,” “Acquired price out of range,” etc.). Fix the source file and re-import — already-imported rows from the same file will be skipped as duplicates.

Rate limits

Import is capped at 3 runs per 10 minutes per user, to keep unbounded-loop bugs in client tooling from hammering the server. Each run can still process thousands of rows.

CSV import · Stash help | Stash