Use the following simple script to automate your up-sells widgets creation based on your customer orders info.
Save the script as autoUpSells.php and run it through cron jobs to create up-sells from orders with processing status.
<?php require_once 'app/Mage.php'; umask ( 0 ); $currentStore = Mage::app ()->getStore ()->getId (); Mage::app ()->setCurrentStore ( Mage_Core_Model_App::ADMIN_STORE_ID ); $salesModel=Mage::getModel("sales/order"); $salesCollection = $salesModel->getCollection(); $salesCollection->addFieldToFilter('state', 'processing'); foreach($salesCollection as $order) { $orderId= $order->getIncrementId(); $order = Mage::getModel('sales/order')->loadByIncrementID($orderId); $items = $order->getAllItems(); $skus=array(); $counter = 0; foreach ($items as $itemId => $item){ $skus[$item->getProductId()] ['position'] = $counter; $counter++; } getSellLinkData($skus); } function getSellLinkData($skus){ foreach ($skus as $key => $value) { $param = $skus; $product = Mage::getModel('catalog/product')->load($key); unset($param[$key]); $product->setUpSellLinkData($param); $product->save(); } }
Have questions? please do not hesitate to ask!