在Magento类别和搜索结果页面上移除/隐藏产品

目录

  1. 介绍
  2. 理解Magento中的产品可见性
  3. 隐藏产品的逐步指南
  4. 通过直接SKU搜索确保产品的可访问性
  5. 总结
  6. 常见问题解答

介绍

是否曾经发现在您的Magento商店中需要有效地管理产品可见性?也许您有某些产品希望从类别和搜索结果页面中排除,但仍然希望通过直接的SKU搜索来访问它们。了解如何在Magento中精细调整产品可见性对于维护有组织和用户友好的在线商店至关重要。

在本全面指南中,我们将深入探讨如何利用Magento属性来控制类别和搜索结果页面上产品的可见性。通过本文的最后,您将掌握实现此功能的知识,从而提升您网站的性能和用户体验。

理解Magento中的产品可见性

产品可见性的重要性

产品可见性是任何电子商务平台的基本功能,影响用户如何与商店互动并找到他们所需的产品。正确管理可见性设置可以确保客户不会被无关选项压倒,从而提高搜索准确性和整体购物体验。

设置自定义属性

在Magento中,可以创建自定义属性来管理产品的可见性。这些属性可以根据库存状态、类别相关性和促销阶段等条件来控制产品的显示设置。

隐藏产品的逐步指南

创建“已停产”属性

首先,您需要创建一个名为“已停产”的自定义属性,其类型为是/否。该属性将用于标记应从类别和搜索结果页面中隐藏的产品。

  1. 访问Magento管理员面板:登录到您的Magento管理员面板。
  2. 创建属性:转到商店 > 属性 > 产品。单击添加新属性
  3. 配置属性设置:填写必要的详细信息:
    • 属性代码:discontinued
    • 输入类型:是/否
    • 根据需要设置其他设置(例如在管理员网格中可管理)。

将属性分配给产品

创建属性后,需要将其分配给产品。

  1. 进入产品:转到目录 > 产品
  2. 编辑产品详细信息:编辑您希望隐藏的产品,并将“已停产”属性设置为

修改类别和搜索结果显示逻辑

现在,让我们修改模板和逻辑以排除标记为“已停产”的产品:

  1. 访问主题文件:在您的服务器上,找到Magento主题文件,通常位于app/design/frontend下。
  2. 编辑类别模板:打开类别产品列表模板文件,通常位于Magento_Catalog/templates/product/list.phtml
  3. 修改查询语句:将查询适应于不包括“已停产”属性设置为的产品。
<?php
$_productCollection = $block->getLoadedProductCollection();
$_productCollection->addAttributeToFilter('discontinued', ['neq' => 1]);
?>

更新搜索结果页面

同样,调整搜索结果页面以隐藏已停产的产品。

  1. 访问搜索模板:转到Magento_Search/templates
  2. 编辑搜索结果模板:在搜索结果模板中,通常与类别模板类似的路径中找到,确保修改查询以过滤掉已停产的产品。
<?php
$searchCollection = $searchBlock->getLoadedProductCollection();
$searchCollection->addAttributeToFilter('discontinued', ['neq' => 1]);
?>

通过直接SKU搜索确保产品的可访问性

在确保已停产产品从常规列表和搜索结果中移除的同时,重要的是这些产品在通过SKU直接搜索时仍然可访问。

直接SKU搜索逻辑

  1. 调整搜索设置:在Magento管理员中导航并确保搜索设置已配置为仅在找到一个结果时跳转到产品页面。
  2. 特殊的SKU处理:增强逻辑以特别处理基于SKU的搜索。这涉及将搜索设置配置为仅当搜索词与SKU完全匹配时始终显示产品页面。
$searchTerm = $this->getRequest()->getParam('q');
if (is_sku($searchTerm)) {
    $product = $productRepository->get($searchTerm);
    if ($product && $product->getId()) {
        $this->_redirect($product->getProductUrl());
        return;
    }
}

这里,is_sku()是一个假设的函数,用于检查搜索词是否完全匹配SKU。

总结

在Magento中有效地管理产品的可见性对于优化商店的功能和用户体验至关重要。通过设置一个“已停产”属性并调整主题的逻辑,您可以确保已停产的产品从类别和搜索结果列表中隐藏,同时通过直接的SKU搜索仍然可以访问。

常见问题解答

如何确保更改不会立即影响我的在线商店?

在将更改部署到您的在线商店之前,始终建议在测试环境中测试更改。这有助于在不影响活动客户的情况下识别任何潜在问题。

我可以自动隐藏已停产的产品吗?

可以,您可以使用cron作业或自定义脚本自动化该过程,根据某些条件(如库存水平,时间段等)更新“已停产”属性。

隐藏产品会影响搜索引擎优化吗?

当产品被隐藏时,它不会出现在类别页面或搜索结果中,但如果直接链接,则仍然会索引。对于已停产的产品页面,使用noindex元标签可以帮助管理其在搜索引擎中的可见性。

如果我需要将产品恢复为可见状态怎么办?

只需将产品的“已停产”属性更改回,它们将重新出现在类别和搜索结果中,与以前相同。

通过实施这些策略,您可以确保您的Magento商店始终用户友好,响应灵敏,并提供无缝的购物体验。