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.0(1mo ago)15.3k—0%[1 issues](https://github.com/webgriffe/SyliusElasticsearchPlugin/issues)MITPHPPHP ^8.2CI passing

Since May 20Pushed 1mo 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 (35)Versions (26)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

46

—

FairBetter than 93% of packages

Maintenance70

Regular maintenance activity

Popularity26

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 97.4% 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 ~26 days

Recently: every ~36 days

Total

25

Last Release

47d 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://www.gravatar.com/avatar/2925ed774ce338117149f19b784c82de12f06dfe01d2f5ef407c62fcf8743eb3?d=identicon)[lruozzi9](/maintainers/lruozzi9)

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

---

Top Contributors

[![lruozzi9](https://avatars.githubusercontent.com/u/26346480?v=4)](https://github.com/lruozzi9 "lruozzi9 (226 commits)")[![LucaGallinari](https://avatars.githubusercontent.com/u/5822554?v=4)](https://github.com/LucaGallinari "LucaGallinari (6 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

[matchish/laravel-scout-elasticsearch

Search among multiple models with ElasticSearch and Laravel Scout

7481.6M1](/packages/matchish-laravel-scout-elasticsearch)[mailerlite/laravel-elasticsearch

An easy way to use the official PHP ElasticSearch client in your Laravel applications.

934507.9k2](/packages/mailerlite-laravel-elasticsearch)[jeroen-g/explorer

Next-gen Elasticsearch driver for Laravel Scout.

399590.5k](/packages/jeroen-g-explorer)[jsq/amazon-es-php

Support for using IAM authentication with the official Elasticsearch PHP client

9210.4M13](/packages/jsq-amazon-es-php)[monsieurbiz/sylius-search-plugin

A search plugin using Elasticsearch for Sylius.

49120.6k](/packages/monsieurbiz-sylius-search-plugin)[babenkoivan/elastic-client

The official PHP Elasticsearch client integrated with Laravel

543.9M5](/packages/babenkoivan-elastic-client)

PHPackages © 2026

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