Download the PHP package waad/filament-import-wizard without Composer

On this page you can find all versions of the php package waad/filament-import-wizard. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package filament-import-wizard

Filament Import Wizard

A powerful, queue-powered CSV and Excel import wizard for Filament with smart column mapping, relationship linking, Spatie Translatable support, locale merge, dynamic schema validation, and background processing for 100K+ rows.

Dark Mode Support PHP 8.2+ Laravel 10+ Filament 4.x/5.x License: MIT

https://github.com/user-attachments/assets/f4c3de05-a682-4e87-bfa6-a433ebc856ec

✨ Features

📦 Installation

Publish Configuration & Migrations

⚠️ If there are errors for CSS, try rebuilding Filament assets: php artisan filament:assets

🚀 Usage

Basic Usage in Filament Resource

Add the import action to your Filament resource's table. Example (app/Filament/Resources/Posts/Pages/ListPosts.php):

Advanced Configuration

Standalone Usage

Use the wizard outside of Filament panels via Livewire:

⚙️ Configuration

Configuration Options

Option Default Description
modal_width Width::Full Width of the import wizard modal
chunk_size 1000 Number of rows processed per queue job
default_csv_delimiter , Default CSV delimiter for parsing
queue_connection null Queue connection to use (null = Laravel default)
queue_name null Specific queue name (null = default queue)

📋 Import Steps

Step 1: Upload

Upload your CSV or Excel file. Supported formats:

Step 2: Map Columns

The mapping step presents model fields first, with a clean table-based layout:

Locale Merge (Translatable Fields)

For translatable/JSON columns, toggle the Merge Translation switch to split a field into multiple locale→column mappings:

The locale can be auto-detected from header names (title_en, titleAr, etc.) or entered manually. This stores data as JSON: {"en": "Hello", "ar": "مرحبا"}.

Relation Mapping

For BelongsTo relations:

Relations support auto-increment ID detection (if CSV has numeric IDs) and intelligent fallback to string field matching.

Step 3: Review & Validate

Preview your data before import:

Step 4: Import

Start the import process:

🔗 Relationship Linking

Link related records during import:

Supported relationship types:

How Relation Resolution Works

  1. If the mapped field is an auto-incrementing primary key:
    • Numeric CSV values → find or create by ID
  2. Otherwise, lookup uses the mapped field (e.g. code, sku, slug) when it is fillable or the model is unguarded
  3. Legacy fallback: look up by owner key when it is not the auto-increment primary key
  4. Translatable/locale-aware resolution via whereJsonContains() for JSON fields

🔃 Upsert (Match & Merge)

Update existing records instead of creating duplicates:

The wizard will:

  1. Find existing records by the specified keys
  2. Update matching records via upsert() (with timestamp injection)
  3. Create new records only when no match is found
  4. Fall back to chunked inserts on upsert failure

🌍 Spatie Translatable & Locale Merge

Automatic Detection

The wizard automatically detects:

Locale Merge Mode

Check Merge Translation on any translatable field to split it into locale-specific mappings:

CSV Header Maps To
title_en title with locale en
title_ar title with locale ar
title_fr title with locale fr

The result is stored as a single JSON column: {"en": "value", "ar": "قيمة", "fr": "valeur"}

Custom Import Field Labels

Add a getImportFieldLabel() method to your model for custom display names:

🧠 Smart Defaults & Guarded Model Support

The wizard handles models with $guarded = [] (no fillable defined) gracefully:

🛠️ Customization

Custom Modal Width

Queue Configuration

Set queue connection and name globally via config:

Or per import action:

Running the Queue

Non-sync queue connections (database, redis, etc.) require a running worker. Without one, jobs sit unprocessed and the import progress UI never updates.

If you set a custom queue_name (for example imports), pass that name:

When using the database queue driver, create and run the jobs table first:

For local testing without a worker, set the queue connection to sync so jobs run inline:

Custom Validation Rules

Add a getImportRules() method to your model for custom import validation:

If no getImportRules() method exists, rules are auto-generated from the database schema.

📝 Requirements

📄 License

The MIT License (MIT). Please see License File for more information.

🤝 Contributing

Contributions are welcome! Please open an issue or submit a pull request.

📧 Support

If you discover any bugs or have feature requests, please open an issue on GitHub.

Screenshots


All versions of filament-import-wizard with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
filament/filament Version ^4.0|^5.0
laravel/framework Version *
league/csv Version ^9.0
livewire/livewire Version ^3.0|^4.0
phpoffice/phpspreadsheet Version ^5.0
spatie/laravel-package-tools Version ^1.16
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package waad/filament-import-wizard contains the following files

Loading the files please wait ...