Skip to content

Excel Import / Export

First-Pass Node Dossier

This page is an evidence-backed node dossier generated from the domain hierarchy and node questionnaire.

What It Is

Excel Import / Export is the packaged bulk data-exchange tool that lets staff upload spreadsheet files for import, queue spreadsheet exports, review run status, inspect import errors, and download completed exports.

Parent hierarchy:

  • Supporting Platform Capabilities
  • Integration And Data Exchange
  • Excel Import / Export

Primary implementation paths:

  • packages/admin/src/Livewire/Admin/Tools/Excel
  • packages/framework/src/Models/ExcelImport.php
  • packages/framework/src/Models/ExcelExport.php
  • packages/framework/src/Actions/Excel

What Users Can Do With It

Direct capabilities

Operators can:

  • open the packaged Tools > Excel page
  • switch between import and export tabs
  • create import runs from packaged import dialogs
  • create export runs from packaged export dialogs
  • review run status, parameters, timestamps, and logs
  • open row-level import validation logs
  • download completed exports

Indirect capabilities

Other workflows use Excel Import / Export to:

  • queue asynchronous import and export jobs automatically when records are created
  • send completion emails to the requesting user
  • parse prompt parameters for display in the admin table

Things users cannot do directly

The inspected shared package does not expose a generic file manager for past spreadsheet files. Import source files are deleted after processing, and exports are surfaced as run records plus downloadable files.

Where It Is Managed

ChannelRoleNotes
Admin Tools > Excel pageDirectMain packaged operator surface
Excel imports APIDirectStaff-only list and create surface
Excel exports APIDirectStaff-only list, create, and download surface
Import and export observersIndirectAutomatically dispatch queued processing when a run record is created
Completion emailsIndirectNotify the initiating user when a run completes or fails

Sources:

  • packages/admin/routes/web.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/Page.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/DataTable.php
  • packages/framework/routes/admin.php
  • packages/framework/src/Actions/Excel/Requests/Admin/ImportIndexRequest.php
  • packages/framework/src/Actions/Excel/Requests/Admin/ImportCreateRequest.php
  • packages/framework/src/Actions/Excel/Requests/Admin/ExportIndexRequest.php
  • packages/framework/src/Actions/Excel/Requests/Admin/ExportCreateRequest.php
  • packages/framework/src/Actions/Excel/Requests/Admin/ExportDownloadRequest.php

Channel-Level Field Coverage

Packaged admin Excel table

The packaged Tools > Excel table shows:

  • model or template name
  • run type (Import or Export)
  • user
  • prompt parameters
  • status
  • created_at
  • started_at
  • completed_at

The row action area then exposes:

  • import logs
  • export logs
  • export download when completed

Import records

ExcelImport persists:

  • user_id
  • import_template
  • status
  • logs
  • started_at
  • failed_at
  • completed_at
  • file_path
  • file_disk
  • extra_attributes

Export records

ExcelExport persists:

  • user_id
  • export_template
  • name
  • status
  • logs
  • started_at
  • failed_at
  • completed_at
  • file_path
  • file_disk
  • extra_attributes

Sources:

  • packages/admin/resources/views/components/tools/excel/data-table.blade.php
  • packages/admin/resources/views/components/tools/excel/row.blade.php
  • packages/framework/src/Models/ExcelImport.php
  • packages/framework/src/Models/ExcelExport.php

Configuration And Data Model

Key implementation characteristics:

  • imports and exports are separate persisted run records
  • import validation failures are stored in ExcelImportLog
  • both imports and exports use extra_attributes that are rendered back to the operator as prompt parameters
  • observers dispatch processing automatically after record creation

Important support records:

  • ExcelImportLog

Source:

  • packages/framework/src/Models/ExcelImport.php
  • packages/framework/src/Models/ExcelExport.php
  • packages/framework/src/Models/ExcelImportLog.php
  • packages/framework/src/Observers/ExcelImportObserver.php
  • packages/framework/src/Observers/ExcelExportObserver.php

Relationships

Excel Import / Export directly connects to:

  • the requesting user
  • import templates
  • export templates
  • row-level import logs
  • file storage disks

Practical dependents:

  • product imports
  • shipping imports
  • promotion imports
  • product-group imports
  • product, customer, shipping, promotion, and vendor-related exports

Rules And Downstream Effects

API versus packaged admin template mismatch

The generic admin API create actions validate import and export templates against the narrow template lists returned by ExcelImport::getImportableTemplates() and ExcelExport::getExportableTemplates().

The packaged admin Livewire dialogs create ExcelImport and ExcelExport records directly and expose a broader set of templates and reports than those helper methods do.

Queued processing

Creating an import or export record triggers an observer that dispatches asynchronous processing automatically.

Import file cleanup

After an import completes or fails, the original uploaded file is deleted. Product imports can also remove the temporary import directory.

Completion notification

Both import and export flows email the requesting user when the run completes or fails.

Sources:

  • packages/framework/src/Models/ExcelImport.php
  • packages/framework/src/Models/ExcelExport.php
  • packages/framework/src/Observers/ExcelImportObserver.php
  • packages/framework/src/Observers/ExcelExportObserver.php
  • packages/framework/src/Actions/Excel/ImportCreate.php
  • packages/framework/src/Actions/Excel/ExportCreate.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/ImportDialog.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/ExportDialog.php
  • packages/framework/src/Actions/Excel/SetImportStatus.php
  • packages/framework/src/Actions/Excel/SetExportStatus.php

Integrations And Automation

Import execution

The importer can run either:

  • an action-class import
  • a Maatwebsite Excel import class

Validation failures are written to ExcelImportLog rows when the import class exposes failures.

Export execution

The exporter can run either:

  • an action-class export
  • a Maatwebsite Excel export class stored to the configured disk

Download paths

Completed exports can be downloaded through:

  • the admin row action
  • the staff-only export download API

The admin row action can use a temporary S3 URL when the export disk is S3.

Sources:

  • packages/framework/src/Actions/Excel/ExcelImporter.php
  • packages/framework/src/Actions/Excel/ExcelExporter.php
  • packages/framework/src/Actions/Excel/ExportDownload.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/Row.php

Where It Appears To End Users

Excel Import / Export is an operator-facing capability.

In the inspected shared package, it appears as a concrete admin tool with tabs, dialogs, row statuses, logs, and downloads.

Current Documentation Takeaways

  1. Tools > Excel is one of the strongest packaged operator surfaces in the supporting-capabilities domain.
  2. Import and export runs are tracked as records, not as fire-and-forget actions.
  3. The packaged admin dialogs expose a broader set of templates than the narrow API helper methods suggest.

Open Questions

  • This first pass did not inspect every custom template that a host app might inject through admin.excel_import_templates.extra or admin.excel_export_templates.extra.

Sources

  • packages/admin/routes/web.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/Page.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/DataTable.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/ImportDialog.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/ExportDialog.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/Row.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/LogsDialog.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/ImportDialog/AbstractImport.php
  • packages/admin/src/Livewire/Admin/Tools/Excel/ExportDialog/AbstractExport.php
  • packages/framework/src/Models/ExcelImport.php
  • packages/framework/src/Models/ExcelExport.php
  • packages/framework/src/Models/ExcelImportLog.php
  • packages/framework/src/Actions/Excel/ImportCreate.php
  • packages/framework/src/Actions/Excel/ExportCreate.php
  • packages/framework/src/Actions/Excel/ExcelImporter.php
  • packages/framework/src/Actions/Excel/ExcelExporter.php
  • packages/framework/src/Actions/Excel/SetImportStatus.php
  • packages/framework/src/Actions/Excel/SetExportStatus.php
  • packages/framework/src/Actions/Excel/ExportDownload.php
  • packages/framework/src/Observers/ExcelImportObserver.php
  • packages/framework/src/Observers/ExcelExportObserver.php