J'ai installé un nouveau magento2, et les catégories les plus performantes fonctionnent, mais pour les sous-catégories, aucun produit n'apparaît dans l'interface même si j'ai assigné des produits à ces sous-catégories.
On dit toujours "Nous ne pouvons pas trouver de produits correspondant à la sélection".
Où puis-je trouver le code dans Magento 2 responsable de l'affichage des produits afin que je puisse le diagnostiquer de manière programmatique?
Pour afficher le produit, vérifiez si le produit contient les options suivantes:
Si vous souhaitez vérifier le produit dans la sous-catégorie, allez dans Catalogue-> Gérer les catégories-> Sélectionnez votre catégorie , ouvrez l'onglet Paramètres d'affichage et modifiez l'option "Est-ce que l'ancrage" est "Oui" . Enregistrer la catégorie.
Vous pouvez essayer reindexing.it fonctionne si tout cela est réglé
1. Général-> Statut = Activé
2.general-> Visibility = Catalogue, Recherche
3.Inventaire-> Qté> 0
4.Inventory-> Stock Availability = En stock
5. Sites Web = vérification de votre site
6.Catgories = vérifier votre catégorie.
Veuillez exécuter la commande suivante dans votre ligne de commande:
php bin/magento indexer:status
Si l'un des index est "Processing", accédez à votre base de données MySQL et à la table indexer_state. Vous remarquerez que l'une des valeurs est "Working" et que le reste est "Valid"
Définissez Working sur Invalid et réindexez à nouveau. La meilleure façon de procéder consiste à exécuter la requête suivante:
update magento.indexer_state set status='invalid' where status ='working'
Bonne chance!
Ceci est dû au problème de réindexation.
app\code\Modules\Catalogue\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\Catalogue\Modèle\Indexer\Catégorie\Produit\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" as default setting.
}
}
Ensuite, nous devrions exécuter cette commande.
php bin/magento cache:clean
php bin/magento indexer:reindex
Enfin, nous avons reçu 2 000 produits entiers sur notre page de catégorie au lieu des 340 produits précédents sur la page d’accueil. En outre, l'onglet "Catégorie de produit" sur la gestion de l'index est mis à jour à partir de la date de la version mise à niveau vers la date et l'heure d'indexation actuelles.
Belle expérience!
J'espère que cela aidera de nombreux développeurs et propriétaires.
J'ai eu un problème similaire, le produit est apparu dans la catégorie parente, mais pas dans la sous-catégorie attribuée à l'origine. Je l'ai résolu en appuyant sur le bouton "Enregistrer" de la sous-catégorie et/ou (ne savez pas si les deux sont nécessaires) sur la page d'édition de la catégorie parente.