...
The DI plugin, provided by Boxalino with the purpose of Shopware6 integrations, is following the documented schemas and property definitions.
Integration Strategy
The integration strategy is done per content type (product, order, user, etc) and integration mode (delta, full, instant), as described in the public wiki https://github.com/boxalino/rtux-integration-shopware/wiki/DI:-Data-Integration
The full & delta All DI modes (Full/Delta/Instant) can be integrated via console commands (for server crons) or with the use of Shopware6 Scheduled Task.The instant update is integrated via Event Subscribers.
If declared in the Integration Layer, the updated content ids (product, users, orders) are saved in a tmp index table with the help of the subscribers (as seen in every Resources/config/services/di/<type>-subscriber.xml)
Info |
---|
Review the Integration Strategies on our Confluence Integration Strategies |
The integration strategy is handled by the integration team.
Integration Flow
Tip |
---|
The integration flow has a generic design and is described in the base repository data-integration-doc-php https://github.com/boxalino/data-integration-doc-php/wiki/4.-Integration-Strategy |
The elements part of the Data Integration strategy are:
1.Integration Handler
There is an integration handler per data type and integration mode.
is aware of the integration mode & type (required header for the DI requests)
is aware of the list of document handlers required for the given data sync (ex: for product - the doc_language, doc_attribute, doc_attribute_value & doc_product https://github.com/boxalino/rtux-integration-shopware/blob/3.0.0/src/Resources/config/services/di/product-console.xml#L27 )
calls the “integrate” behavior of every document handler https://github.com/boxalino/data-integration-doc-php/blob/3.0.0/src/Service/Integration/Mode/FullIntegrationTrait.php#L39
makes the “sync” call to the DI endpoint Sync Request
2.Document handler
is aware of the document type (required header for the DI request) https://github.com/boxalino/data-integration-doc-php/blob/3.0.0/src/Service/Integration/Doc/DocOrder.php#L36
is aware of the document schema https://github.com/boxalino/data-integration-doc-php/blob/3.0.0/src/Service/Integration/Doc/DocOrder.php#L45
getValues() from the list of property handlers and creates the document content via addDocLine (ex: order )
makes the “load” call to the DI endpoint Load Request
3.Property Handlers
manages the export for a given property (ex: price)
can be activated for the instant mode (via “allowInstantMode” method) (disabled by default)
are added to the document handler in the Integration Layer, which makes it 100% configurable
Data Mapping
Due to the nature of the integration process, there must be done a mapping between e-shop/Shopware6 fields and the documented schema properties.
...
Every document handler, via the createDocLines() function, will generate the document data by merging the values provided by each DocSchemaHandlerIntefrace (content source), grouping them by entity ID. The output will be transformed to the document line object with Every document line/row/item is a representation of the required Data Structure (as documented by Boxalino Data Structure )
Property Handler Options
Edit the property handler in your Doc<Type>HandlerInterface service (ex: product doc handler):
...