How do I add an option to remove a product from cart within product view page?
1条回答 默认 最新
- dtfpznrbn503027700 2013-12-18 12:52关注
To remove an item from your cart by sku, you could create a controller with the below code
$sku = 'xyz'; $cartHelper = Mage::helper('checkout/cart'); $items = $cartHelper->getCart()->getItems(); foreach ($items as $item) { if ($item->getProduct()->getSku() == $sku) { $cartHelper->getCart()->removeItem($item->getItemId())->save(); break; } }
Then on your product view page you could create a ajax/button that post the sku you want to remove
See Magento - Remove Item from Cart by Sku
Create: app/code/local/MagePal/DeleteCartItemBySku/etc/config.xml
<?xml version="1.0"?> <config> <modules> <MagePal_DeleteCartItemBySku> <version>0.0.1</version> </MagePal_DeleteCartItemBySku> </modules> <frontend> <routers> <checkout> <use>standard</use> <args> <modules> <MagePal_DeleteCartItemBySku after="Mage_Checkout">MagePal_DeleteCartItemBySku</MagePal_DeleteCartItemBySku> </modules> </args> </checkout> </routers> </frontend> <global> <models> <deletecartitembysku> <class>MagePal_DeleteCartItemBySku_Model</class> </deletecartitembysku> </models> </global> </config>
Create: app/code/local/MagePal/DeleteCartItemBySku/controllers/CartController.php
<?php require_once Mage::getModuleDir('controllers', 'Mage_Checkout') . DS . 'CartController.php'; //require_once 'Mage/Checkout/controllers/CartController.php'; class MagePal_DeleteCartItemBySku_CartController extends Mage_Checkout_CartController { public function removeItemBySkuAction() { $sku = $this->getRequest()->getParam('sku'); $cartHelper = Mage::helper('checkout/cart'); $items = $cartHelper->getCart()->getItems(); $found = false; foreach ($items as $item) { if ($item->getProduct()->getSku() == $sku) { $cartHelper->getCart()->removeItem($item->getItemId())->save(); $found = true; break; } } $message = ($found) ? "Item {$sku} Removed" : "Item {$sku} Not Found"; Mage::getSingleton('core/session')->addSuccess($message); //Mage::getSingleton('core/session')->addError($message); $this->_redirectReferer(); } }
?>
Create: app/etc/modules/MagePal_DeleteCartItemBySku.xml
<?xml version="1.0"?> <config> <modules> <MagePal_DeleteCartItemBySku> <active>true</active> <codePool>local</codePool> </MagePal_DeleteCartItemBySku> </modules> </config>
Then your ajax/button url :
domain.com/checkout/cart/removeItemBySku/sku/xyz
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100