// Zuerst holen wir uns das aktuelle Quote,
// alternativ kann dies z.B. auch per Event sales_quote_save_before geschehen
$quote = Mage::getSingleton('checkout/session')->getQuote();
// Wir erstellen ein quoteItem (noch nicht im Warenkorb)
$quoteItem = Mage::getModel('sales/quote_item')->setProduct($product);
$quoteItem->setQuote($quote);
// Wie oft soll das Produkt im Warenkorb sein?
$quoteItem->setQty( 1 );
// Wir müssen den Preis doppelt setzen da Magento 1.4.1.1
// hier zwei unterschiedliche Werte abfragt
$quoteItem->setCustomPrice(0);
$quoteItem->setOriginalCustomPrice(0);
// Zum Schluss legen wir das Item noch in den Warenkorb
$quote->addItem($quoteItem);
// .. und speichern das Quote
$quote->save();
Wichtig ist das in der Magento 1.4.1.1 sowohl setCustomPrice als auch setOriginalCustomPrice aufgerufen wird da sonst z.B. Paypal oder die Rechnung nicht die richtigen Werte enthalten.