2012-02-12 1 views
2

J'essaie d'afficher les options d'un produit groupé et d'un produit groupé dans la page de la liste des produits.Afficher l'offre groupée et groupée sur le produit Page

J'ai trouvé un script sur internet pour montrer des produits configurables mais j'ai du mal à en trouver un sur un bundle et groupé. Fondamentalement, je veux qu'il montre les options exactement les mêmes que si je regardais la page des produits réels.

Merci

+0

Avez-vous trouvé une solution? – MatheusJardimB

Répondre

1

Essayez avec le code ci-dessous

1) mettre ces trois fonctions ci-dessous dans votre fichier list.php si vous avez le remplacer, sinon d'abord écraser ce fichier Mage/Catalogue/Bloc? Produit/Liste .php

protected function _getProduct($sku) 
    { 
     $_productId = Mage::getModel('catalog/product')->getIdBySku($sku); 
     if($_productId) 
     { 
      return Mage::getModel('catalog/product')->load($_productId);  
     } 
     return null; 
    } 

    public function getAssociatedProducts($sku) 
    { 
     $_product = $this->_getProduct($sku); 
     $simpleProducts = $_product->getTypeInstance(true)->getAssociatedProducts($_product); 
     return $simpleProducts; 
    } 

    /** 
    * Set preconfigured values to grouped associated products 
    * 
    * @return Mage_Catalog_Block_Product_View_Type_Grouped 
    */ 
    public function setPreconfiguredValue($sku) { 
     $_product = $this->_getProduct($sku); 
     $configValues = $_product->getPreconfiguredValues()->getSuperGroup(); 
     if (is_array($configValues)) { 
      $associatedProducts = $this->getAssociatedProducts($sku); 
      foreach ($associatedProducts as $item) { 
       if (isset($configValues[$item->getId()])) { 
        $item->setQty($configValues[$item->getId()]); 
       } 
      } 
     } 
     return $this; 
    } 

2) mettre le code ci-dessous dans votre fichier de conception list.phtml/frontend/default/default/template/catelog/produit/list.phtml après cette ligne

<?php echo $this->getPriceHtml($_product, true) ?> 

<?php if($_product->getTypeId() == 'grouped'){ ?> 
       <?php $this->setPreconfiguredValue($_product->getSku()); ?> 
       <?php $_associatedProducts = $this->getAssociatedProducts($_product->getSku()); ?> 
       <?php $_hasAssociatedProducts = count($_associatedProducts) > 0; ?> 
       <table class="data-table grouped-items-table" id="super-product-table"> 
        <col /> 
        <col /> 
        <col width="1" /> 
        <thead> 
         <tr> 
          <th><?php echo $this->__('Name') ?></th> 
          <?php if ($this->getCanShowProductPrice($_product)): ?> 
          <th class="a-right"><?php echo $this->__('Price') ?></th> 
          <?php endif; ?> 
         </tr> 
        </thead> 
        <tbody> 
        <?php if ($_hasAssociatedProducts): ?> 
        <?php foreach ($_associatedProducts as $_item): ?> 
         <?php $_finalPriceInclTax = $this->helper('tax')->getPrice($_item, $_item->getFinalPrice(), true) ?> 
         <tr> 
          <td><?php echo $this->htmlEscape($_item->getName()) ?></td> 
          <?php if ($this->getCanShowProductPrice($_product)): ?> 
          <td class="a-right"> 
           <?php if ($this->getCanShowProductPrice($_item)): ?> 
           <?php echo $this->getPriceHtml($_item, true) ?> 
           <?php endif; ?> 
          </td> 
          <?php endif; ?> 
         </tr> 
        <?php endforeach; ?> 
        <?php else: ?> 
         <tr> 
          <td colspan="<?php if ($_product->isSaleable()): ?>4<?php else : ?>3<?php endif; ?>"><?php echo $this->__('No options of this product are available.') ?></td> 
         </tr> 
        <?php endif; ?> 
        </tbody> 
       </table> 
       <script type="text/javascript">decorateTable('super-product-table')</script> 
       <?php } ?> 

3) enter image description here

Peut être cette aide pour vous! Note: ce code ne fonctionne que pour les produits groupés