Example #1
0
 private function _getProductInformationWork($item, $getInfo, $hasChildren, $children)
 {
     $getProduct = in_array('product', $getInfo);
     $getImage = in_array('image_url', $getInfo);
     $getLink = in_array('product_url', $getInfo);
     $result = new Varien_Object();
     $result->setProductId((int) $item->getProductId());
     $result->setIsConfigurable(false);
     $result->setIsBundle(false);
     $result->setSku($item->getSku());
     if (Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $item->getProductType() && $hasChildren) {
         $result->setIsConfigurable(true);
         $result->setParentId($result->getProductId());
         $result->setProductId((int) $children[0]->getProductId());
     }
     if (Mage_Catalog_Model_Product_Type::TYPE_BUNDLE == $item->getProductType() && $hasChildren) {
         $result->setIsBundle(true);
         $product = Mage::getModel('catalog/product')->load($result->getProductId());
         $result->setSku($product->getSku());
         $result->setProduct($product);
     } else {
         if ($getProduct || $getImage || $getLink && !$result->getIsConfigurable()) {
             $result->setProduct(Mage::getModel('catalog/product')->load($result->getProductId()));
         }
     }
     if ($getLink) {
         $result->setProductUrl($this->getProductUrl($result->getIsConfigurable() ? Mage::getModel('catalog/product')->load($result->getParentId()) : $result->getProduct()));
     }
     if ($getImage) {
         $result->setImageUrl($this->getProductImage($result['product']));
     }
     return $result;
 }