adeoweb/custom-entity-bundle
Symfony bundle for Akeneo PIM that streamlines creating and managing reference data (custom entities) and related UI views. Install via Composer, register routes and bundle, and optionally add a quick export job for CSV reference data.
Entity, Repository, Form, Controller), which may require adaptation for Laravel’s Eloquent/Spatie patterns.akeneo/pim-community-dev).akeneo/pim-community-dev (Akeneo core).Form, Validator, Workflow).| Risk Area | Severity (1–5) | Mitigation Strategy |
|---|---|---|
| Akeneo Lock-in | 5 | Abstract core logic; avoid UI dependencies. |
| Symfony → Laravel Gaps | 4 | Rewrite entity services as Laravel services. |
| UI Integration | 4 | Use API endpoints + custom frontend (e.g., Inertia.js). |
| Version Alignment | 3 | Pin exact versions in composer.json. |
| Testing Overhead | 3 | Mock Akeneo services; unit-test core logic. |
| Component | Akeneo PIM Stack | Laravel Stack | Notes |
|---|---|---|---|
| ORM | Doctrine | Eloquent | High effort to port entity mappings. |
| Forms | Symfony Form | Laravel Collective/Forms | Rewrite form types/validators. |
| Routing | Symfony Router | Laravel Router | Minimal effort (REST API endpoints). |
| UI | Twig (Akeneo templates) | Blade/Livewire/Inertia | Full rewrite needed. |
| Events | Symfony EventDispatcher | Laravel Events | Abstract event listeners. |
| Validation | Symfony Validator | Laravel Validator | Rewrite constraints. |
Phase 1: Data Model Extraction (2–3 weeks)
pim_catalog tables to Laravel’s schema.// Akeneo Entity → Laravel Model
class CustomEntity extends Model {
protected $table = 'pim_catalog_custom_entity';
protected $fillable = ['code', 'label', 'values'];
}
Phase 2: Service Layer Abstraction (3–4 weeks)
CustomEntityManager) as Laravel services.akeneo/pim-community-dev calls with direct DB/API calls.// Symfony Service → Laravel Service
class CustomEntityService {
public function findByCode(string $code) {
return CustomEntity::where('code', $code)->first();
}
}
Phase 3: UI/API Decoupling (4–6 weeks)
GET /api/custom-entities).Phase 4: Testing & Validation (2–3 weeks)
pim_catalog hooks) may require ongoing maintenance.Workflow), maintenance complexity increases.pim-catalog logs are verbose; Laravel’s log: channel may need customization.DebugBundle → Laravel’s dd()/debugbar.pim_catalog schema is normalized; Laravel’s Eloquent may need optimizations (e.g., indexing custom_entity tables).pim_catalog_cache) → Laravel’s cache: drivers (Redis/Memcached).laravel-queue) can replace Akeneo’s messenger for async tasks.| Risk | Impact | Mitigation |
|---|---|---|
| Akeneo → Laravel data loss | Critical | Write migration scripts; backup pim_catalog. |
| Broken workflows | High | Test edge cases (e.g., entity approvals). |
| UI regression | Medium | Use feature flags for gradual rollout. |
| Dependency conflicts | Medium | Isolate Akeneo dependencies in a microservice. |
| Performance degradation | High | Profile with Laravel Telescope. |
pim_catalog structure.How can I help you explore Laravel packages today?