The platform provides several APIs for import and export (ImpEx) operations.
There are 6 main channels for inbound and outbound data flows:
- Automatic generic data import, facilitated by a scheduled task which utilises Import API to ingest data
- Manual generic data import via Admin app, facilitated by file upload and triggering specified import group
- Automatic generic data export, facilitated by a scheduled tasks which utilise Export API to export data
- Manual generic data export via Admin app, facilitated by export using specified export group
- Automatic order update, facilitated via order update feeds orchestrated by order state machine
- Automatic order export, facilitated via order exporters orchestrated by order state machine
Generic data ImpEx channels are using impex module which provides framework for mediating a collection of import/export services and a set of triggers.
The trigger to any operation is a data group. Each data group contains one or more data descriptors. Each data descriptor defines the layout of the data in the data source file and which service should be used to act upon it.
The usual setup for import groups to have multiple descriptors which allows a zip archive with multiple data files to be imported in a single process. For example an import data group "Catalog & PIM" can contain descriptors for CSV files that include categories, product, SKU and attributes data files. This would allow bundling all source files into single zip and triggering the group. ImpEx framework will automatically trigger sub processes to ensure that all files are processed.
Export data groups usually contain only single descriptor since it defines the format for the output file.
The impex services that act upon the data groups are defined in import module extension and there can be customised with ease. Default implementation includes services for CSV and XML data formats.
Order data ImpEx channels solely focus on the data information update and export to third party systems for automatic fulfilment process.
Import is facilitated by a task which allows to register data feeds that would trigger order updates. This interface is primarily focused on automating the fulfilment process updates. For example delivery courier third party API can send push notifications which would queue in the data feed. When the order import tasks reads from this feed it will update the corresponding order and transition them to shipped state. If all deliveries have been shipped the order automatically will be transitions to completed state.
Export process is facilitated by a task which acts upon export eligibility fields on order domain model. Order state machine when transitioning an order through the fulfilment process will set export eligibility flags at key transition stages. Order export task will scan orders that have those flags set and will attempt to resolve order exporter(s) that are configured to act upon these specific flags. Once and exporter has completed it can set flag for the next exporter in chain. This export chain can be used to channel exports to multiple systems or introduce a flow to the automatic export (for example hold off automatic order export for specific order until a manual approval).
Detailed documentation on each of the channels can be found below: