{"id":24780436,"url":"https://github.com/webgriffe/syliuselasticsearchplugin","last_synced_at":"2026-02-02T19:03:13.726Z","repository":{"id":117573976,"uuid":"555442866","full_name":"webgriffe/SyliusElasticsearchPlugin","owner":"webgriffe","description":"Plugin allowing to integrate Elasticsearch engine in Sylius.","archived":false,"fork":false,"pushed_at":"2026-01-22T17:05:53.000Z","size":482,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-23T09:56:12.558Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webgriffe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2022-10-21T15:33:09.000Z","updated_at":"2025-11-24T10:42:40.000Z","dependencies_parsed_at":"2024-05-20T09:32:10.264Z","dependency_job_id":"ee61ead1-b395-42d6-8eec-e2941905fad4","html_url":"https://github.com/webgriffe/SyliusElasticsearchPlugin","commit_stats":null,"previous_names":["lruozzi9/syliuselasticsearchplugin"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/webgriffe/SyliusElasticsearchPlugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2FSyliusElasticsearchPlugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2FSyliusElasticsearchPlugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2FSyliusElasticsearchPlugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2FSyliusElasticsearchPlugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webgriffe","download_url":"https://codeload.github.com/webgriffe/SyliusElasticsearchPlugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2FSyliusElasticsearchPlugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29017940,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-02T18:51:31.335Z","status":"ssl_error","status_checked_at":"2026-02-02T18:49:20.777Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-29T10:30:44.818Z","updated_at":"2026-02-02T19:03:13.721Z","avatar_url":"https://github.com/webgriffe.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://sylius.com\" target=\"_blank\"\u003e\n        \u003cimg src=\"https://demo.sylius.com/assets/shop/img/logo.png\" /\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eSylius \u003ca href=\"https://www.elastic.co/\" target=\"_blank\"\u003eElasticsearch\u003c/a\u003e Plugin\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eSylius plugin for Elasticsearch query engine.\u003c/p\u003e\n\n\n## Installation\n\n1. Run:\n    ```bash\n    composer require webgriffe/sylius-elasticsearch-plugin\n   ```\n\n2. Add `Webgriffe\\SyliusElasticsearchPlugin\\WebgriffeSyliusElasticsearchPlugin::class =\u003e ['all' =\u003e true]` to your `config/bundles.php`.\n   \n   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.\n\n3. Import the plugin configs. Add the following to your config/packages/webgriffe_sylius_elasticsearch_plugin.yaml file:\n   ```yaml\n   imports:\n       - { resource: \"@WebgriffeSyliusElasticsearchPlugin/config/config.php\" }\n   ```\n\n4. Import the routes needed for cancelling the payments. Add the following to your config/routes.yaml file:\n   ```yaml\n   webgriffe_sylius_elasticsearch_plugin:\n       resource: \"@WebgriffeSyliusElasticsearchPlugin/config/routes/shop.php\"\n   ```\n   **NB:** if you have locales prefix enabled you should prefix import with that.\n\n5. Make your ProductRepository implements the DocumentTypeRepositoryInterface. Remember to update your product resource configuration to use the new repository. For example:\n   ```yaml\n   sylius_product:\n       resources:\n           product:\n               classes:\n                   repository: App\\Doctrine\\ORM\\ProductRepository\n   ```\n\n6. Make your ProductAttribute and ProductOption entities implements the FilterableInterface. You can implement it by using our ready DoctrineORMFilterableTrait. For example:\n   ```php\n   use Webgriffe\\SyliusElasticsearchPlugin\\Doctrine\\ORM\\FilterableTrait;use Webgriffe\\SyliusElasticsearchPlugin\\Model\\FilterableInterface;\n   \n   class ProductAttribute implements FilterableInterface\n   {\n       use FilterableTrait;\n   }\n   ```\n\n## Usage\n\n## Contributing\n\nFor a comprehensive guide on Sylius Plugins development please go to Sylius documentation,\nthere you will find the \u003ca href=\"https://docs.sylius.com/en/latest/plugin-development-guide/index.html\"\u003ePlugin Development Guide\u003c/a\u003e, that is full of examples.\n\n### Quickstart Installation\n\n#### Traditional\n\n1. Run `composer create-project sylius/plugin-skeleton ProjectName`.\n\n2. From the plugin skeleton root directory, run the following commands:\n   \n    ```bash\n    $ (cd tests/Application \u0026\u0026 yarn install)\n    $ (cd tests/Application \u0026\u0026 yarn build)\n    $ (cd tests/Application \u0026\u0026 APP_ENV=test bin/console assets:install public)\n    \n    $ (cd tests/Application \u0026\u0026 APP_ENV=test bin/console doctrine:database:create)\n    $ (cd tests/Application \u0026\u0026 APP_ENV=test bin/console doctrine:schema:create)\n    ```\n\nTo be able to set up a plugin's database, remember to configure you database credentials in `tests/Application/.env` and `tests/Application/.env.test`.\n\n#### Docker\n\n1. Execute `docker compose up -d`\n\n2. Initialize plugin `docker compose exec app make init`\n\n3. See your browser `open localhost`\n\n## Usage\n\n#### Running plugin tests\n\n- PHPUnit\n  \n  ```bash\n  vendor/bin/phpunit\n  ```\n\n- PHPSpec\n  \n  ```bash\n  vendor/bin/phpspec run\n  ```\n\n- Behat (non-JS scenarios)\n  \n  ```bash\n  vendor/bin/behat --strict --tags=\"~@javascript\"\n  ```\n\n- Behat (JS scenarios)\n    \n    1. [Install Symfony CLI command](https://symfony.com/download).\n    \n    2. Start Headless Chrome:\n  \n    ```bash\n    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\n    ```\n    \n    3. Install SSL certificates (only once needed) and run test application's webserver on `127.0.0.1:8080`:\n  \n    ```bash\n    symfony server:ca:install\n    APP_ENV=test symfony server:start --port=8080 --dir=tests/Application/public --daemon\n    ```\n    \n    4. Run Behat:\n  \n    ```bash\n    vendor/bin/behat --strict --tags=\"@javascript\"\n    ```\n\n- Static Analysis\n    \n    - Psalm\n      \n      ```bash\n      vendor/bin/psalm\n      ```\n    \n    - PHPStan\n      \n      ```bash\n      vendor/bin/phpstan analyse -c phpstan.neon -l max src/  \n      ```\n\n- Coding Standard\n  \n  ```bash\n  vendor/bin/ecs check\n  ```\n\n#### Opening Sylius with your plugin\n\n- Using `test` environment:\n  \n    ```bash\n    (cd tests/Application \u0026\u0026 APP_ENV=test bin/console sylius:fixtures:load)\n    (cd tests/Application \u0026\u0026 APP_ENV=test bin/console server:run -d public)\n    ```\n\n- Using `dev` environment:\n  \n    ```bash\n    (cd tests/Application \u0026\u0026 APP_ENV=dev bin/console sylius:fixtures:load)\n    (cd tests/Application \u0026\u0026 APP_ENV=dev bin/console server:run -d public)\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebgriffe%2Fsyliuselasticsearchplugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebgriffe%2Fsyliuselasticsearchplugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebgriffe%2Fsyliuselasticsearchplugin/lists"}