Technical architecture

#Components

#Akeneo or Pim, Bundle or Component?

Since version 1.3, Akeneo PIM introduced components, that contain business logic or technical logic not coupled with Symfony Framework, although Bundles contain the glue to assemble components together.

We use different namespaces, Akeneo for the technical parts not coupled with the PIM, Pim for the Community Edition parts and Enterprise suffix for the Enterprise Edition parts.

We organise the code as above in any new development and try to update legacy code as much as we can in each minor version to make the stack more and more understandable.

../../_images/component-or-bundle.png

#Akeneo components

Component Scope
Analytics (introduced v1.4) Data collector interfaces to aggregate statistics
Batch (introduced v1.5) Batch domain interfaces and classes (extracted from previous BatchBundle version)
Buffer (introduced v1.5) Buffer domain interfaces and classes (extracted from previous BatchBundle version)
Classification (introduced v1.4) Generic classes for classification trees (implemented by product categories and asset categories) and tags
Console (introduced v1.4) Utility classes to execute commands
FileStorage (introduced v1.4) Business interfaces and classes to handle files storage with filesystem abstraction
Localization (introduced v1.5) Localization domain interfaces and classes
StorageUtils (introduced v1.3) Business interfaces and classes to abstract storage access (remover, saver, updater, repositories, etc)
Versioning (introduced v1.5) Versioning domain interfaces and classes

#PIM components

Component Scope
Catalog (introduced v1.4) PIM domain interfaces and classes, most of them still remain in CatalogBundle for legacy reasons
Connector (introduced v1.4) PIM business interfaces and classes to handle data import
ReferenceData (introduced v1.4) Interfaces and classes related to collection of reference models and the product integration

#Akeneo Enterprise components

Component Scope
FileMetadata (introduced v1.4) File metadata readers
FileTransformer (introduced v1.4) File transformer and native transformations
RuleEngine (introduced v1.5) Generic action applier system

#PIM Enterprise components

Component Scope
CatalogRule (introduced v1.5) Rule engine implementation for product rules
ProductAsset (introduced v1.4) Product asset domain and business classes
Workflow (introduced v1.4) Workflow domain and business classes (most of them are still in WorkflowBundle)

Found a typo or a hole in the documentation and feel like contributing?
Join us on Github!