Les produits Magento 2 n'apparaissent pas dans la catégorie (mais sont visibles via la recherche)


8

Vous avez un petit problème ici avec les catégories.

Exécuter Magento 2.1.3

Toutes les autres catégories affichent la bonne quantité de produit, sauf celle-ci cliquez ici pour voir1]

Sous Produits-> Catégories -> La catégorie "Kingdom Death" affiche 66 produits.

Cependant, lorsque vous accédez à un frontal, il n'affiche que 16 produits.

Les choses que j'ai faites jusqu'à présent:

  • Mise en cache effacée
  • Tout réindexé
  • Supprimer / Réajouter des produits dans la même catégorie
  • Assurez-vous que les produits sont activés
  • Assurez-vous que les articles sont en stock
  • Assurez-vous que la visibilité du produit est définie sur "Catalogue, Recherche"

J'ai comparé ces 16 produits qui sont visibles à ceux "invisibles" et il n'y a pas de changements visibles tous les paramètres et attributs sont identiques.

De plus, si je recherche le produit "invisible" sur le site, il l'affichera et le trouvera, mais ne fonctionne pas si j'essaye de le trouver en utilisant une catégorie.

J'apprécie beaucoup l'aide!


vous devez définir le catalogue de visibilité du produit, rechercher à partir du backend et exécuter la commande d'indexation.
Rakesh Jesadiya

Réponses:


4

Ceci est ma bonne réponse. Je viens de rencontrer votre problème sur mon site. Mon site est basé sur Magento 2.1.5. Vous devez ajouter des fichiers xml et php dans votre dossier d'application.

Surtout, le site est juste une production en direct, ma réponse est juste une réponse plus pratique.

Nous pouvons facilement ajouter ces deux fichiers dans le dossier Modules d'origine.

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. 
    }
}

Ensuite, nous devons exécuter cette commande.

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

Enfin, nous avons obtenu 2000 produits entiers sur notre page de catégorie au lieu de 340 produits précédents sur la page frontend. De plus, l'onglet "Catégorie de produit" de la gestion des index est juste mis à jour de la date de mise à niveau de la version à la date et l'heure d'indexation actuelles.

Belle expérience!

J'espère que cela aidera de nombreux développeurs et propriétaires.


Excellente réponse ... comme j'ai une catégorie ayant des produits 60K et cherchais une solution et c'est juste excellent ...
Great Indian Brain

Je n'ai pas de dossier "app \ code \ Modules" dans ma boutique? Est-il suffisant de simplement créer ce dossier Modules et de créer ces deux fichiers, ou faut-il plus de détails dans la réponse pour aider à ma compréhension?
robgt

J'ai trouvé cela ( github.com/bangerkuwranger/… ) qui couvre les mêmes détails de réponse, mais en tant que module standard que vous pouvez utiliser tel quel ou copier dans votre propre module. Cela pourrait aider les autres à mieux comprendre comment effectuer ces tâches.
robgt

Ok, vous pouvez créer ces dossiers comme si vous créiez un nouveau module.
Igor Revenko
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.