Skip to content

[Core]: Import/Export Options for all data #85

Description

@nielsdrost7

Epic — Import / Export options across all data modules

This issue tracks the full import/export surface for InvoicePlane v2. Child issues implement the individual module-level actions.

v2 approach: All imports use Filament's built-in ImportAction with a per-module Importer class. All exports use Filament's ExportAction with a per-module Exporter class. No custom HTTP routes are needed.


Child issues

Module Import Export
Products #140 (CSV/Excel import)
Clients #141 (CSV import)
Catalogs/Pricelists #139 (CSV/Excel import)
Excel support #80 (.xlsx file handling)
Invoices TBD
Quotes TBD
Payments TBD
Expenses TBD
Full backup TBD

Acceptance criteria (Epic-level)

  • Each data module has an Import button (where applicable) on its list page.
  • Each data module has an Export CSV button on its list page.
  • Import: invalid rows are skipped with per-row error reports.
  • Import: uses firstOrCreate / updateOrCreate to avoid duplicates.
  • Import: all imports are company-scoped.
  • Export: CSV downloads include a header row and data rows for the current company.
  • A "full backup" export (all modules, one ZIP) is out of scope for v2.0 alpha.

Technical standards

  • Importer classes: Modules/<Module>/Filament/Company/Imports/<Model>Importer.php
  • Exporter classes: Modules/<Module>/Filament/Company/Exports/<Model>Exporter.php
  • Each must ship PHPUnit feature tests covering: successful import, skipped invalid row, company scoping.
  • No raw $response->get(route(...)) in tests — use Livewire ->callAction('import', ...) and ->callAction('export', ...) patterns.

Metadata

Metadata

Assignees

Labels

high-priorefinedRefined with SMART plan / test suggestions

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions