我有一个商店,几乎没有类别是衬衫,裤子,配件等....等。 如果用户点击添加到购物车按钮的裤子,然后检查是否已添加衬衫,然后再将此裤子添加到购物车。目的是允许用户在添加裤子之前添加衬衫。Magento允许产品添加到购物车,如果其他类别的产品添加
我可以使用ajax吗?
如果有人有解决方案欣赏。 谢谢
我有一个商店,几乎没有类别是衬衫,裤子,配件等....等。 如果用户点击添加到购物车按钮的裤子,然后检查是否已添加衬衫,然后再将此裤子添加到购物车。目的是允许用户在添加裤子之前添加衬衫。Magento允许产品添加到购物车,如果其他类别的产品添加
我可以使用ajax吗?
如果有人有解决方案欣赏。 谢谢
您可以为此创建您自己的扩展,但这是简单的方法。
首先,你可以创建产品属性让我们说“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时,它会要求先添加衬衫产品。
所以,我希望这个解决方案适合你。请检查这一点,并让我知道任何查询的情况下。
谢谢
请让我知道,如果这个解决方案可以帮助你,并让我知道你是否需要任何其他的帮助。 –