diff --git a/bitbag/elasticsearch-plugin/5.0/config/packages/bitbag_elasticsearch_plugin.yaml b/bitbag/elasticsearch-plugin/5.0/config/packages/bitbag_elasticsearch_plugin.yaml new file mode 100644 index 00000000..62f001ea --- /dev/null +++ b/bitbag/elasticsearch-plugin/5.0/config/packages/bitbag_elasticsearch_plugin.yaml @@ -0,0 +1,2 @@ +imports: + - { resource: "@BitBagSyliusElasticsearchPlugin/config/config.yml" } diff --git a/bitbag/elasticsearch-plugin/5.0/config/routes/bitbag_elasticsearch_plugin.yaml b/bitbag/elasticsearch-plugin/5.0/config/routes/bitbag_elasticsearch_plugin.yaml new file mode 100644 index 00000000..382202ca --- /dev/null +++ b/bitbag/elasticsearch-plugin/5.0/config/routes/bitbag_elasticsearch_plugin.yaml @@ -0,0 +1,2 @@ +bitbag_sylius_elasticsearch_plugin: + resource: "@BitBagSyliusElasticsearchPlugin/config/routing.yml" diff --git a/bitbag/elasticsearch-plugin/5.0/manifest.json b/bitbag/elasticsearch-plugin/5.0/manifest.json new file mode 100644 index 00000000..11f8e0dd --- /dev/null +++ b/bitbag/elasticsearch-plugin/5.0/manifest.json @@ -0,0 +1,9 @@ +{ + "bundles": { + "FOS\\ElasticaBundle\\FOSElasticaBundle": ["all"], + "BitBag\\SyliusElasticsearchPlugin\\BitBagSyliusElasticsearchPlugin": ["all"] + }, + "copy-from-recipe": { + "config/": "%CONFIG_DIR%/" + } +} diff --git a/bitbag/elasticsearch-plugin/5.0/post-install.txt b/bitbag/elasticsearch-plugin/5.0/post-install.txt new file mode 100644 index 00000000..49ab1e4e --- /dev/null +++ b/bitbag/elasticsearch-plugin/5.0/post-install.txt @@ -0,0 +1,79 @@ +## BitBag Elasticsearch Plugin for Sylius + +### Requirements +* Elasticsearch server 7.x or higher must be running +* PHP ^8.2 or ^8.3 +* Sylius ^2.0 + +### Next steps: + +1. Update your ProductVariant entity to use the plugin's trait and interface: + + src/Entity/Product/ProductVariant.php: + ```php + use BitBag\SyliusElasticsearchPlugin\Model\ProductVariantInterface; + use BitBag\SyliusElasticsearchPlugin\Model\ProductVariantTrait; + + class ProductVariant extends BaseProductVariant implements ProductVariantInterface + { + use ProductVariantTrait; + } + ``` + +2. Configure Webpack (webpack.config.js): + ```js + const [ bitbagElasticSearchShop ] = require('./vendor/bitbag/elasticsearch-plugin/webpack.config.js'); + module.exports = [..., bitbagElasticSearchShop]; + ``` + +3. Add asset configuration (config/packages/assets.yaml): + ```yaml + framework: + assets: + packages: + elasticsearch_shop: + json_manifest_path: '%kernel.project_dir%/public/build/bitbag/elasticsearch/shop/manifest.json' + ``` + +4. Add webpack encore configuration (config/packages/webpack_encore.yaml): + ```yaml + webpack_encore: + builds: + elasticsearch_shop: '%kernel.project_dir%/public/build/bitbag/elasticsearch/shop' + ``` + +5. Add encore functions to your templates: + ```twig + {# templates/bundles/SyliusShopBundle/_javascripts.html.twig #} + {{ encore_entry_script_tags('bitbag-elasticsearch-shop', null, 'elasticsearch_shop') }} + + {# templates/bundles/SyliusShopBundle/_stylesheets.html.twig #} + {{ encore_entry_link_tags('bitbag-elasticsearch-shop', null, 'elasticsearch_shop') }} + ``` + +6. Configure Elasticsearch connection in .env: + ``` + ELASTICSEARCH_URL=http://localhost:9200/ + ``` + +7. Remove default FOSElasticaBundle index from config/packages/fos_elastica.yaml: + ```yaml + fos_elastica: + clients: + default: { url: '%env(ELASTICSEARCH_URL)%' } + ``` + +8. Install assets and build frontend: + ``` + bin/console assets:install + yarn install + yarn encore dev + ``` + +9. Clear cache and populate Elasticsearch: + ``` + bin/console cache:clear + bin/console fos:elastica:populate + ``` + +For more information, visit: https://github.com/BitBagCommerce/SyliusElasticsearchPlugin