I've recently upgraded my Magento store from 1.4.2 to 1.7.0.2. Now when I try to add products to the cart it displays the following error:
Cannot add the item to shopping cart.
Here's the stack trace:
2012-11-23T12:26:33+00:00 DEBUG (7): Exception message: Invalid method Mage_Catalog_Model_Product::prepareCustomOptions(Array
(
)
)
Trace: #0 [internal function]: Varien_Object->__call('prepareCustomOp...', Array)
#1 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php(357): Mage_Catalog_Model_Product->prepareCustomOptions()
#2 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Type/Grouped.php(294): Mage_Catalog_Model_Product_Type_Abstract->_prepareProduct(Object(Varien_Object), Object(Mage_Catalog_Model_Product), 'full')
#3 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php(410): Mage_Catalog_Model_Product_Type_Grouped->_prepareProduct(Object(Varien_Object), Object(Mage_Catalog_Model_Product), 'full')
#4 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Sales/Model/Quote.php(901): Mage_Catalog_Model_Product_Type_Abstract->prepareForCartAdvanced(Object(Varien_Object), Object(Mage_Catalog_Model_Product), 'full')
#5 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Sales/Model/Quote.php(978): Mage_Sales_Model_Quote->addProductAdvanced(Object(Mage_Catalog_Model_Product), Object(Varien_Object), 'full')
#6 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Checkout/Model/Cart.php(271): Mage_Sales_Model_Quote->addProduct(Object(Mage_Catalog_Model_Product), Object(Varien_Object))
#7 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Checkout/controllers/CartController.php(193): Mage_Checkout_Model_Cart->addProduct(Object(Mage_Catalog_Model_Product), Array)
#8 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Checkout_CartController->addAction()
#9 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('add')
#10 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/local/MW/Developertoolbar/Controller/Router/Standard.php(42): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#11 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Controller/Varien/Front.php(176): MW_Developertoolbar_Controller_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#12 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#13 /var/www/vhosts/medicalemcasa.com/httpdocs/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#14 /var/www/vhosts/medicalemcasa.com/httpdocs/index.php(87): Mage::run('', 'store')
#15 {main}
2012-11-23T12:26:33+00:00 ERR (3):
exception 'Varien_Exception' with message 'Invalid method Mage_Catalog_Model_Product::prepareCustomOptions(Array
(
)
)' in /var/www/vhosts/medicalemcasa.com/httpdocs/lib/Varien/Object.php:652
Stack trace:
#0 [internal function]: Varien_Object->__call('prepareCustomOp...', Array)
#1 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php(357): Mage_Catalog_Model_Product->prepareCustomOptions()
#2 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Type/Grouped.php(294): Mage_Catalog_Model_Product_Type_Abstract->_prepareProduct(Object(Varien_Object), Object(Mage_Catalog_Model_Product), 'full')
#3 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php(410): Mage_Catalog_Model_Product_Type_Grouped->_prepareProduct(Object(Varien_Object), Object(Mage_Catalog_Model_Product), 'full')
#4 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Sales/Model/Quote.php(901): Mage_Catalog_Model_Product_Type_Abstract->prepareForCartAdvanced(Object(Varien_Object), Object(Mage_Catalog_Model_Product), 'full')
#5 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Sales/Model/Quote.php(978): Mage_Sales_Model_Quote->addProductAdvanced(Object(Mage_Catalog_Model_Product), Object(Varien_Object), 'full')
#6 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Checkout/Model/Cart.php(271): Mage_Sales_Model_Quote->addProduct(Object(Mage_Catalog_Model_Product), Object(Varien_Object))
#7 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Checkout/controllers/CartController.php(193): Mage_Checkout_Model_Cart->addProduct(Object(Mage_Catalog_Model_Product), Array)
#8 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Checkout_CartController->addAction()
#9 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('add')
#10 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/local/MW/Developertoolbar/Controller/Router/Standard.php(42): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#11 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Controller/Varien/Front.php(176): MW_Developertoolbar_Controller_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#12 /var/www/vhosts/medicalemcasa.com/httpdocs/app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#13 /var/www/vhosts/medicalemcasa.com/httpdocs/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#14 /var/www/vhosts/medicalemcasa.com/httpdocs/index.php(87): Mage::run('', 'store')
#15 {main}
I'm trying to add simple products to the cart if that helps.
Any idea of what's happening?
Ok, I tried to understand what was throwing that error but to no avail.
So I solved it by installing a fresh installation of Magento 1.7 and upgraded my magento store from there.
Check to see if you have any observer in your code or maybe a new extension you added that fires when you add item to a card, please find my below code that i fixed to solve the problem
Original:
$item = $observer->getEvent()->getQuoteItem();
$product = $item->getProduct();
$item->setMerchant($product->getMethant());
$item->save();
Solution:
$quoteItem = $observer->getQuoteItem();
$product = $observer->getProduct();
$quoteItem->setCustomAttribute($product->getCustomAttribute());