PHPackages                             boutdecode/sylius-etl-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. boutdecode/sylius-etl-plugin

ActiveSylius-plugin

boutdecode/sylius-etl-plugin
============================

SyliusETL plugin for Sylius

v0.9.0(1mo ago)00[1 issues](https://github.com/boutdecode/SyliusETLPlugin/issues)MITPHPPHP ^8.1

Since Apr 8Pushed 1w agoCompare

[ Source](https://github.com/boutdecode/SyliusETLPlugin)[ Packagist](https://packagist.org/packages/boutdecode/sylius-etl-plugin)[ RSS](/packages/boutdecode-sylius-etl-plugin/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (33)Versions (2)Used By (0)

 [    ![Sylius Logo.](https://camo.githubusercontent.com/ea9dddc934264aa7ec01cf3202c500f3d8b04448bce2571bdc74230efddda88f/68747470733a2f2f6d656469612e73796c6975732e636f6d2f73796c6975732d6c6f676f2d3830302e706e67)  ](https://sylius.com)

BoutDeCode Sylius ETL Plugin
============================

[](#boutdecode-sylius-etl-plugin)

Integrate a full ETL (Extract, Transform, Load) pipeline system into the Sylius admin panel.

 [ ![](https://camo.githubusercontent.com/92f6ec945ae080bc53e0f869f7ba2b6395ab1e0db52b160ca35c74c8487d3fe2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f626f75746465636f64652f73796c6975732d65746c706c7567696e2e737667) ](https://packagist.org/packages/boutdecode/sylius-etlplugin "License") [ ![](https://camo.githubusercontent.com/7911d8ce63f7e180b0b440b438f05865e2488fc1b791d4b44c1a23b29453fa61/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f626f75746465636f64652f73796c6975732d65746c706c7567696e2e737667) ](https://packagist.org/packages/boutdecode/sylius-etlplugin "PHP Version")

Overview
--------

[](#overview)

This plugin adds a full-featured ETL workflow management system to the Sylius admin panel. It allows store administrators to define reusable **Workflows** (named chains of ordered ETL Steps), and execute them as **Pipelines** — either manually, via file upload, or on a schedule.

The plugin provides the ETL infrastructure (workflow management, pipeline execution, history tracking). Step implementations are defined in your application.

Features
--------

[](#features)

- **Workflow management** — create and configure reusable chains of ETL steps from the admin panel
- **Pipeline execution** — run workflows as pipelines with JSON input, file upload, or scheduled execution
- **Execution history** — detailed per-step and per-pipeline run history with status tracking
- **Step registry** — register your own step services tagged with `etl.step`
- **State machine** — pipeline lifecycle management with reset/execute transitions
- **Dedicated logging** — separate `pipeline` log channel for ETL activity
- **Sylius admin integration** — ETL section added to the admin sidebar with grid views for Workflows and Pipelines

### Screenshots

[](#screenshots)

**Workflow list**

[![Workflow list](docs/media/workflow-index.png)](docs/media/workflow-index.png)

**Workflow editor** — configure ordered steps with their configuration

[![Workflow editor](docs/media/workflow-edit.png)](docs/media/workflow-edit.png)

**Pipeline list**

[![Pipeline list](docs/media/pipeline-index.png)](docs/media/pipeline-index.png)

**Pipeline detail** — inspect pipeline and configuration

[![Pipeline detail](docs/media/pipeline-show.png)](docs/media/pipeline-show.png)

**Execute a pipeline** — provide a file upload, JSON input or a scheduled date; the workflow configuration can also be overridden at runtime per step

[![Execute a pipeline](docs/media/workflow-execute.png)](docs/media/workflow-execute.png)

**Pipeline run history** — per-step status and execution timeline

[![Pipeline run history](docs/media/pipeline-history.png)](docs/media/pipeline-history.png)

Requirements
------------

[](#requirements)

- PHP `^8.1`
- Sylius `^1.14`
- Symfony `^6.4`
- Symfony Messenger with an `async` transport

Installation
------------

[](#installation)

### 1. Require the plugin via Composer

[](#1-require-the-plugin-via-composer)

```
composer require boutdecode/sylius-etl-plugin
```

### 2. Enable the plugin

[](#2-enable-the-plugin)

Add the plugin to your `config/bundles.php`:

```
return [
    // ...
    BoutDeCode\SyliusETLPlugin\BoutDeCodeSyliusETLPlugin::class => ['all' => true],
];
```

### 3. Import the plugin configuration

[](#3-import-the-plugin-configuration)

**PHP** — create or update `config/packages/bout_de_code_sylius_etl.php`:

```
