2014-07-24 1 views
0

J'essaye de générer la liste des produits passés passés pour le client connecté. Ma tentative jusqu'à présent.magento: liste de commandes passées pour client connecté

<ul> 
<?php 
    $OrderProducts = Mage::getResourceModel('sales/order_collection') 
         ->addFieldToSelect('*') 
         ->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId()) 
         ->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates())) 
         ->setOrder('created_at', 'desc');  

       foreach($OrderProducts as $ord){    

        $o=Mage::getModel('sales/order')->load($ord->getId()); 
        $items = $o->getAllItems(); ?> 


        <?php foreach($items as $p){ 
          $p= Mage::getModel('catalog/product')->load($p->getId()); 
          ?>       
         <li> 
         <a href="<?php echo $p->getProductUrl()?>"><img class="recently-img" src="<?php echo $this->helper('catalog/image')->init($p, 'small_image')->keepFrame(false) ->keepAspectRatio(true)->resize(140) ?>" /></a> 
         </li>   

      <?php }} ?> 
</ul> 

Ce code montre quelques articles de commande passés mais certains contenus sont erronés. Et aussi il ne montre pas ces produits qui sont des produits configurables. S'il vous plaît aider. Merci d'avance.

+0

Que voulez-vous dire par mauvais contenu. S'il vous plaît élaborer – TBI

+0

Si vous utilisez cette approche avec 1000s de commande sur une période de temps cela entraînera une charge très lente.Je vous suggère de créer une table plate séparée et en utilisant un script cron peupler cette table plate.Them faire une simple requête de sélection sur cette table plate. – oscprofessionals

Répondre

0

Si vous souhaitez obtenir uniquement des produits configurables. Vous devez vérifier avant impression li

if($p['type_id'] == 'configurable') { ?>       
    <li> 
      <a href="<?php echo $p->getProductUrl()?>"><img class="recently-img" src="<?php echo $this->helper('catalog/image')->init($p, 'small_image')->keepFrame(false) ->keepAspectRatio(true)->resize(140) ?>" /></a> 
    </li> 
<?php } ?> 
1

Si je me souviens bien, 'les ventes/order_collection' n'enregistre pas de type composite produit (paquet/configurable). Il enregistre uniquement les produits pour enfants, qui font des sens quand on y pense (en termes d'inventaire).

Donc, une réponse courte est que vous ne pouvez pas obtenir un produit configurable. Si vous décrivez ce que vous voulez dire par «les contenus sont faux» (qu'attendez-vous par rapport à ce qu'il produit), je pourrais peut-être vous aider.

Questions connexes