Probably you know it’s possible to add a product to the cart via querystring, but may be you prefer code a new module for your needs using Magento objects and methods.
So adding a simple product is easy:
...
$cart = Mage::getSingleton('checkout/cart');
// start adding the product
try {
$cart->addProduct($product, array('qty' => 1));
// save the cart
$cart->save();
$result = null;
} catch (Mage_Core_Exception $e) {
$result = $e->getMessage();
}
But how to add a Downloadable product with its right link? Just try this, it’s a controller I used to integrate an “add to cart” API:
public function cartaddAction()
{
$productId = (int) $this->getRequest()->getParam('id');
$callback = (string) $this->getRequest()->getParam('callback');
$cart = Mage::getSingleton('checkout/cart');
// call the Magento catalog/product model
$product = Mage::getModel('catalog/product')
// set the current store ID
->setStoreId(Mage::app()->getStore()->getId())
// load the product object
->load($productId);
$links = Mage::getModel('downloadable/product_type')->getLinks( $product );
foreach ( $links as $link )
if ( preg_match("/epub/i", $link->getTitle()) )
$linkId = $link->getLinkId();
// Here is the trick to add the right link id
$input = array( 'qty' => 1, 'links' => array( $linkId ) );
$request = new Varien_Object();
$request->setData($input);
// start adding the product
try {
$cart->addProduct($product, $request);
// save the cart
$cart->save();
$result = null;
} catch (Mage_Core_Exception $e) {
$result = $e->getMessage();
}
// very straightforward, set the cart as updated
Mage::getSingleton('checkout/session')->setCartWasUpdated(true);
}
Tags: Magento code
Hello,
First off Cool post,
but would like to now where if have to put the code and where i have to put the ID of the product
if i understand correctly the code auto add’s a product to the cart when user arive’s on the home page
plyz is somebody now’s i am looking for this for so long
Greetings Danko
Hello Danko!
Well its simply a pice of code to show “how to”, I can suggest you to read this manual http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/custom_module_with_custom_database_table
Oke thanks for the help
but is there no way to add it for example some php code in the header.phtml to auto add it to the cart ?
because for me to create a module is really out of my range
hope you can help
Greetings Danko