odiseoteam/sylius-report-plugin

Plugin for Sylius to make customizable reports.

Installs: 449

Dependents: 0

Suggesters: 0

Stars: 15

Watchers: 4

Forks: 5

Open Issues: 6

Type:sylius-plugin


README

68747470733a2f2f73796c6975732e636f6d2f6173736574732f62616467652d617070726f7665642d62792d73796c6975732e706e67

Description

This plugin add data reports to the Sylius administration interface. It is highly inspired on the past SyliusReportBundle bundle and Report component using its good architecture.

Now supporting Sylius 1.4 with Symfony 4 + Flex structure.

Architecture

Basically you have a DataFetcherInterface and RendererInterface interfaces. The first one defines how to fetch the Data according on a configuration provided. And the second one uses the Data returned by the fetcher and returns a rendered view.

Some DataFetchers and Renderers come with this plugin but you can create your own by implementing their interfaces.

Reports admin

Demo

You can see this plugin in action in our Sylius Demo application.

Installation

  1. Run composer require odiseoteam/sylius-report-plugin

  2. Enable the plugin in bundles.php

<?php

return [
    // ...
    Odiseo\SyliusReportPlugin\OdiseoSyliusReportPlugin::class => ['all' => true],
    // ...
];
  1. Import the plugin configurations
imports:
    - { resource: "@OdiseoSyliusReportPlugin/Resources/config/config.yml" }

This plugin use DoctrineExtensions to create the different DataFetcher queries. Add the config DQL functions as follows:

doctrine:
    orm:
        # ...
        dql:
            datetime_functions:
                date: DoctrineExtensions\Query\Mysql\Date
                month: DoctrineExtensions\Query\Mysql\Month
                year: DoctrineExtensions\Query\Mysql\Year
            numeric_functions:
                round: DoctrineExtensions\Query\Mysql\Round
  1. Add the admin routes
odiseo_sylius_report_plugin_admin:
    resource: "@OdiseoSyliusReportPlugin/Resources/config/routing/admin.yml"
    prefix: /admin
  1. Finish the installation updating the database schema and installing assets
php bin/console doctrine:schema:update --force
php bin/console sylius:theme:assets:install

Test the plugin

You can follow the instructions to test this plugins in the proper documentation page: Test the plugin.

Credits

This plugin is maintained by Odiseo. Want us to help you with this plugin or any Sylius project? Contact us on team@odiseo.com.ar.