L'ajout d'une catégorie sur la page d'accueil affiche un seul produit
-
12-12-2019 - |
Question
J'ai fait des recherches sur ce problème concernant Magento 1.9 qui n'ajoute pas la catégorie à la page d'accueil.J'ai donc fini par ajouter :
{{block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" category_id="15" template="catalog/product/list.phtml"}}
Vers le contenu de la page d'accueil.Il apparaît également sur la page d'accueil MAIS :seulement avec 1 produit sur 5.Pourquoi et est-ce que cela peut être changé ?
Je suis encore très nouveau sur Magento et je n'ai rien changé au niveau de la mise en page.J'ai vu ce post : Même problème, mais personne n'a répondu (et je ne peux pas faire de commentaire), j'ai suivi ces étapes - mais tout cela n'a pas fonctionné.
La solution
Utilisez-vous le thème rwd de Magento 1.9 ?Si tel est le cas, le problème peut provenir du fichier modèle catalog/product/list.phtml.
Dans catalog/product/list.phtml du thème rwd le code suivant
de la ligne 133 à 140
<?php
$_nameAfterChildren = $this->getChild('name.after')->getSortedChildren();
foreach($_nameAfterChildren as $_nameAfterChildName):
$_nameAfterChild = $this->getChild('name.after')->getChild($_nameAfterChildName);
$_nameAfterChild->setProduct($_product);
?>
<?php echo $_nameAfterChild->toHtml(); ?>
<?php endforeach; ?>
et de la ligne 178 à 186
<?php
//set product collection on after blocks
$_afterChildren = $this->getChild('after')->getSortedChildren();
foreach($_afterChildren as $_afterChildName):
$_afterChild = $this->getChild('after')->getChild($_afterChildName);
$_afterChild->setProductCollection($_productCollection);
?>
<?php echo $_afterChild->toHtml(); ?>
<?php endforeach; ?>
provoquera des erreurs si vous ajoutez le bloc dans la mise en page sans les blocs enfants « name.after » et « after ».
Si vous souhaitez que cela fonctionne sur votre page d'accueil, vous devez créer un nouveau modèle dans le thème, par exemple catalog/product/list_home.phtml, et copier le code de catalog/product/list.phtml mais supprimer le code des lignes I. indiqué.Vous devez ensuite utiliser le nouveau modèle dans le bloc de la page d'accueil :
{{block type="catalog/product_list" name="home.catalog.product.list" alias="products_homepage" category_id="15" template="catalog/product/list_home.phtml"}}
Autres conseils
Supprimer ces lignes de catalog/product/list.phtml
<?php
//set product collection on after blocks
$_afterChildren = $this->getChild('after')->getSortedChildren();
foreach($_afterChildren as $_afterChildName):
$_afterChild = $this->getChild('after')->getChild($_afterChildName);
$_afterChild->setProductCollection($_productCollection);
?>
<?php echo $_afterChild->toHtml(); ?>
<?php endforeach; ?>