OroCRM is a multi-channel Customer Relationship Management system based on the OroPlatform. When we mention multi-channel we imply that OroCRM works with data from different data sources such as files, contact forms, e-commerce websites, ERP-systems, etc… Based on the channel relations a user can easily build reports and segments that can be reused for analytic and marketing purposes.
Channels in OroPlatform
The OroPlatform is a foundation for modern web applications and comes with set of built-in features that relate to integration and business entities.
OroBusinessEntitiesBundle – Defines abstraction classes for the most popular data types. There are cart, cart item, order, order item, person, person group and product entities. Those entities may be extended with application-specific fields and entities, but definition on the platform level is very useful when some business logic is built around the base entity. For example, it might be useful to display a grid with all customers that come from different channels (applications) and have a different structure and fields, but a developer could rely on fields from the base level and build business logic on top of it.
OroIntegrationBundle –This bundle is responsible for interaction between third party systems/services and the platform. It extends OroImportExportBundle to process data in the background using additional platform features such as cron and process queue. The general purpose of this bundle is allowing developers to create integration bundles and providing basic UI for its configuration.
Integration Bundle foundation
OroIntegrationBundle provides four key pieces for channel integration: channel type, channel, transport, connector.
So, let’s determine what each of them means:
- Channel type: Grouping of source specific logic that focuses on a specific application or service. For example: Magento channel type, eBay channel type etc.
- Channel: A configured instance of a specific channel type that allows connection to a specific end point, for example specific Magento store or eBay account.
- Transport: An implementation of connection to a third party application that allows work with channel data. It knows which entity should store connection settings and defines configuration settings form type. Example of the transport: SOAP transport, REST transport, direct database connection and much more.
- Connector: Connector knows how to retrieve data of a specific type from remote instance, using any type of compatible transport for the determined channel. Example of the connector: Customer connector for Magento channel type.
As a result, we are able to create a channel that is an instance of some channel type and contains some set of configuration such as which one transport to use to retrieve data specified by enabled connectors. You can find more technical information in the Integration Bundle bundle readme file.
Out of the box OroCRM includes implementation of Magento channel type and you can find eBay channel type implementation on our marketplace. You are also welcome to implement new channel types and submit it to our marketplace.