UnoPim Data Transfer
The import/export pipeline uses a queued job system with state tracking.
When to Use This Skill
Invoke this skill when:
-
Configuring or running imports/exports
-
Debugging failed import/export jobs
-
Creating custom importer/exporter classes
-
Understanding the job pipeline
Job Pipeline
Import States
PENDING → VALIDATED → PROCESSING → PROCESSED → LINKING → LINKED → INDEXING → INDEXED → COMPLETED ↓ FAILED
Export States
PENDING → PROCESSING → COMPLETED ↓ FAILED
Import Architecture
Class Purpose
Helpers/Import.php
Import orchestrator — validates, batches, processes
Helpers/Importers/AbstractImporter.php
Base importer with batch processing
Helpers/Importers/Product/Importer.php
Product-specific import logic
Helpers/Importers/Category/Importer.php
Category-specific import logic
Helpers/Sources/CSV.php
CSV file reader
Helpers/Sources/Excel.php
Excel file reader
Export Architecture
Class Purpose
Helpers/Export.php
Export orchestrator
Helpers/Exporters/AbstractExporter.php
Base exporter
Helpers/Exporters/Product/Exporter.php
Product export
Helpers/Exporters/Category/Exporter.php
Category export
Queued Jobs
Stage Job Class
Import track ImportTrackBatch
Import batch ImportBatch
Link batch LinkBatch
Linking Linking
Index batch IndexBatch
Indexing Indexing
Completed Completed
Export track ExportTrackBatch
Export batch ExportBatch
Upload UploadFile
CLI Commands
Start queue worker (required for import/export)
php artisan queue:work --queue="default,system"
Run a specific job
php artisan unopim:queue:work {jobId} {userEmail}
Restart workers after code changes
php artisan queue:restart
Models
Model Purpose
JobInstances
Job definition (type, entity, file path, settings)
JobTrack
Single job run (state, stats, errors)
JobTrackBatch
Individual batch within a job
Troubleshooting
Import stuck in PENDING
Queue worker not running:
php artisan queue:work --queue="default,system"
Import fails with validation errors
Check JobTrack.errors for detailed row-level errors.
Export produces empty file
Verify data exists and filters match records.
Creating Custom Importers/Exporters
See the unopim-plugin-dev skill → custom-data-transfer.md.