Quantcast
Channel: Blog AppliBox » raphael
Viewing all articles
Browse latest Browse all 10

Ajout de boutons « Précédent » et « Suivant » sur la fiche produit Magento

$
0
0

Une fonctionnalité très utile mais qui manque à la version Community de Magento est la possibilité d’ajouter des boutons de navigation « Précédent » et « Suivant » entre les produits d’une même catégorie.
Il existe évidemment des extensions qui permettent d’implémenter cette possibilité mais elles sont payantes, c’est pourquoi voici une méthode simple et surtout gratuite pour mettre en place ce système.

  1. En premier lieu, ouvrez le fichier ./app/design/frontend/votre_interface/votre_theme/template/catalog/product/view.phtml
  2. Ajoutez le code suivant juste après les commentaires Magento :
    <?php
    $_helper = $this->helper('catalog/output');
    $_product = $this->getProduct();
    /**
    * Determine les liens précédents/suivants et le lien vers la categorie parente
    */
    $_ccats = $this->helper('catalog/data')->getProduct()->getCategoryIds();
    $_ccat = Mage::getModel('catalog/category')->load($_ccats[0]);
    $ppos = $_ccat->getProductsPosition();
    arsort($ppos);
    $current_pid  = $this->helper('catalog/data')->getProduct()->getId();
    // Déclaration d'un tableau contenant les positions
    $plist = array();
    foreach ($ppos as $pid => $pos) {
    $plist[] = $pid;
    }
    sort($plist);
    $curpos   = array_search($current_pid, $plist);
    // Obtenir le lien du produit suivant
    $previd   = isset($plist[$curpos+1])? $plist[$curpos+1] : $current_pid;
    $product  = Mage::getModel('catalog/product')->load($previd);
    $prevpos  = $curpos;
    while (!$product->isVisibleInSiteVisibility()) {
    $prevpos += 1;
    $nextid   = isset($plist[$prevpos])? $plist[$prevpos] : $current_pid;
    $product  = Mage::getModel('catalog/product')->load($nextid);
    }
    $next_url = $product->getProductUrl();
    // Obtenir le lien du produit précédent
    $nextid   = isset($plist[$curpos-1])? $plist[$curpos-1] : $current_pid;
    $product  = Mage::getModel('catalog/product')->load($nextid);
    $nextpos  = $curpos;
    while (!$product->isVisibleInSiteVisibility()) {
    $nextpos -= 1;
    $nextid   = isset($plist[$nextpos])? $plist[$nextpos] : $current_pid;
    $product  = Mage::getModel('catalog/product')->load($nextid);
    }
    $prev_url = $product->getProductUrl();
    // Obtenir le lien de la catégorie
    $more_url = $_ccat->getUrl();
    ?>
  3. Une fois ce code ajouté, trouvez les lignes suivants :
    <div>
    <input type="hidden" name="product" value="<?php echo $_product->getId() ?>" />
    <input type="hidden" name="related_product" id="related-products-field" value="" />
    </div>

    Et ajoutez le code suivant en dessous de celles-ci :
    <div>
    <table cellspacing="0" border="0" width="100%">
    <tr>
    <td style="text-align:left;"> <a href="<?= $prev_url; ?>"><?php if ("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] <> $prev_url) echo $this->__('←  Précedent') ?></a></td>
    <td style="text-align:center;"> <a href="<?= $more_url; ?>"><?php echo $this->__('Catégorie') ?></a></td>
    <td style="text-align:right;"> <a href="<?= $next_url; ?>"><?php if ("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'] <> $next_url) echo $this->__('Suivant →') ?></a></td>
    </tr>
    </table>
    </div>
  4. Vous disposez désormais de trois liens vous permettant de naviguer à travers les produits d’une même catégorie.

Voici un petit exemple du résultat obtenu sur le site e-commerce Magento Médias Aviron (NB : le lien vers la catégorie parente a été désactivée sur ce site) :

  • Si vous vous trouvez au premier (dernier) produit d’une catégorie, le lien « Précédent » (« Suivant ») n’apparaît pas :
  • Sinon, les deux apparaissent :

En espérant que ce petit tutoriel vous servira pour améliorer votre site e-commerce Magento.


Viewing all articles
Browse latest Browse all 10

Latest Images



Latest Images