Я использую пользовательский модуль корзины ajax, в котором, если к этой корзине применен купон, бесплатный подарок автоматически добавится в корзину.Товар добавлен в таблицу котировок без проблем.Для этого бесплатного подарочного продукта определено правило покупок, если он находится в корзине, то к промежуточной сумме будет применена скидка 50%.
Но скидка не распространяется.
$product = Mage::getModel('catalog/product')
->setStoreId(Mage::app()->getStore()->getId())
->load($productId);
$product->addCustomOption('freegift_with_code',1);
$product->setPrice(0);
$request = array('product'=>$product->getId(),'qty'=>1,'freegift_with_code'=>1,'freegift_coupon_code'=>$couponCode,'rule_id'=>$rule->getId(),'free-gift'=>true);
$cart->addProduct($product,$request);
$cart->save();
$this->_getQuote()->setFreeCouponCode(serialize($appliedCode))->setTotalsCollectedFlag(false)->collectTotals()->save();