Produtos Magento 2 que não aparecem na categoria (mas são visíveis na pesquisa)

8

Temos um pequeno problema aqui com categorias.

Executando o Magento 2.1.3

Todas as outras categorias exibem a quantidade correta de produto, exceto esta clique aqui para ver1]

Em Produtos-> Categorias -> A categoria "Reino da Morte" mostra 66 produtos.

No entanto, quando você acessa um front-end, ele exibe apenas 16 produtos.

Coisas que eu fiz até agora:

  • Limpar em cache
  • Re-indexado tudo
  • Remover / Adicionar novamente produtos à mesma categoria
  • Verifique se os produtos estão ativados
  • Certifique-se de que os itens estejam em estoque
  • Verifique se a visibilidade do produto está definida como "Catálogo, pesquisa"

Comparei os 16 produtos visíveis aos "invisíveis" e não há alterações visíveis, todos os parâmetros e atributos são idênticos.

Além disso, se eu procurar o produto "invisível" no site, ele o exibirá e o encontrará, mas não funcionará se eu tentar encontrá-lo usando uma categoria.

Agradeço imensamente a ajuda!

rootex
fonte
você precisa definir a visibilidade do produto Catálogo, pesquisar no back-end e executar o comando de indexação.
Rakesh Jesadiya

Respostas:

4

Esta é a minha resposta correta. Acabei de experimentar seu problema no meu site. Meu site é baseado no Magento 2.1.5. Você deve adicionar alguns arquivos xml e php na pasta do aplicativo.

Especialmente, o site é apenas uma produção ao vivo, minha resposta é apenas uma resposta mais conveniente.

Podemos facilmente adicionar esses dois arquivos na pasta Módulos original.

app \ code \ Modules \ Catalog \ etc \ 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>

app \ code \ Modules \ Catalog \ Model \ Indexer \ Category \ Product \ Action \ 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" on default vendor part. 
    }
}

Então, devemos executar este comando.

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

Finalmente, temos 2000 produtos completos em nossa página de categoria, em vez dos 340 produtos anteriores em página de front-end. Além disso, a guia "Categoria do produto" no gerenciamento de índices é atualizada da data da versão atualizada para a data e hora atuais da indexação.

Ótima experiência!

Espero que isso ajude muitos desenvolvedores e proprietários.

Igor Revenko
fonte
Excelente resposta .. como eu tenho uma categoria com produtos 60K e estava procurando por uma solução e isso é simplesmente excelente ...
Great Indian Brain
Não tenho uma pasta "app \ code \ Modules" na minha loja? É suficiente simplesmente criar a pasta Módulos e criar esses dois arquivos, ou são necessários mais detalhes na resposta para ajudar meu entendimento?
robgt
Encontrei isso ( github.com/bangerkuwranger/… ) que abrange os mesmos detalhes de resposta, mas como um módulo padrão que você pode usar como está ou copiar em seu próprio módulo. Isso pode ajudar outras pessoas a entender melhor como executar essas tarefas.
robgt
Ok, você pode criar essas pastas da mesma maneira que cria um novo módulo.
Igor Revenko 24/10