如何从购物车Url中为产品生成删除? (Magento的)

时间:2011-04-05 12:09:23

标签: magento

是否可以为具有自定义功能的产品创建“从购物车移除”网址,以便我可以将该功能放在我的自定义功能块中,以便用户从购物车中删除商品...

4 个答案:

答案 0 :(得分: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() ) );

答案 1 :(得分:4)

如果你检查app / code / core / Mage / Checkout / Block / Cart / Item / 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。

希望这有帮助。

答案 2 :(得分:4)

$_itemMage_Sales_Model_Quote_Item_Abstract对象的位置:

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

答案 3 :(得分:0)

结合不同答案后最简单的工作

将其添加到文件lists.phtml(template / catlog / product)

的顶部
<?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 }?>