aligent / magento2-fredhopper-indexer
从 Magento 到 Fredhopper 索引和推送数据
3.2.6
2022-11-28 04:10 UTC
Requires
- php: >=7.4
- aligent/magento2-category-selector: *
- magento/magento-composer-installer: *
- magento/module-catalog-search: *
Suggests
- aligent/dataproxy: Pull and process data from Fredhopper
This package is auto-updated.
Last update: 2024-09-23 04:15:20 UTC
README
概述
此模块旨在用用于将产品数据导出到 Fredhopper 的索引器替换核心 Magento 2 目录搜索索引器 (catalogsearch_fulltext
)。
架构
- 新数据库表,
fredhopper_product_data_index
- 以 JSON 格式存储产品和变体属性数据
- 新的搜索引擎,
fredhopper
,用于替换 Elasticsearch (或其他)。- 注意,搜索功能不属于此模块,应由其他模块(例如 Aligent_DataProxy)处理。此模块仅关注从 Magento 到 Fredhopper 的数据流。
- 3 个新的 cron 作业用于将数据导出到 Fredhopper。所有三个作业都使用 JSON 数据格式。
fredhopper_full_export
- 导出所有产品/变体的当前属性数据。这还将导出有关属性的元信息。fredhopper_incremental_export
- 导出自上次运行以来已更改的产品/变体。- 此作业添加到
index
cron 组,因此它将不会受到持续索引过程的影响。
- 此作业添加到
fredhopper_suggest_export
- 导出用于 '即时搜索' 功能的数据。
配置
此模块提供了一些可配置的设置,用于控制发送到 Fredhopper 的数据和格式。
- 使用变体产品吗?
- 是否应将变体产品单独发送,还是将它们的数据聚合并发送给父产品?
- 产品级别属性
- 哪些属性在产品级别发送,属性类型以及是否附加网站变体。
- 只有符合某些标准(例如可搜索、在前端可见等)的属性才能被选中。
- 哪些属性在产品级别发送,属性类型以及是否附加网站变体。
- 变体级别属性
- 哪些属性在变体级别发送(如果使用变体产品)或聚合到父产品。
- 价格属性
- 按站点/按客户群体发送价格属性?包括最小/最大价格?
- 库存属性
- 发送库存指示器和/或库存计数?
- 产品年龄属性
- 发送指示产品是否为新产品以及在线天数的属性?
- 允许/不允许的搜索词
- 强制或阻止即时搜索功能中的某些搜索结果。
- 定时任务计划
- 如果需要,更改每个定时任务的计划。
定制
模块中有多个定制点,允许添加/修改数据。
- 附加字段提供者
- 提供带有一些常用字段的虚拟类型,
additionalFieldsProviderForFredhopper
。根据需要可以添加实现\Magento\AdvancedSearch\Model\Adapter\DataMapper\AdditionalFieldsProviderInterface
的附加类。
- 提供带有一些常用字段的虚拟类型,
<virtualType name="additionalFieldsProviderForFredhopper" type="Magento\AdvancedSearch\Model\Adapter\DataMapper\AdditionalFieldsProvider">
<arguments>
<argument name="fieldsProviders" xsi:type="array">
<item name="categories" xsi:type="object">Aligent\FredhopperIndexer\Model\Indexer\Data\CategoryFieldsProvider</item>
<item name="prices" xsi:type="object">Aligent\FredhopperIndexer\Model\Indexer\Data\PriceFieldsProvider</item>
<item name="stock" xsi:type="object">Aligent\FredhopperIndexer\Model\Indexer\Data\StockFieldsProvider</item>
<item name="images" xsi:type="object">Aligent\FredhopperIndexer\Model\Indexer\Data\ImageFieldsProvider</item>
<item name="age" xsi:type="object">Aligent\FredhopperIndexer\Model\Indexer\Data\AgeFieldsProvider</item>
</argument>
</arguments>
</virtualType>
- 文档预处理/后处理程序
\Aligent\FredhopperIndexer\Model\Indexer\DataHandler
类有两个参数,documentPreProcessors
和documentPostProcessors
,它们处理实现\Aligent\\FredhopperIndexer\Api\Indexer\Data\DocumentProcessorInterface
的类数组。- 这些将在整个“处理”文档之前和之后(即所有属性信息添加后)运行。因此,这是一个处理任何与产品整体相关的自定义聚合或功能(而不是单个属性)的好地方。
- 元数据
- 通过代码添加的自定义属性需要添加到发送给Fredhopper的元信息中。这是通过向
\Aligent\FredhopperIndexer\Helper\CustomAttributeConfig
类的customAttributeData
参数添加来完成的。
- 通过代码添加的自定义属性需要添加到发送给Fredhopper的元信息中。这是通过向
<type name="Aligent\FredhopperIndexer\Helper\CustomAttributeConfig">
<arguments>
<argument name="customAttributeData" xsi:type="array">
<item name="reviews_count" xsi:type="array">
<item name="attribute_code" xsi:type="string">reviews_count</item>
<item name="fredhopper_type" xsi:type="string">int</item>
<item name="label" xsi:type="string">Review Count</item>
</item>
</argument>
</arguments>
</type>
- 自定义建议数据
\Aligent\FredhopperIndexer\Model\Export\SuggestExporter
类通过提供fileGenerators
参数,允许将自定义数据源添加到“建议”导出中。- 添加到数组中的每个类都必须实现
\Aligent\FredhopperIndexer\Api\Export\FileGeneratorInterface
接口。
- 添加到数组中的每个类都必须实现
<type name="Aligent\FredhopperIndexer\Model\Export\SuggestExporter">
<arguments>
<argument name="fileGenerators" xsi:type="array">
<item name="blacklist" xsi:type="object">Aligent\FredhopperIndexer\Model\Export\Data\BlacklistFileGenerator</item>
<item name="whitelist" xsi:type="object">Aligent\FredhopperIndexer\Model\Export\Data\WhitelistFileGenerator</item>
</argument>
</arguments>
</type>