2011-04-05 97 views
2

是否有可能创建一个具有自定义功能的产品的“从购物车中删除”Url,以便我可以将该功能置于我的自定义块中,该功能允许用户从购物车中移除项目...我如何生成从购物车中删除Url的产品? (Magento)

+0

请填写您的问题。想做什么?你想要一个网址从购物车中删除? – 2011-04-05 13:31:13

+0

@Oğuz,我想在我的自定义块中“从购物车网址中删除项目”。 – balanv 2011-04-06 05:36:33

回答

4

如果您检查,应用程序/代码/核心/法师/结帐/块/车/项目/ Renderer.php并找到方法:getDeleteUrl()将提供其如何产生的一些见解:

/** 
* Get item delete url 
* 
* @return string 
*/ 
public function getDeleteUrl() 
{ 
    return $this->getUrl(
     'checkout/cart/delete', 
     array(
      'id'=>$this->getItem()->getId(), 
      Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => $this->helper('core/url')->getEncodedUrl() 
     ) 
    ); 
} 

你可以在template/checkout/cart/item/default.phtml中找到对此的呼叫:

<td class="a-center"><a href="<?php echo $this->getDeleteUrl()?>" title="<?php echo $this->__('Remove item')?>" class="btn-remove btn-remove2"><?php echo $this->__('Remove item')?></a></td>

有了这些信息,您应该能够为购物车创建一个新的控制器操作,只需将购物车索引中的产品的特定ID删除即可。

希望这会有所帮助。

+1

Thankyou Boomer ...! – balanv 2011-04-26 06:34:59

4

$_itemMage_Sales_Model_Quote_Item_Abstract对象:

$renderer = new Mage_Checkout_Block_Cart_Item_Renderer(); 
$renderer->setItem($_item); 
$renderer->getDeleteUrl(); 
6

什么工作对我来说是直接到源:

地址:

Mage::getUrl('checkout/cart/add', array('id' => $item->getId())); 

编辑:

Mage::getUrl('checkout/cart/configure', array('id' => $item->getId())); 

删除:

Mage::getUrl('checkout/cart/delete', array('id' => $item->getId())); 
+0

hi @Beshoy Girgis我把这个代码控制器或模型或视图 – 2013-05-13 05:25:16

+0

完美适合我在1.8和1.9 – 2015-07-20 11:58:02

0

结合不同的答案

后,最简单的工作了

一下添加到文件lists.phtml(模板/目录下载/产品)的顶部

<?php 
//getting cart count 
$currentDelete = array(); 
$quote = Mage::getSingleton('checkout/session')->getQuote(); 
    foreach($quote->getAllItems() as $item){ 
     if($item->getProductId()){ 
      $currentDelete[$item->getProductId()] = Mage::getUrl('checkout/cart/delete', array('id' => $item->getId())); 
     } 
    } 
?> 

<?php if($_product->isSaleable()): ?> 

加这个

 <?php 
      if (isset($currentDelete) and array_key_exists($_product->getId(), $currentDelete)) { ?> 
      <div class="curCart"> 
      <a href=" <?php echo $currentDelete[$_product->getId()]; ?>">Remove</a> 
      </div> 
      <?php }?> 
相关问题