Bonsoir,
Quelques informations sur la présentation de sa homepage notamment pour ce qui est de l'affichage de produits
Je conseillerais de gérer la homepage uniquement avec les fichiers .phtml que l'on y inclus. Cela permet d'avoir une homepage plus dynamique, et donc, à priori, qui nécessitera moins de mise à jour.
I) Comment afficher des produits sur la homepage
Il existe un bug au niveau de la gestion de block avec Magento, qui fait le code suivant :
| Code : |
{{block type="catalog/product_list" category_id="1" template="catalog/product/list.phtml"}}
{{block type="catalog/product_list" category_id="2" template="catalog/product/list.phtml"}} |
... résulte en un double affichage des produits de la catégorie 1 !
Une solution consiste à :
- gérer sa homepage à travers des .phtml
- insérer un petit bout de code qui permet de résoudre le bug.
Mettons que nous avons deux catégories différentes, ayant pour ID les numéros 1 et 2, et pour lesquelles nous voulons afficher des produits en page d'accueil.
1) Créer le(s) .phtml
Vous pouvez utiliser le phtml nommé "list", situé dans app\design\frontend\NOM_DE_VOTRE_INTERFACE\NOM_DE_VOTRE_THEME\template\catalog\product.
Avantage : rapide
Inconvénient : vous ne pouvez pas gérer l'affichage niveau homepage sans que cela change l'affichage de la liste de produits
Pour cela je conseille de créer, dans votre dossier de templates, un nouveau dossier "homepage", et d'y placer une
copie de list.phtml, que vous renommerez "homepage" ou autre nom de fichier explicite

Ce nouveau "list.phtml" sera alors à modifier pour avoir un affichage correct sur votre homepage.
Si vous avez plusieurs catégories de produits à afficher, dans le sens de catégorie "commerciale" (= des produits que l'on va devoir présenter différemment, plutôt avec telle information, plutôt avec une autre), vous pouvez créer encore un nouveau phtml, toujours à placer dans le répertoire homepage. Toujours dans l'idée de pouvoir gérer au mieux l'apparence de la page d'accueil...
2) Le bout de code "magique"
Il permet de remettre la variable à "NULL" ce qui empêche qu'un block prenne l'ID d'un autre.
<?php
Mage::getSingleton('catalog/layer')->setData("product_collection",NULL);
$this->_productCollection = null;
$_productCollection=$this->getLoadedProductCollection();
?>
Ce bout de code est à placer tout en haut de votre fichier .phtml (que ce soit list.phtml, homepage.phtml, il doit s'agir du .phtml qui gère l'affichage des produits sur votre page d'accueil

)
3) La page statique
Pour afficher les produits des 2 catégories il faudra insérer dans le contenu de la homepage ce code :
| Code : |
{{block type="catalog/product_list" category_id="1" template="CHEMIN_DE_VOTRE_PHTML/VOTRE_PHTML.phtml"}}
{{block type="catalog/product_list" category_id="2" template="CHEMIN_DE_VOTRE_PHTML/VOTRE_PHTML.phtml"}} |
Ce qui peut donner par exemple :
| Code : |
{{block type="catalog/product_list" category_id="1" template="catalog/product/list.phtml"}}
{{block type="catalog/product_list" category_id="2" template="catalog/product/list.phtml"}} |
Ou si vous avez utilisé des .phtml différents :
| Code : |
{{block type="catalog/product_list" category_id="1" template="homepage/cat1.phtml"}}
{{block type="catalog/product_list" category_id="2" template="homepage/cat2.phtml"}} |
Et voilà vous aurez une homepage sans bug
II) Inclure des "infoboxes statiques" dans sa page d'accueil
C'est très simple.
1) Créer le .phtml à inclure dans l'infoboxe statique
Disons que vous souhaitez afficher sur votre page d'accueil un bloc où seraient affichées, de manière aléatoire, des images de vos produits avec un lien menant à la page du produit affiché.
Il s'agirait alors de créer un .phtml, dans le dossier template/homepage, qui gererait cette affichage aléatoire.
2) Créer l'infoboxe statique et y inclure un appel du .phtml
Créez votre infoboxe statique, nommée par exemple "affichage-produits". Donnez lui un titre sans espace, et un identifiant égal au titre. Activez-la, associez-la à la Vue Magasin souhaitée (ou à tout le Site Web), et insérez en contenu :
| Code : |
{{block type=core/template template=homepage/affichage-produits.phtml}} |
Sauvegardez.
3) Afficher le bloc statique sur votre homepage
Editez votre homepage, et dans l'onglet de gauche ("Design Personnalisé" ), insérez le code suivant :
<reference name="root">
<block type="cms/block" name="affichage-produits" as="affichage-produits">
<action method="setBlockId"><id>affichage-produits</id></action>
</block>
</reference>
Cela le placera... nul part pour l'instant

. Sauvegardez et passez à l'étape 4.
4) Créez un nouveau .phtml de gestion de la homepage
Les pages Magento sont gérées grâce à des .phtml "généraux". A savoir :
- 1column.phtml
- 2columns-left.phtml
- 2columns-right.phtml
- 3columns.phtml
La homepage étant une page particulière, il convient de créer un template spéciale, unique. Vous pouvez le placer dans le même répertoire que ces templates généraux, c'est à dire dans le dossier "template/page".
On aurait ainsi : template/page/homepage.phtml
En guise de contenu, copiez le .phtml général de votre choix. Si votre homepage doit avoir 3 colonnes, copiez le .phtml "3columns.phtml"

Mettons que vous voulez afficher votre bloc qui affiche aléatoirement les images de vos produits
sur la doite.
Repérez dans votre nouveau .phtml le passage suivant :
| Code : |
<div class="col-right side-col"> |
Et insérez-y :
| Code : |
<?=$this->getChildHtml('affichage-produits')?> |
Attention, la place à laquelle vous ajoutez ce code détermine la place d'apparition de votre bloc.
Si vous souhaitez que votre bloc apparaisse à gauche, placez le dans la division commencant par :
| Code : |
<div class="col-left side-col"> |
Etc.

Sauvegardez.
5) Faites un petit module qui vous permettra de choisir ce nouveau template dans la liste déroulante des templates existants
Créez un .XML nommé "Mage_Templates.xml" avec ce contenu :
| Code : |
<config>
<modules>
<Mage_Templates>
<active>true</active>
<codePool>local</codePool>
</Mage_Templates>
</modules>
</config> |
Placez-le dans app/etc/modules.
Créez ensuite un .XML nommé "config.xml" avec ce contenu :
| Code : |
<config>
<global>
<cms>
<layouts>
<new_template1>
<label>Homepage</label>
<template>page/homepage.phtml</template>
</new_template1>
</layouts>
</cms>
</global>
</config> |
Attention : le code placé entre les balises <template></template> peut varier selon ce que vous avez choisi de faire

Incluez ce .xml dans un dossier nommé "etc", que vous placerez lui-même dans un dossier nommé "Templates".
Placez ensuite ce dossier "Templates" dans app/code/local/Mage/
Vous aurez au final app/code/local/Mage/Templates/etc/config.xml
Cette manipulation permet à Magento de trouver ce "module" qui est considéré comme extension locale.
6) Au final
Retournez sur l'édition de votre homepage. Dans la liste déroulante vous trouverez votre template "homepage". Sélectionnez-le, et vous verrez les changements...
III) Annexes
Quelques snippets de code qui peuvent aider. Ils sont à placer dans la section "Design personnalisé" de la page que vous souhaitez mettre à jour au niveau de son layout.
Retirer le bloc de comparaison de produit se trouvant à gauche
| Code : |
<reference name="left">
<action method="unsetChild"><alias>catalog.compare.sidebar</alias></action>
</reference> |
Retirer le bloc panier se trouvant à droite
| Code : |
<reference name="right">
<action method="unsetChild"><alias>cart_sidebar</alias></action>
</reference> |
Voilà.
Je reconnais que c'est assez laborieux dans l'état actuel des choses mais avec ces quelques informations on peut palier au manque de simplicité actuel du système...
Gab'
