我查看了default / template / checkout / cart.html并找到了这段代码:
<?php foreach($this->getItems() as $_item): ?>
<?php echo $this->getItemHtml($_item) ?>
<?php endforeach ?>
但它的回报超过了我所需要的一切。是否可以通过调用网址从购物车中删除产品?或者在购物车上获得产品的ID? (因为在商店里不一样)
答案 0 :(得分:18)
似乎这些是问题,我再次提出这个问题。再次(大约14个月前)。现在需要清除一些基础知识。
在Checkout购物车中,主要实体是“报价”(其类别为“Mage_Sales_Model_Quote
”)并且它与“目录产品<完全无关” / strong>“entity(其类为”Mage_Catalog_Model_Product
“)。因此,产品有自己的唯一(数字)ID,但当它们被添加到购物车时,它们的ID在购物车页面中不再相关(产品URL除外,因为用户可能想要查看产品详细信息)页面再次)。
在Checkout Cart页面中,可用的ID特别是在那里添加的每个项目的Quote Item ID,Checkout Cart本身有一个Quote ID,这是在此期间添加到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()
”将返回&amp;加载Product的Model对象(包含所有细节),下一个方法“getId()
”将使用它来获取该Product的ID。
希望它有所帮助。
答案 1 :(得分:1)
要获取返回URL以及我所做的是:
在Block
中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; ?>