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; }