当另一种产品存在于洋红色购物车中时,自动添加到购物车

问题描述:

当另一种产品存在时,我想自动添加项目(一种固定)到购物车,但是当主要产品数量改变时数量会发生变化。防爆。如果我在购物车中添加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的购物车。

+1

你甚至可以使用事件checkout_cart_product_add_after的观察者来完成上述任务。在这种情况下,您不需要扩展控制器并更改现有的默认magento功能。 –

+0

是的,那样会更好,升级后事件不太可能中断 – Shrikant

+0

谢谢你们俩。是工作 –