繁体   English   中英

如何获取网址从Magento的购物车中删除产品?

[英]How to get url to remove product from cart in Magento?

我查看了default / template / checkout / cart.html并找到了这段代码:

        <?php foreach($this->getItems() as $_item): ?>
            <?php echo $this->getItemHtml($_item) ?>
        <?php endforeach ?>

但它的回报超过了我所需要的一切。 是否可以通过调用网址从购物车中删除产品? 或者在购物车上获得产品的ID? (因为在商店不一样)

似乎这些是问题,我一次又一次地问(大约14个月前)。 现在需要清除一些基础知识。

在Checkout Cart中,主要实体是“ Quote ”(其类是“ Mage_Sales_Model_Quote ”),并且它与“ Catalog Product ”实体(其类别为“ Mage_Catalog_Model_Product ”)完全没有关系。 因此,产品有自己的唯一(数字)ID,但当它们被添加到购物车时,它们的ID在购物车页面中不再相关(产品URL除外,因为用户可能想要查看产品详细信息)再次页面)。

在Checkout Cart页面中,可用的ID特别是在那里添加的每个项目的Quote Item ID,Checkout Cart本身有一个Quote ID,它是在特定Checkout会话期间添加到Cart的所有项目的父项。

此报价详细信息可在数据库表“ sales_flat_quote ”中找到,其项目可在“ sales_flat_quote_items ”中找到。

现在回到问题,您看到的视图页面是“ default/template/checkout/cart.phtml ”(没有扩展名为“ html ”的页面,它应该是“ phtml ”)。 这是整个购物车的视图页面。 由于您对这些项目感兴趣,因此您应该查看“ default/template/checkout/cart/item/default.phtml ”。 它引用的Block类是“ Mage_Checkout_Block_Cart_Item_Renderer ”。 此PHTML页面用于每个项目,因此您可以在此页面中为每个项目执行任何操作。

要从购物车中删除产品 ,您需要知道该产品的报价项目ID,并写下以下声明: -

$this->getUrl('checkout/cart/delete', array('id' => 'xxxx'));

其中xxxx指的是待删除产品的报价项目ID。

要从购物车中删除产品 ,请在Checkout Cart页面中,在“ default/template/checkout/cart/item/default.phtml ”中调用以下语句: -

$this->getDeleteUrl();

当此声明将被执行时,它将自动从内部接收该产品的报价项目ID(这是Magento的美丽)。

要从购物车获取产品ID ,请在Checkout Cart页面中,在“ default/template/checkout/cart/item/default.phtml ”中调用以下语句: -

$this->getProduct()->getId();

方法“ getProduct() ”将返回并加载Product的Model对象(包含所有细节),下一个方法“ getId() ”将使用它来获取该Product的ID。

希望能帮助到你。

要获取返回URL以及我所做的是:

在街区

protected function getDeleteUrl($item)
{
    $params = array(
        'id'=>$item->getId(),
        Mage_Core_Controller_Front_Action::PARAM_NAME_URL_ENCODED => Mage::helper('core')->urlEncode($this->getUrl('checkout/cart'))
    );
    return $this->getUrl('checkout/cart/delete', $params);
}

在PHTML中

<?php foreach($this->getItems() as $_item): ?>
    <?php echo $this->getDeleteUrl($_item) ?>
<?php endforeach; ?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM