Magento custom add product to cart
(happen to enterprise since 1.9 huh ?)
The following code bas issue :
$newProd = Mage::getModel(‘catalog/product’)->loadByAttribute(‘sku’, $sku); $cart->addProduct($newProd);
The category inventory observe throws the following exception:
Mage::throwException(Mage::helper(‘cataloginventory’)->__(‘The stock item for Product is not valid.’));
The stock item object it gets from the product object is a basic Varien Object.
When I do the following, it behaves nicely:
$newProd = Mage::getModel(‘catalog/product’); $newProd->load($newProd->getIdBySku($sku)); $cart->addProduct($newProd);
example from equipatron :
<pre class="c-sharp">$cart = $this->_getCart();
/*add product using ARI partstring return data*/
$postData = $this->getRequest()->getPost();
if (in_array('arisku', $postData)
AND in_array('ariqty', $postData)) {
$productHelper = Mage::helper('wagentopartstream/product');
$product = $productHelper->findProductByAriPartNumber($postData['arisku']);
if ($product) {
$params = array(
'qty' => $postData['ariqty'],
'product' => $product->getId(),
);
/*damn fix */
$pObj = Mage::getModel('catalog/product');
$pObj->load($pObj->getIdBySku($product->getSku()));
/*end of damn fix*/
/*add product to cart*/
$act = $cart->addProduct($pObj, $params);
/*update price from ARI*/
if (in_array('ariprice', $postData) && $postData['ariprice'] > 0) {
$quote = $act->getQuote();
/*@var $quote Mage_Sales_Model_Quote*/
foreach ($quote->getAllItems() as $item) {
if ($product->getId() == $item->getProductId()) {
$price = $postData['ariprice'];
/*@var $item Mage_Sales_Model_Quote_Item*/
$item->setCustomPrice($price);
$item->setOriginalCustomPrice($price);
$quote->save();
}
}
}
/*save cart*/
$cart->save();
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
}
else {
Mage::getSingleton('core/session')->addNotice($this->__('Part is not available'));
}