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!