public function getItems()
{
$bySale = 'SELECT count(*) as total,product_id FROM '.$tablePrefix.'`sales_flat_order_item` WHERE order_id IN (select order_id from '.$tablePrefix.'`sales_flat_order_item` where product_id = '.$productId.') and product_id != '.$productId.' group by product_id order by total desc';
$product = Mage::registry('product');
$productId = $product->getEntityId();
$orderItems = Mage::getModel('sales/order_item')->getCollection()
->addAttributeToSelect('order_id')
->addFieldToFilter('product_id', $productId)
->load();
$orderIds = array();
foreach ($orderItems as $orderItem)
{
$orderIds[] = $orderItem->getOrderId();
}
$saleItems = Mage::getModel('sales/order_item')->getCollection()
->addAttributeToSelect('product_id')
->addFieldToFilter('order_id',array('in' => $orderIds))
->addFieldToFilter('product_id',array('neq'=>$productId));
$saleItems->getSelect()->columns('COUNT(*) as total')->Group('product_id')->Order('total','DESC');
$productIds = array();
foreach ($saleItems as $saleItem)
{
$productIds[] = $saleItem->getProductId();
}
//echo($saleItems->getSelect());
//var_dump($productIds);
//exit;
$existingItems = $this->_itemCollection->getItems();
foreach ($productIds as $productId)
{
$productHelper = Mage::helper('catalog/product');
// Standard algorithm to prepare and rendern product view page
$product = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->load($productId);
if (!$product) {
//throw new Mage_Core_Exception($this->__('Product is not loaded'), $this->ERR_NO_PRODUCT_LOADED);
}
else
{
//var_dump($product);exit;
//var_dump($existingItems);exit;
if (!$productHelper->canShow($product)) {
continue;
}
if (!in_array(Mage::app()->getStore()->getWebsiteId(), $product->getWebsiteIds())) {
continue;
}
if(!in_array($product, $existingItems))
{
$this->_itemCollection->addItem($product);
//var_dump($existingItems);
//exit();
}
}
}
return $this->_itemCollection;
}
{
$bySale = 'SELECT count(*) as total,product_id FROM '.$tablePrefix.'`sales_flat_order_item` WHERE order_id IN (select order_id from '.$tablePrefix.'`sales_flat_order_item` where product_id = '.$productId.') and product_id != '.$productId.' group by product_id order by total desc';
$product = Mage::registry('product');
$productId = $product->getEntityId();
$orderItems = Mage::getModel('sales/order_item')->getCollection()
->addAttributeToSelect('order_id')
->addFieldToFilter('product_id', $productId)
->load();
$orderIds = array();
foreach ($orderItems as $orderItem)
{
$orderIds[] = $orderItem->getOrderId();
}
$saleItems = Mage::getModel('sales/order_item')->getCollection()
->addAttributeToSelect('product_id')
->addFieldToFilter('order_id',array('in' => $orderIds))
->addFieldToFilter('product_id',array('neq'=>$productId));
$saleItems->getSelect()->columns('COUNT(*) as total')->Group('product_id')->Order('total','DESC');
$productIds = array();
foreach ($saleItems as $saleItem)
{
$productIds[] = $saleItem->getProductId();
}
//echo($saleItems->getSelect());
//var_dump($productIds);
//exit;
$existingItems = $this->_itemCollection->getItems();
foreach ($productIds as $productId)
{
$productHelper = Mage::helper('catalog/product');
// Standard algorithm to prepare and rendern product view page
$product = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->load($productId);
if (!$product) {
//throw new Mage_Core_Exception($this->__('Product is not loaded'), $this->ERR_NO_PRODUCT_LOADED);
}
else
{
//var_dump($product);exit;
//var_dump($existingItems);exit;
if (!$productHelper->canShow($product)) {
continue;
}
if (!in_array(Mage::app()->getStore()->getWebsiteId(), $product->getWebsiteIds())) {
continue;
}
if(!in_array($product, $existingItems))
{
$this->_itemCollection->addItem($product);
//var_dump($existingItems);
//exit();
}
}
}
return $this->_itemCollection;
}
No comments:
Post a Comment