creativestyle / magesuite-elasticsuite-virtual-category-indexer

ElasticSuite 虚拟分类索引器

v1.1.22 2024-09-12 10:32 UTC

README

配置

要启用 虚拟分类索引器 或更改定时任务计划,请转到

  • 管理区域
  • 商店
  • 配置
  • Magesuite
  • 虚拟分类索引器
  • 常规

CLI 命令

定时任务

完整的重新索引将自动按定时任务计划执行。

重要模块类

扩展属性

模块提供了扩展属性 virtual_query 以通过插件修改对 elasticsaerch 的请求。如果它具有 true 值,smile 将正常工作。 False 值将删除虚拟查询请求。

查看:\Smile\ElasticsuiteVirtualCategory\Model\Rule::getCategorySearchQuery

public function getCategorySearchQuery($category, $excludedCategories = []): ?QueryInterface
{
    $query = null;

    if (!is_object($category)) {
        $category = $this->categoryFactory->create()->setStoreId($this->getStoreId())->load($category);
    }

    if (!in_array($category->getId(), $excludedCategories)) {
        $excludedCategories[] = $category->getId();

        if ((bool) $category->getIsVirtualCategory() && $category->getIsActive()) {
           $query = $this->getVirtualCategoryQuery($category, $excludedCategories, $category->getData('virtual_category_root'));
        } elseif ($category->getId() && $category->getIsActive()) {
            $query = $this->getStandardCategoryQuery($category, $excludedCategories);
        }
        if ($query && $category->hasChildren()) {
            $query = $this->addChildrenQueries($query, $category, $excludedCategories);
        }
    }

    return $query;
}

EAV 属性

模块安装了一个新的分类属性 virtual_category_reindex_required。如果此属性具有 value=1,smile 将正常工作。

故障排除和未来待办事项

当更改虚拟分类的根分类时,之前的产品仍然位于该分类中

要从分类中删除产品,请运行完整的重新索引。

在启用模块后,虚拟分类不再显示产品

如果在管理区域预览中看到产品

似乎 ES 能够在索引器中返回正确的产品 ID。

确保脚本在此处提供了正确的分类对象

vendor/creativestyle/magesuite-elasticsuite-virtual-category-indexer/Model/Indexer/VirtualCategoryIndexer.php:150

应与此处相同

vendor/creativestyle/magesuite-elasticsuite-virtual-category-indexer/Controller/Adminhtml/Category/Virtual/Preview.php:67