You may Run this code on list page:
This code will update the attribute value based on all order after run this code remove the code and the next code in success.phtml:
<?php //ensure to set current store as product attributes are store specific Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID); $productCollection = Mage::getModel('catalog/product')->getCollection(); foreach($productCollection as $product) { $productsku = $product->getSku(); $_product_Collection = Mage::getResourceModel('reports/product_collection') ->addOrderedQty() ->addAttributeToFilter('sku', $productsku) ->setOrder('ordered_qty', 'desc') ->getFirstItem(); $productq = $_product_Collection; $_product_oder_qty = (int)$productq->ordered_qty; $attributeCode = "bestseller"; $product = Mage::getModel('catalog/product') ->load($product->getEntityId()); $product->setData($attributeCode, $_product_oder_qty) ->getResource() ->saveAttribute($product, $attributeCode); } ?>
increment the attribute value on each orders:
<?php $order = Mage::getSingleton('sales/order'); $order->loadByIncrementId(Mage::getSingleton('checkout/session')->getLastRealOrderId()); $_items = $order->getAllItems(); //echo count($_items); foreach($_items as $_item) { //echo 'NAME '.$_item->getName().', QTY '.$_item->getQtyOrdered().'<br/>'; $qty1 = $_item->getQtyOrdered(); $product = Mage::getModel('catalog/product')->load($_item->getProductId()); $qty2 = $product->getResource()->getAttribute('bestseller')->getFrontend()->getValue($product); $_product_oder_qty = $qty1+$qty2; $attributeCode = "bestseller"; $product->setData($attributeCode, $_product_oder_qty) ->getResource() ->saveAttribute($product, $attributeCode); } ?>
0 Comments