我有一个几乎没有类别的商店,包括衬衫,裤子,配饰等等。 如果用户点击裤子的添加到购物车按钮,则在将此裤子添加到购物车之前检查是否已经添加了衬衫。目的是允许用户在添加裤子之前添加衬衫。
我可以使用ajax吗?
如果有人有解决方案,那就明白了。 谢谢
答案 0 :(得分:1)
您可以为此创建自己的扩展程序,但其简单方法是。
首先你可以创建产品属性,让我们说“related_category”
并使用以下扩展名将Ajax添加到购物车。
https://www.magentocommerce.com/magento-connect/ajaxcart-3-15606.html
在此扩展程序中打开此文件
[应用\代码\本地\ Hardik \ Ajaxcart \控制器\结帐\ CartController.php]
并找到以下代码。
$ related = $ this-> getRequest() - > getParam('related_product');
在此行之后添加此代码[这里我从名为“related_category”的新创建属性中获取类别ID。
$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();
}
在上面的代码我已经获取相关的类别,并检查购物车是否有可用的产品[$ available ='true']添加到购物车将正常工作,否则[$ available ='false']它将给出错误,如“请先添加相关产品!”
因此,每当客户购买“裤子”并在本产品的related_category属性中设置“衬衫”类别ID时,它会要求先添加衬衫产品。
所以,我希望这个解决方案适合你。请检查此信息,如有任何疑问,请通知我。
由于