Aimeos is organized as layered software stack:
The most important thing this image should make clear is that Aimeos needs a host application where it can be integrated. Contrary to other e-commerce systems, Aimeos is first of all no stand-alone software. Instead, it can be used with any PHP framework or existing application where it can be integrated as native package.
The bottom layer in the Aimeos stack contains the adapters to integrate the e-commerce components into the host application or to provide common interfaces for implementations. They exist in the "Aimeos\MW" namespace located in the Aimeos core "./lib/mwlib/" or in extensions if they offer specific integrations.
Adapters for integration into the host application:
Interfaces where often no host implementation exists or it's not reasonable:
The second layer offers access to the data stored in relational database systems, NoSQL databases or provided by external (HTTP) APIs. It doesn't matter where the data is stored, the data access layer provides the same PHP API and semantics to the layers above regardless of the source. The implementation is located in the Aimeos core "./lib/mshoplib/" or in extensions.
Within the access layer, separate domains care about specific data, e.g. the product domain manages only the product data while the order domain only cares about order data. There are currently 16 domains available that can be replaced by own implementations for different data sources.
Admin related domains:
Main shop domains: