2017-06-12 40 views

回答

0

您可以为此创建您自己的扩展,但这是简单的方法。

首先,你可以创建产品属性让我们说“related_category”

,并使用下面扩展阿贾克斯添加到购物车。

https://www.magentocommerce.com/magento-connect/ajaxcart-3-15606.html

在该扩展打开这个文件

[应用\代码\本地\ Hardik \ Ajaxcart \控制器\结帐\ CartController.php]

和在下面找到代码。

$ related = $ this-> getRequest() - > getParam('related_product');

将此代码添加到此行后[此处我从新创建的属性中获取类别ID,名为“related_category”]。

$related_category = Mage::getModel('catalog/product')->load($product->getId())->getRelatedCategory(); 
    $quote = Mage::getSingleton('checkout/session')->getQuote(); 
    $cartItems = $quote->getAllVisibleItems(); $available = 'false'; 
    foreach ($cartItems as $item) { 
     $productId = $item->getProductId(); 
     $_product = Mage::getModel('catalog/product')->load($productId); 
     $productCats = $_product->getCategoryIds(); 
     if (count(array_intersect($related_category,$productCats))) { 
      $available = 'true'; break; 
     } 
    } 

    if($available == 'false'){ 
     $_response = Mage::getModel('ajaxcart/response'); 
     $_response->setError(true); 

     $messages = array_unique(explode("\n", "Please add related product first!")); 
     $json_messages = array(); 
     foreach ($messages as $message) { 
      $json_messages[] = Mage::helper('core')->escapeHtml($message); 
     } 
     $_response->setMessages($json_messages); 
     $url = $this->_getSession()->getRedirectUrl(true); 
     $_response->send(); 
    } 

在上面的代码,我取相关类别和购物车检查存在的产品是否可用与否,如果它是可用[$可用=“真”]添加到购物车将正常工作,否则[$可用=“假']会给出错误,如“请先添加相关产品!”

因此,每当顾客购买“裤子”并在该产品的related_category属性中设置了“衬衫”类别ID时,它会要求先添加衬衫产品。

所以,我希望这个解决方案适合你。请检查这一点,并让我知道任何查询的情况下。

谢谢

+0

请让我知道,如果这个解决方案可以帮助你,并让我知道你是否需要任何其他的帮助。 –

相关问题