The integration of non-Adobe Commerce solution is a common scenario for CIF. third party solutions with different APIs and schemas get connected via an integration layer.
The overall architecture is as follows:
The purpose of this integration layer is to map third-party APIs and schemas against the supported Adobe Commerce GraphQL APIs and schemas outside of the Experience Manager. Thanks to this encapsulation, the integration logic and systems can get updated without changing code inside the Experience Manager.
As the Experience Manager retrieves data on-demand, real-time APIs for product catalog are required.
If no real-time APIs are available, an external product cache with APIs should be used for the integration. Example Magento open-source.
There is no need to implement the complete GraphQL schema, just the objects of the schema to enable the desired use-cases.
CIF extends the Experience Manager with real-time product catalog access and product experience management tools. This seamless integration enables authors to access commerce data using embedded UIs whenever needed without leaving the content context.
The integration of product catalog APIs is required to unlock these use-cases.
AEM CIF Core Components retrieve and exchange data via the CIF supported Adobe Commerce APIs. To re-use components, the respective APIs need to be implemented.
The recommendation for performance critical client-side components is to communicate directly with the third party solution to avoid latency.
We recommend using Adobe I/O Runtime for the integration layer. It is included in the CIF add-on for third parties. As it works with a microservice-like approach, it is suited well to integrate easily multiple solutions.
The reference implementation is a great starting point to build the integration to your commerce solution. Although it supports GraphQL, it can also be integrated with any other type of API such as REST.
This integration layer is not required if a third party layer is available (such as Mulesoft) or the integration gets built on top of the third party solution.