产品未显示在Magento2子类别

问题描述:

我安装了新鲜的magento2,并且顶级类别正在运行,但对于子类别,前端没有产品出现,即使我认为产品已归入这些子类别。产品未显示在Magento2子类别

总是说“我们找不到与产品匹配的产品”。

我在哪里可以找到Magento 2中负责显示产品的代码,以便我可以通过编程方式诊断此问题?

+0

欢迎计算器!由于SO是一个致力于编程问题的网站,因此这里的问题是无关紧要的。请参加[介绍性旅游](http://www.stackoverflow.com/tour)。此外,您的问题缺乏基本信息,如使用的版本等。您可能想阅读[我如何提出一个好问题](http://stackoverflow.com/help/how-to-ask),这可以增加获得有用答案的可能性。你可能会发现[ESR](https://en.m.wikipedia.org/wiki/Eric_S._Raymond)的文章[如何提问智能方式](http://catb.org/~esr/faqs /smart-questions.html)很有帮助。 –

+0

由于Stack Overflow是一个[编程相关](http://stackoverflow.com/help/on-topic)问答站点,因此我正在投票关闭此问题。你的问题不是关于编程。也许你应该在http://magento.stackexchange.com上发布它呢? – Enigmativity

,以显示产品,检查产品的下列选项:

  1. 常规 - >状态=启用
  2. 常规 - >可见=目录,搜索
  3. Inventory->数量> 0
  4. Inventory->股票可用性=库存
  5. 网站=检查您的网站
  6. 钙tgories =检查您的类别。

如果你想检查产品子类别,去目录 - >管理分类 - >选择您类别,打开标签的显示设置和更改选项“是锚”“是”。保存类别。

+0

您正在使用哪个Magento 2版本? – crashtestxxx

你可以尝试,如果这些东西都设置

1.General->状态reindexing.it工作=启用

2.general->可见=目录,搜索

3.Inventory- >数量> 0

4.Inventory->股票可用性=库存

5.Websites =检查您的网站

6.Catgories =检查您的类别。

+1

非常感谢你,reindexing完成了这项工作!很高兴知道,让我的头绕了一会儿。你能解释一下什么是重新索引? –

请在你的命令行运行以下命令:

php bin/magento indexer:status 

如果指标之一是“处理”,然后去你的MySQL数据库,并转到indexer_state表。您会注意到其中一个值为“正在工作”,其余为“有效”

将工作设置为无效并再次重新索引。执行此操作的最佳方法是运行以下查询:

update magento.indexer_state set status='invalid' where status ='working' 

祝您好运!

+0

欲了解更多信息,检查https://github.com/magento/magento2/issues/5146 – Tristan

我有一个类似的问题,产品出现在父类别中,但没有在原来分配的子类别中。我通过点击子类别中的“保存”按钮和/或(不确定是否有必要)父类别编辑页面来解决此问题。

+0

你试过运行索引? – rajatsaurastri

+0

是的,这也适用,很好的手动reindex,但对我来说,只打保存在类别页面,而不是打开shell的命令,登录,更改用户,手动运行reindex和更新缓存更简单。问题在这里更详细地讨论https://github.com/magento/magento2/issues/2855 –

+0

这不是一个正确的方法。什么用于新产品?库存变化?等等......事实上,您可以根据您的期望时间将索引安排为cron,以便您的数据正确编制索引。 – rajatsaurastri

这是由于reindexing问题。

应用程序\代码\模块\目录\等\ di.xml

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> 
<preference for="Magento\Catalog\Model\Indexer\Category\Product\Action\Full" type="Modules\Catalog\Model\Indexer\Category\Product\Action\Full" /> 
</config> 

应用程序\代码\模块\目录\型号\索引\目录\产品\行动\ Full.php

<?php 
namespace Modules\Catalog\Model\Indexer\Category\Product\Action; 

/** 
* Class AbstractAction 
* @SuppressWarnings(PHPMD.CouplingBetweenObjects) 
*/ 

class Full extends \Magento\Catalog\Model\Indexer\Category\Product\Action\Full { 

    public function isRangingNeeded() { 
     return false; // It was "True" as default setting. 
    } 
} 

然后,我们应该运行这个命令。

php bin/magento cache:clean 
php bin/magento indexer:reindex 

最后,我们在我们的分类页面上获得了2000个产品,而不是前面的340个产品。 另外,索引管理中的“产品类别”选项卡刚从版本升级日期升级到当前索引日期和时间。

很棒的体验!

希望这可以帮助许多开发人员和业主。

子类产品展示问题的解决,因为你需要下面遵循:

Magento的2联系==>产品==>分类==>子类别==>设计==>使用父类别设置==>经过这里

enter image description here