lupasearch / sylius-lupasearch-plugin
Requires
- php: ^8.1
- lupasearch/lupasearch-php-client: >0.4.0 <1.0.0
- sylius/sylius: 1.12.* || 1.13.*
- symfony/amqp-messenger: ^6.4.0
Requires (Dev)
- dama/doctrine-test-bundle: ^6.0
- dg/bypass-finals: dev-master
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^1.8.1
- phpstan/phpstan-doctrine: 1.3.37
- phpstan/phpstan-phpunit: ^1.3
- phpstan/phpstan-strict-rules: ^1.3.0
- phpstan/phpstan-symfony: ^1.3
- phpstan/phpstan-webmozart-assert: ^1.2.0
- phpunit/phpunit: ^9.5
- polishsymfonycommunity/symfony-mocker-container: ^1.0
- psr/http-factory: 1.0.x-dev
- sylius-labs/coding-standard: ^4.2
- symfony/browser-kit: ^6.4
- symfony/debug-bundle: ^6.4
- symfony/dotenv: ^6.4
- symfony/flex: ^2.2.2
- symfony/intl: ^6.4
- theofidry/alice-data-fixtures: ^1.6
Conflicts
- symfony/framework-bundle: 6.2.8
This package is auto-updated.
Last update: 2024-09-16 12:34:44 UTC
README
LupaSearch Sylius 插件可以无缝地将您的 Sylius 商店与 LupaSearch SaaS 平台集成。此插件处理产品数据和搜索配置的同步,确保您的商店的搜索功能始终是最新的并针对性能进行了优化。
兼容性
插件兼容 Sylius 1.12.* 和 1.13.*
安装
注意:在安装之前,请通过 support@lupasearch.com 联系我们的支持团队,以获取必要的凭证和入职信息。
要安装 LupaSearch 插件,请按照以下步骤操作
-
使用 Composer 安装捆绑包
composer require lupasearch/sylius-lupasearch-plugin
-
打开您的 Sylius 项目的
bundles.php
文件,位于项目config
目录中。 -
在文件末尾添加以下行
// config/bundles.php return [ // ... other bundles ... LupaSearch\SyliusLupaSearchPlugin\LupaSearchSyliusLupaSearchPlugin::class => [ "all" => true, ], ];
-
更新架构
php bin/console doctrine:migrations:migrate
-
清除缓存
php bin/console cache:clear
配置
要开始使用 LupaSearch,您首先需要对其进行配置。
环境变量
# LupaSearch environment variables
LUPASEARCH_USER_EMAIL=
LUPASEARCH_USER_PASSWORD=
LUPASEARCH_INDEX_ID=
LUPASEARCH_SEARCH_QUERY_ID=
LUPASEARCH_BATCH_SIZE_FETCH_FROM_DATABASE=100
LUPASEARCH_BATCH_SIZE_SEND=100
LUPASEARCH_MESSENGER_TRANSPORT_DSN=amqp://rabbitmquser:rabbitmqpass@rabbitmq:5672
配置文件
在您的 Sylius 项目的 config/packages
目录中创建一个名为 lupasearch_sylius_lupasearch.yaml
的文件,并包含以下内容
lupa_search_sylius_lupa_search: email: "%env(LUPASEARCH_USER_EMAIL)%" password: "%env(LUPASEARCH_USER_PASSWORD)%" index_id: "%env(LUPASEARCH_INDEX_ID)%" search_query_id: "%env(LUPASEARCH_SEARCH_QUERY_ID)%" export: batch_size_fetch_from_database: "%env(int:LUPASEARCH_BATCH_SIZE_FETCH_FROM_DATABASE)%" batch_size_send: "%env(int:LUPASEARCH_BATCH_SIZE_SEND)%"
此外,您还需要将以下环境变量添加到您的 .env
文件中,变量名称可能根据您的需求有所不同,但应与 lupasearch_sylius_lupasearch.yaml
文件中的相同。
用法
此插件为 Sylius 项目提供 LupaSearch 服务集成。它提供了一些命令来同步您的数据与 LupaSearch。
更新标签
lupasearch:facets:update
命令用于将您的标签与 LupaSearch 同步。此命令从您的 Sylius 项目获取所有属性和选项,并将它们作为标签发送到 LupaSearch。
要执行此操作,请在您的终端中使用以下命令
bin/console lupasearch:facets:update
此命令可以连接到 cron 作业,以确保您的标签始终与您的 Sylius 项目保持最新。例如,您可以设置一个 cron 作业在午夜运行此命令。
❗ 请注意,要使此命令正常工作,您的搜索查询中至少需要有一个标签。
导出文档
lupasearch:documents:export
命令用于将所有启用的产品变体作为文档导出到 LupaSearch。此命令从您的 Sylius 项目获取所有启用的产品变体,并将它们发送到 LupaSearch。要执行此操作,请在您的终端中使用以下命令
bin/console lupasearch:documents:export
此命令可以在夜间导入 Sylius 项目后运行一次,以确保所有产品变体都导出到 LupaSearch。
❗ 请注意,当使用 CLI(例如,Sylius 目录导入)时,您应在 LupaExportContext 中将 isQueueForExport() 设置为 false。这将确保产品变体不会被放入导出到 LupaSearch 的队列中。相反,一个好的做法是在导入完成后运行
lupasearch:documents:export
命令。
开始文档导出
lupasearch:documents:export:initiate
命令用于从数据库中获取所有已排队的目录,并将相应的变体放入消息队列以导出到 Lupa。
要执行此操作,请在您的终端中使用以下命令
bin/console lupasearch:documents:export:initiate
在您在Sylius项目中更改产品变体后,可以运行此命令。通过请求更新的与产品变体关联的实体(例如通过Sylius管理面板或API),将在KernelFinishRequest完成后与LupaSearch同步。此过程由ProductVariantDispatcherSubscriber类管理。只有当在CLI上下文中(例如夜间导入期间)进行目录更新时,才需要此命令。
❗请注意,当使用CLI(例如,Sylius目录导入)时,应在LupaExportContext中将isQueueForExport()设置为false。这将确保产品变体不会被放入队列以导出到LupaSearch。相反,一个良好的做法是在导入完成后运行
lupasearch:documents:export:initiate
命令。
❗目前,插件仅限于在
config/packages/doctrine.yaml
配置文件中使用naming_strategy: doctrine.orm.naming_strategy.underscore
设置才能正常工作。