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.
Que voulez-vous dire par mauvais contenu. S'il vous plaît élaborer – TBI
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