一般商品都会打折,会用户打折的幅度或打折后的金额,这在产品页上基本都会显示,但是用户将商品放入购物车后,只显示最后的金额,没打显示原价及节约的金额。magento的购物车中如何实现呢:
如上图示,这是购物车列表的实现效果图。
代码/template/checkout/cart/item/default.phtml中分为两段
第一段在148行左右
在代码
<?php echo $this->helper('checkout')->formatPrice($_incl+$_item->getWeeeTaxAppliedAmount()); ?>
<?php else: ?>
下方将echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition()); 换成以下代码
<?php
if($_item->getProduct()->getPrice()>$_incl)
{
echo '<span class="cart-old-price">';
echo $this->helper('checkout')->formatPrice($_item->getProduct()->getPrice()-$_item->getWeeeTaxDisposition());
echo "</span><br>";
echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition());
}
else
echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxDisposition());
?>
第二段在文件最后能找到 echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition()); 代码的地方,换成以下代码
<?php
$tempqty = ($_item->getQty() ? $_item->getQty() : ($_item->getQtyOrdered() ? $_item->getQtyOrdered() : 1));
if($_item->getProduct()->getPrice()>$this->helper('checkout')->getPriceInclTax($_item))
{
if(!Mage::getSingleton('core/session')->getSavemoneycart()) Mage::getSingleton('core/session')->setSavemoneycart(0);
echo '<span class="cart-old-price">';
echo $this->helper('checkout')->formatPrice($_item->getProduct()->getPrice()*$tempqty-$_item->getWeeeTaxDisposition());
echo "</span><br>";
echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition());
echo "<br><span class='cart-save-price'>";
echo $this->__("Savings amount:").'<br>'.$this->helper('checkout')->formatPrice($_item->getProduct()->getPrice()*$tempqty-$_item->getWeeeTaxDisposition()-$_incl);
echo "</span>";
Mage::getSingleton('core/session')->setSavemoneycart(Mage::getSingleton('core/session')->getSavemoneycart()+($_item->getProduct()->getPrice()*$tempqty-$_item->getWeeeTaxDisposition()-$_incl));
}
else
echo $this->helper('checkout')->formatPrice($_incl-$_item->getWeeeTaxRowDisposition());
?>
即可实现以上图示效果。
还差一个,如果用户购物了多件商品,要在购物车汇总中显示节约的总金额。
在template/checkout/cart.phtml
中头部增加
Mage::getSingleton('core/session')->setSavemoneycart(0);
然后在
<?php echo $this->getChildHtml('totals'); ?>
下方增加以下代码,即可实现。
<?php
if(Mage::getSingleton('core/session')->getSavemoneycart())
{
echo "<div class='totals-save-sum'>";
echo $this->__("Savings amount:")." ".$this->helper('checkout')->formatPrice(Mage::getSingleton('core/session')->getSavemoneycart());
echo "</div>";
}
?>
代码部分写的不是很好,大家做个参照,自行完善吧! (责任编辑:最模板) |