当另一种产品存在于洋红色购物车中时,自动添加到购物车
问题描述:
当另一种产品存在时,我想自动添加项目(一种固定)到购物车,但是当主要产品数量改变时数量会发生变化。防爆。如果我在购物车中添加1件产品A,则1件产品B将添加到购物车中,如果我将产品A添加到购物车2中,然后将产品B添加到2件中,请不要推荐任何扩展。谢谢当另一种产品存在于洋红色购物车中时,自动添加到购物车
答
您需要覆盖购物车控制器。注册您的模块,然后在你的模块config.xml中
<?xml version="1.0"?>
<config>
<modules>
<Kreativ_Buynow>
<version>1.0.0</version>
</Kreativ_Buynow>
</modules>
<frontend>
<routers>
<checkout>
<args>
<modules>
<Kreativ_Buynow before="Mage_Checkout">Kreativ_Buynow</Kreativ_Buynow>
</modules>
</args>
</checkout>
</routers>
</frontend>
</config>
然后在控制器的文件夹中创建CartController.php
require_once 'Mage/Checkout/controllers/CartController.php';
class Kreativ_Buynow_CartController extends Mage_Checkout_CartController{
public function addAction(){
foreach ($this->_getCart()->getQuote()->getAllItems() as $items) {
if($items->getProductId() == 933){
$value = $items->getQty();
$prd = Mage::getModel('catalog/product')->load(943);
$this->_getCart()->addProduct($prd,$value)->save();
$this->_getSession()->setCartWasUpdated(true);
}
}
return parent::addAction();
}
我在哪里假设如果产品编号为933的存在,那么你要添加产品编号为943的购物车。
你甚至可以使用事件checkout_cart_product_add_after的观察者来完成上述任务。在这种情况下,您不需要扩展控制器并更改现有的默认magento功能。 –
是的,那样会更好,升级后事件不太可能中断 – Shrikant
谢谢你们俩。是工作 –