4.5 Grid Migration

This step updates Sylius template paths used in grid configurations. Sylius 2.0 moved templates from @SyliusAdmin/Grid/... to @SyliusAdmin/shared/grid/....

When to skip this step:

  • Your plugin doesn't use Sylius grid templates in custom fields or actions

  • All your grid templates are custom (from your own plugin)

When to do this step:

  • You reference @SyliusAdmin/Grid/... or @SyliusShop/... templates in grid configurations

  • You use Sylius built-in templates in custom grid fields

1. Update Template Paths in YAML Grids

If your grid configuration is in YAML files (e.g., config/grids/*.yaml):

Before (Sylius 1.x):

sylius_grid:
    grids:
        app_product:
            fields:
                image:
                    type: twig
                    options:
                        template: "@SyliusAdmin/Grid/Field/image.html.twig"

After (Sylius 2.0):

sylius_grid:
    grids:
        app_product:
            fields:
                image:
                    type: twig
                    options:
                        template: "@SyliusAdmin/shared/grid/field/image.html.twig"

Common patterns to update:

  • @SyliusAdmin/Grid/Field/...@SyliusAdmin/shared/grid/field/...

  • @SyliusAdmin/Grid/Action/...@SyliusAdmin/shared/grid/action/...

  • @SyliusAdmin/Grid/Filter/...@SyliusAdmin/shared/grid/filter/...

  • @SyliusShop/Grid/...@SyliusShop/shared/grid/...

2. Update in PHP Extension Class

If grids are defined in your Extension class using prependExtensionConfig():

Before:

$container->prependExtensionConfig('sylius_grid', [
    'grids' => [
        'app_product' => [
            'fields' => [
                'image' => [
                    'type' => 'twig',
                    'options' => [
                        'template' => '@SyliusAdmin/Grid/Field/image.html.twig',
                    ],
                ],
            ],
        ],
    ],
]);

After:

$container->prependExtensionConfig('sylius_grid', [
    'grids' => [
        'app_product' => [
            'fields' => [
                'image' => [
                    'type' => 'twig',
                    'options' => [
                        'template' => '@SyliusAdmin/shared/grid/field/image.html.twig',
                    ],
                ],
            ],
        ],
    ],
]);

3. Validate

Clear cache and check if grids load correctly:

vendor/bin/console cache:clear

Access your admin panel and verify that grids display correctly.


Important Note:

  • Custom plugin templates like @YourPlugin/admin/grid/field/custom.html.twig don't need changes

  • Only Sylius core templates (@SyliusAdmin, @SyliusShop) need updating

Last updated

Was this helpful?