Broadleaf Microservices
  • v1.0.0-latest-prod

Import / Export

This section covers the import and export features for various data types.

Note
Imports and exports are independent of each other and have different architectures. There is no implied guarantee that exported files of any given data type match the schema expected for an import. Exported files may structure data in a manner that may not be directly compatible with an import specification (different headers, row types, column value structures, etc). Custom implementations are welcome to create and add import/export specifications which have exact parity with each other.

Import

Out-of-box, Broadleaf provides support for importing data into the system from a user-provided file (for example, a CSV file).

At a high level, the ImportServices microservice is the centerpiece responsible for managing the overall lifecycle of imports as well as the meta-information around them. It breaks each import into batches of rows and publishes them over the message broker. Actual processing of each batch is handled by a handler component in a 'resource tier' service (for example, in the case of a product import, the 'resource tier' service would be CatalogServices). The resource tier handler is expected to perform the necessary persistence operations and publish detailed completion data about each batch over the message broker. ImportServices consumes this completion data to report progress and success/failure to the end-user.

Import Consumer Common Library

Much of the boilerplate logic required for implementing a resource tier handler is provided in the broadleaf-import-services-consumer common library.

Import Consumer Links:

This includes:

  • Standardized configuration for messaging and listeners that can process import batch request messages and send completion results, including BatchListener

  • Interfaces and abstract classes to serve as a base starting point for common handler components, including ImportBatchHandler

  • Data transfer objects and utilities providing functionality typically required for import processing

Services needing to implement this functionality should add this library as a dependency. Usage of this library is further discussed in the links below.

Import Implementations

For more details on supported out-of-box import implementations and how to create a new implementation, please see the following documentation:

Export

Similar to import, there are several data types that support data export as well, for their docs, please see the following documentations for more details: