PHPackages                             webgriffe/sylius-elasticsearch-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. [Search &amp; Filtering](/categories/search)
4. /
5. webgriffe/sylius-elasticsearch-plugin

ActiveSylius-plugin[Search &amp; Filtering](/categories/search)

webgriffe/sylius-elasticsearch-plugin
=====================================

Plugin allowing to search products in Sylius.

v1.0.2(2mo ago)18.2k—3.2%[1 issues](https://github.com/webgriffe/SyliusElasticsearchPlugin/issues)MITPHPPHP ^8.2CI passing

Since May 20Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/webgriffe/SyliusElasticsearchPlugin)[ Packagist](https://packagist.org/packages/webgriffe/sylius-elasticsearch-plugin)[ RSS](/packages/webgriffe-sylius-elasticsearch-plugin/feed)WikiDiscussions main Synced today

READMEChangelog (10)Dependencies (105)Versions (29)Used By (0)

 [ ![](https://camo.githubusercontent.com/1567208cc7c8ec53cf6e2af4f54449a9bb3ab0dee7916998de4e3ce9b7f79015/68747470733a2f2f64656d6f2e73796c6975732e636f6d2f6173736574732f73686f702f696d672f6c6f676f2e706e67) ](https://sylius.com)

Sylius [Elasticsearch](https://www.elastic.co/) Plugin
======================================================

[](#sylius-elasticsearch-plugin)

Sylius plugin for Elasticsearch query engine.

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

[](#installation)

1. Run:

    ```
    composer require webgriffe/sylius-elasticsearch-plugin
    ```
2. Add `Webgriffe\SyliusElasticsearchPlugin\WebgriffeSyliusElasticsearchPlugin::class => ['all' => true]` to your `config/bundles.php`.

    Normally, the plugin is automatically added to the `config/bundles.php` file by the `composer require` command. If it is not, you have to add it manually.
3. Import the plugin configs. Add the following to your config/packages/webgriffe\_sylius\_elasticsearch\_plugin.yaml file:

    ```
    imports:
        - { resource: "@WebgriffeSyliusElasticsearchPlugin/config/config.php" }
    ```
4. Import the routes needed for cancelling the payments. Add the following to your config/routes.yaml file:

    ```
    webgriffe_sylius_elasticsearch_plugin:
        resource: "@WebgriffeSyliusElasticsearchPlugin/config/routes/shop.php"
    ```

    **NB:** if you have locales prefix enabled you should prefix import with that.
5. Make your ProductRepository implements the DocumentTypeRepositoryInterface. Remember to update your product resource configuration to use the new repository. For example:

    ```
    sylius_product:
        resources:
            product:
                classes:
                    repository: App\Doctrine\ORM\ProductRepository
    ```
6. Make your ProductAttribute and ProductOption entities implements the FilterableInterface. You can implement it by using our ready DoctrineORMFilterableTrait. For example:

    ```
    use Webgriffe\SyliusElasticsearchPlugin\Doctrine\ORM\FilterableTrait;use Webgriffe\SyliusElasticsearchPlugin\Model\FilterableInterface;

    class ProductAttribute implements FilterableInterface
    {
        use FilterableTrait;
    }
    ```

Usage
-----

[](#usage)

Contributing
------------

[](#contributing)

For a comprehensive guide on Sylius Plugins development please go to Sylius documentation, there you will find the [Plugin Development Guide](https://docs.sylius.com/en/latest/plugin-development-guide/index.html), that is full of examples.

### Quickstart Installation

[](#quickstart-installation)

#### Traditional

[](#traditional)

1. Run `composer create-project sylius/plugin-skeleton ProjectName`.
2. From the plugin skeleton root directory, run the following commands:

    ```
    $ (cd tests/Application && yarn install)
    $ (cd tests/Application && yarn build)
    $ (cd tests/Application && APP_ENV=test bin/console assets:install public)

    $ (cd tests/Application && APP_ENV=test bin/console doctrine:database:create)
    $ (cd tests/Application && APP_ENV=test bin/console doctrine:schema:create)
    ```

To be able to set up a plugin's database, remember to configure you database credentials in `tests/Application/.env` and `tests/Application/.env.test`.

#### Docker

[](#docker)

1. Execute `docker compose up -d`
2. Initialize plugin `docker compose exec app make init`
3. See your browser `open localhost`

Usage
-----

[](#usage-1)

#### Running plugin tests

[](#running-plugin-tests)

- PHPUnit

    ```
    vendor/bin/phpunit
    ```
- PHPSpec

    ```
    vendor/bin/phpspec run
    ```
- Behat (non-JS scenarios)

    ```
    vendor/bin/behat --strict --tags="~@javascript"
    ```
- Behat (JS scenarios)

    1. [Install Symfony CLI command](https://symfony.com/download).
    2. Start Headless Chrome:

    ```
    google-chrome-stable --enable-automation --disable-background-networking --no-default-browser-check --no-first-run --disable-popup-blocking --disable-default-apps --allow-insecure-localhost --disable-translate --disable-extensions --no-sandbox --enable-features=Metal --headless --remote-debugging-port=9222 --window-size=2880,1800 --proxy-server='direct://' --proxy-bypass-list='*' http://127.0.0.1
    ```

    3. Install SSL certificates (only once needed) and run test application's webserver on `127.0.0.1:8080`:

    ```
    symfony server:ca:install
    APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon
    ```

    4. Run Behat:

    ```
    vendor/bin/behat --strict --tags="@javascript"
    ```
- Static Analysis

    - Psalm

        ```
        vendor/bin/psalm
        ```
    - PHPStan

        ```
        vendor/bin/phpstan analyse -c phpstan.neon -l max src/
        ```
- Coding Standard

    ```
    vendor/bin/ecs check
    ```

#### Opening Sylius with your plugin

[](#opening-sylius-with-your-plugin)

- Using `test` environment:

    ```
    (cd tests/Application && APP_ENV=test bin/console sylius:fixtures:load)
    (cd tests/Application && APP_ENV=test bin/console server:run -d public)
    ```
- Using `dev` environment:

    ```
    (cd tests/Application && APP_ENV=dev bin/console sylius:fixtures:load)
    (cd tests/Application && APP_ENV=dev bin/console server:run -d public)
    ```

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance65

Regular maintenance activity

Popularity26

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 97% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~28 days

Recently: every ~48 days

Total

27

Last Release

76d ago

Major Versions

v0.6.0 → v1.0.02026-02-02

### Community

Maintainers

![](https://www.gravatar.com/avatar/eca104631fd7f6aff6d399ca16458c4d9814770756af0ecca22ffe2b1c5704d3?d=identicon)[mmenozzi](/maintainers/mmenozzi)

![](https://avatars.githubusercontent.com/u/26346480?v=4)[Lorenzo Ruozzi](/maintainers/lruozzi9)[@lruozzi9](https://github.com/lruozzi9)

![](https://avatars.githubusercontent.com/u/5822554?v=4)[Luca](/maintainers/LucaGallinari)[@LucaGallinari](https://github.com/LucaGallinari)

---

Top Contributors

[![lruozzi9](https://avatars.githubusercontent.com/u/26346480?v=4)](https://github.com/lruozzi9 "lruozzi9 (227 commits)")[![LucaGallinari](https://avatars.githubusercontent.com/u/5822554?v=4)](https://github.com/LucaGallinari "LucaGallinari (7 commits)")

---

Tags

elasticsearchsyliussylius-plugin

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/webgriffe-sylius-elasticsearch-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/webgriffe-sylius-elasticsearch-plugin/health.svg)](https://phpackages.com/packages/webgriffe-sylius-elasticsearch-plugin)
```

###  Alternatives

[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.8M662](/packages/shopware-core)[flow-php/flow

PHP ETL - Extract Transform Load - Data processing framework

86337.5k](/packages/flow-php-flow)[chameleon-system/chameleon-base

The Chameleon System core.

1029.4k6](/packages/chameleon-system-chameleon-base)[cmsig/seal-symfony-bundle

An integration of CMS-IG SEAL search abstraction into Symfony Framework.

15323.1k14](/packages/cmsig-seal-symfony-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
