在类别中显示产品并使用 Magento 2 Observer 进行搜索

问题描述 投票:0回答:1

我在 Magento 2 中定义了一个属性。当我在这个属性中说“不要在类别中显示”时,我不希望产品显示在类别和搜索中。但我不想完全删除产品的 URL,这对 SEO 而言对我很重要。你能帮我吗?

我做了visible属性,它没有在类别或搜索中显示产品,但是当我输入URL时,它给出了404错误。

product magento2 observers
1个回答
0
投票

您应该覆盖类 \Magento\Catalog\Model\Product\Visibility。 此类提供用于管理产品可见性的后端,并允许您定义产品在目录、搜索结果和直接 URL 中显示的条件。

  1. 将 VISIBILITY_IN_SITE 添加到 \Magento\Catalog\Model\Product\Visibility 类中

  1. 将 VISIBILITY_IN_SITE 添加到函数 getVisibleInSiteIds()

public function getVisibleInSiteIds()
{
  return [self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_IN_SITE];
}
  1. 将 VISIBILITY_IN_SITE 添加到函数 getOptionArray() 中,如下所示, “站点”是在后端显示此选项的标签
public function getVisibleInSiteIds()
{
  return [self::VISIBILITY_IN_SEARCH, self::VISIBILITY_IN_CATALOG, self::VISIBILITY_BOTH, self::VISIBILITY_IN_SITE];
}

在后端,您将获得一个名为“站点”的新“可见性”选项。分配了此可见性的产品将从类别页面和搜索结果中隐藏。但是,客户仍然可以使用产品 URL 直接访问产品详细信息页面。

这对我有用

© www.soinside.com 2019 - 2024. All rights reserved.