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

Hbu*_*bug 2 php magento

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

        <?php foreach($this->getItems() as $_item): ?>
            <?php echo $this->getItemHtml($_item) ?>
        <?php endforeach ?>
Run Code Online (Sandbox Code Playgroud)

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

Kno*_*ing 18

似乎这些是问题,我一次又一次地问(大约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'));
Run Code Online (Sandbox Code Playgroud)

where xxxx指的是待删除产品的报价项目ID.

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

$this->getDeleteUrl();
Run Code Online (Sandbox Code Playgroud)

当这个陈述将被执行时,它将自动从内部接收该产品的报价项目ID(这是Magento的美丽).

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

$this->getProduct()->getId();
Run Code Online (Sandbox Code Playgroud)

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

希望能帮助到你.