UnoPim Plugin Development
Complete guide for creating, configuring, and deploying UnoPim plugins (packages).
When to Use This Skill
Invoke this skill when:
-
Creating a new plugin/package for UnoPim
-
Adding custom importers or exporters
-
Extending admin menus, ACL, or system configuration
-
Building custom DataGrids
-
Creating custom models with Concord proxy pattern
Instructions
-
Plugin structure: See plugin-structure.md for directory layout and boilerplate
-
Service providers: See service-providers.md for registration and bootstrapping
-
Config integration: See config-integration.md for menu, ACL, and system config
-
Custom importers/exporters: See custom-data-transfer.md for import/export profiles
Quick Start
1. Create directory structure
mkdir -p packages/Webkul/Example/src/{Config,Contracts,Database/Migrations,Http/Controllers,Models,Providers,Repositories,Resources/views,Routes}
2. Add PSR-4 autoload to composer.json
"Webkul\Example\": "packages/Webkul/Example/src"
3. Register in config/app.php providers array
Webkul\Example\Providers\ExampleServiceProvider::class,
4. Dump autoload
composer dump-autoload
5. Run migrations
php artisan migrate
Key Principles
-
Always use the Concord proxy pattern for models
-
Extend Webkul\Core\Eloquent\Repository for data access
-
Register configs via mergeConfigFrom() in register()
-
Load routes, migrations, translations, views in boot()
-
Follow existing package structure conventions
-
Add ACL entries for all new admin routes