Comment afficher les options de produits configurables dans la page de la liste des catégories

magento.stackexchange https://magento.stackexchange.com/questions/1601

  •  16-10-2019
  •  | 
  •  

Question

Comment vérifier que l'affichage des options de produits configurables dans la page de la liste des catégories?

Était-ce utile?

La solution

Pour tout afficher toutes les options de vente en mesure dans la catégorie aller à .../app/design/frontend/[package]/[theme]/template/catalog/product/list.phtml et sa place dans foreach ($_productCollection as $_product) quelque chose comme ceci:

<?php if($_product->isConfigurable()): ?>
  //get attributes
  <?php $attributes = $_product->getTypeInstance(true)->getConfigurableAttributes($_product) ?>
  <?php if(count($attributes)): ?>
    <ul>
    <?php foreach($attributes as $att): ?>
      <?php $pAtt=$att->getProductAttribute();
        //get the child products
        $allProducts = $_product->getTypeInstance(true)->getUsedProducts(null, $_product);
        $frontValues =array() ?>
      <li><?php echo $pAtt->getFrontendLabel() ?>
       <ul>
       <?php foreach($allProducts as $p): ?>
         //check stock, status, ...
         //do not show unsaleable options
         <?php if(!$p->isSaleable()) continue; ?>
         <?php $out=$p->getAttributeText($pAtt->getName()); ?>
         <?php $frontValues[$out]=$out; ?>
       <?php endforeach ?>
        <li><?php echo implode('</li><li>', $frontValues) ?></li>
       </ul>
      </li>
    <?php endforeach ?>
    </ul>
  <?php endif ?>
<?php endif ?>

Peut-être que vous voulez ajouter des classes CSS aux balises <ul> et <li>.

  

Ce ne sera pas augmenter les performances de votre magasin!

inspiré par ce message

http://www.magentocommerce.com/boards/viewthread/73926/#t437146

Autres conseils

Vous pouvez utiliser quelque chose comme if ($_product->getTypeId() == 'configurable') à l'intérieur de la boucle de produits.

Cela peut prendre des ressources considérables du serveur car il peut y avoir beaucoup d'options pour chaque produit. Le meilleur moyen est d'utiliser ajax pour charger seulement toutes les options quand on a demandé. J'ai trouvé cette extension qui charge d'abord les couleurs, puis lorsque vous passez la souris dessus vous donnera toutes les options de produit.

http://www.consofas.com / plugins / options QuickView-pour-configurables-produits-en-magento /

Essayer cette fois

<?php $ptype = $_product->getTypeId();?>
<?php 
                                                if($ptype=='configurable'): ?>
                                                <!--get attributes-->
                                                <?php 
                                                $attributes = $_product->getTypeInstance(true)->getConfigurableAttributes($_product) ?>
                                                <?php 
                                                if(count($attributes)): ?>
                                                <?php 
                                                    foreach($attributes as $att): ?>
                                                    <?php 
                                                        $pAtt=$att->getProductAttribute();
                                                        //get the child products
                                                        $allProducts = $_product->getTypeInstance(true)->getUsedProducts($_product,null);
                                                        $frontValues =array();
                                                        foreach($allProducts as $p):
                                                            if($p->isSaleable()):
                                                                $attributeExist =$_product->getResource()->getAttribute($pAtt->getName());
                                                            ?>
                                                                <input type="hidden" name="super_attribute[<?php echo $pAtt->getAttributeId() ?>]" value="<?php  echo $attributeExist->getSource()->getOptionId($p->getAttributeText($pAtt->getName()));?>">
                                                            <?php
                                                                break;
                                                            endif;
                                                        endforeach;
                                                    endforeach;
                                                endif;
                                                    ?>
                                                <?php
                                                endif;
                                                ?>

lien suivant pourrait vous aider.

http: // hkpatel201. blogspot.in/2012/09/get-product-custom-option-in-list-page.html

Passez par le code

Merci

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top